# 曲線

## Dynamo の曲線

### 曲線とは

ジオメトリ データ タイプには複数のタイプがありますが、最初に[曲線](#deep-dive-into...)について説明します。曲線には、曲がっているか、まっすぐか、長いか、短いかなど、その形状を表す一連のプロパティが存在します。線分からスプライン曲線まで、すべての曲線タイプは点という構成要素で定義されることに注意してください。

> 1. 線分
> 2. ポリライン
> 3. 円弧
> 4. 円
> 5. 楕円
> 6. NURBS 曲線
> 7. ポリカーブ

### 線分

[線分](#lines)はポイントのセットで構成され、各ラインには最低 2 つのポイントがあります。Dynamo で線分を作成する最も一般的な方法の 1 つは、`Line.ByStartPointEndPoint`  を使用して Dynamo で線分を作成することです。

!

### NURBS 曲線

[NURBS](#nurbs-+-polycurves) は、曲線やサーフェスを正確に表現するために使用されるモデルです。NURBS 曲線の作成には 2 つ方法があります。それぞれの方法で Dynamo で正弦曲線を作成し、結果を比較してみましょう。

!

> 1. *NurbsCurve.ByControlPoints* ノードは、点のリストを制御点として使用します。
> 2. *NurbsCurve.ByPoints* ノードは、点のリストを使用して曲線を描画します。

> 下のリンクをクリックして、サンプル ファイルをダウンロードします。
>
> すべてのサンプル ファイルの一覧については、付録を参照してください。

{% file src="/files/hlQViOfM6pHESmSN0yvi" %}

## 詳細

### 曲線

**曲線**という用語は通常、すべての曲がった形状を指します(直線を含みます)。大文字の「C」で始まる「Curve」は、直線、円、スプライン曲線など、すべての形状タイプの親カテゴリです。より厳密に定義すると、曲線とは、(`x = -1.26*t, y = t`)などの単純な関数から微積分を使用する複雑な関数まで、さまざまな関数の集合に「t」を代入して指定することができるすべての点のことです。操作する曲線の種類に関係なく、この「t」という**パラメータ**が評価対象のプロパティになります。また、形状の外観にかかわらず、すべての曲線には開始点と終了点があり、この開始点と終了点が、曲線の作成に使用される t の最小値と最大値に対応します。これを理解すると、曲線の方向についても理解できます。

> Dynamo では、曲線に対する t の値の範囲は 0.0 ～ 1.0 になります。これは、覚えておく必要があります。

すべての曲線には、曲線の記述や解析で使用されるさまざまなプロパティと性質があります。開始点と終了点の間の距離がゼロの場合は、「閉じた」曲線になります。また、すべての曲線には複数の制御点があります。これらの点がすべて一つの平面上に配置されている場合、その曲線は「平らな」曲線になります。一部のプロパティは曲線全体に適用されますが、曲線上の特定の点にのみ適用されるプロパティもあります。たとえば平面性はグローバル プロパティですが、特定の t 値における接線ベクトルはローカル プロパティです。

### 線分

**線分**は、最も簡単な形状の曲線です。直線は曲線には見えないかもしれませんが、曲率がゼロであるというだけで、実際には曲線です。線分を作成する方法はいくつかあります。最も直感的な方法は、点 A から点 B までの線分を作成する方法です。この場合、線分 AB の形状が点間に描画されますが、数学的には、直線が両方向に無限に延びている状態になります。

2 つの線分を接続すると、**ポリライン**が作成されます。ここで、制御点について簡単に説明します。どの制御点の位置を編集しても、ポリラインの形状が変化します。ポリラインが閉じている場合は、ポリゴンが作成されます。ポリゴンの辺の長さがすべて同じである場合、このポリゴンは正多角形になります。

### 円弧、円、楕円弧、楕円

ここからは、形状を定義するための複雑なパラメトリック関数を見ていきます。これまでは線分について説明しましたが、ここでは 1 つまたは 2 つの半径を設定することにより、**円弧**、**円**、**楕円弧**、**楕円**を作成します。円弧と円または楕円の違いは、形状が閉じているかどうかだけです。

### NURBS 曲線とポリカーブ

**NURBS** (非一様有理スプライン)は、単純な 2 次元の線分、円、円弧、長方形の形状から、複雑な 3 次元フリーフォームの有機的な曲線まで、あらゆる形状を正確にモデル化することができる数学的表現です。その柔軟性(比較的少ない制御点で、次数の設定に基づいたスムーズな補間が可能)と精度(堅牢な数学演算による形状指定)により、イラストレーションやアニメーションから製造にわたる幅広いプロセスで使用することができます。

**次数**: 曲線の次数により、制御点が曲線に与える影響力の範囲が決まります。次数が大きいほど、影響力の範囲も大きくなります。次数は正の整数です。この数値は通常 1、2、3、または 5 ですが、任意の正の整数にすることができます。NURBS 線分とポリラインの次数は、通常は 1 です。ほとんどのフリーフォーム曲線の次数は、3 または 5 です。

**制御点**: 制御点は、次数 + 1 個以上の点を含むリストです。NURBS 曲線の形状を変更するための最も簡単な方法は、その制御点を移動する方法です。

**ウェイト**: 制御点には、ウェイトと呼ばれる数値が関連付けられています。ウェイトは、通常は正の数値です。曲線の制御点のすべてのウェイトの値が同じである場合(通常は 1)、その曲線は非有理曲線と呼ばれます。それ以外の場合は、有理曲線と呼ばれます。ほとんどの NURBS 曲線は、非有理曲線です。

**ノット**: ノットは、N を制御点の数としたとき、「次数 + N - 1」個の数値のリストとして表されます。ノットはウェイトとともに使用され、作成される曲線上の制御点の影響力をコントロールします。ノットは、曲線上の特定の点でねじれを作成する場合などに使用します。

> 1. 次数 = 1
> 2. 次数 = 2
> 3. 次数 = 3

{% hint style="info" %}
次数の値が大きいほど、作成される曲線を補間するための制御点の数が多くなります。
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://primer2.dynamobim.org/ja/5_essential_nodes_and_concepts/5-2_geometry-for-computational-design/4-curves.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
