このクラスは、独立 NURBS CV カーブを定義します。コントロール頂点 (CV) の位置と重さによって、カーブのシェイプが制御されます。スプライン頂点とは異なり、CV は定義するカーブ上に配置する必要はありません。CV は、カーブを囲むコントロール ラティスを定義します。
コンストラクタ:
NURBSCVCurve [<property>:<val>] [closed:<boolean>]...
オブジェクトのプロパティはいずれもコンストラクタのオプションのキーワード引数で設定できます。closed:true
が指定されると、カーブは閉じたカーブとして作成されます。この指定がない場合、開いたカーブが作成されます。
getObject <nurbsset> <index>
プロパティ
<nurbscvcurve>.order: integer
カーブのオーダーです。これは、カーブのセグメントの度数に 1 を足したものです。すべてのカーブには度数があります。カーブの角度はそれを表すために使用される方程式の最上位指数です。一次方程式は次数 1、二次方程式は次数 2 です。NURBS カーブは、通常は三次方程式で表され、次数 3 です。
<nurbscvcurve>.numKnots: integer
カーブ内のノット数です。この値が変更された場合、以前のノットのデータは保持されません。これらは数学的に生成されるため、NURBS カーブには、カーブを表示するための 3D ジオメトリック スペースだけでなく、パラメータ スペースがあります。特に、ノットと呼ばれる値の配列は、サーフェスのカーブ上にある各コントロール頂点 (CV) の影響範囲を指定します。
<nurbscvcurve>.numCVs: integer
カーブのコントロール頂点の数です。この値が変更された場合、以前のコントロール頂点のデータは保持されません。
<nurbscvcurve>.transform: matrix3
NURBSCVCurve の変換行列です。これは、NURBSSet 内の項目の相対位置を制御します。
<nurbscvcurve>.endsOverlap: boolean, read-only
true
になるのは、カーブが閉じられていなくてもカーブの両端が重なっている場合(終端部の各接線が同一の場合)です。それ以外の場合は false
です。
<nurbscvcurve>.autoParam:#notAutomatic, #autoCentripetal, #autoUniform
#notAutomatic
、#autoCentripetal
、および #autoUniform
は、[CV カーブ](CV Curve)ロールアウトの[自動パラメータ再設定](Automatic Reparam.)オプションの[なし] (None)、[コードの長さ] (コードの長さ)、[均等] (Uniform)にそれぞれ対応します。既定は #notAutomatic
です。
メソッド
close <nurbscvcurve>
カーブを強制的に閉じます。
getKnot <nurbscvcurve> <index> setKnot <nurbscvcurve> <index> <float>
インデックスで指定されたノットの値を取得/設定します。インデックスは 1 で始まります。ノットは、CV コントロールの範囲を定義する算術的コンストラクタであり、NURBS カーブおよび NURBS サーフェスを定義する関数のブレンドです。ノットは、カーブのパラメータを決定する値の配列です。ノット ベクトル内の値は減少しません。ノットはカーブ上の CV の影響範囲を指定します。これは、異なるセグメントにおいてパラメータ スペースを分割する方法です。B スプライン カーブおよび NURBS カーブは、一連のセグメントによって定義されるカーブです。各セグメント上では、カーブは多項式のようであり、理論的なセグメントにおいては、多項式の比のようです。ノット ベクトルは、多項式の各部分に対するカーブのパラメータ スペースを分割する方法です。
getCV <nurbscvcurve> <cv_index>
インデックス化された CV を NURBSControlVertex として取得します。インデックスは 1 で始まります。
setCV <nurbscvcurve> <cv_index> <NURBSControlVertex>
インデックス化された CV を指定した NURBSControlVertex に設定します。インデックスは 1 で始まります。
refine <nurbscvcurve> <u_param>
カーブに沿って与えられたパラメトリック ポイントに補間された CV を新しく追加します。
reparameterize <nurbscvcurve> (#centripetal | #uniform)
コードの長さ(#centripetal
)または均等(#uniform
)のパラメータ設定により、カーブのパラメータを再設定します。
CV カーブおよび CV サーフェスは、「オーダー + CV の数 = ノットの数」の関係に従う必要があります。この関係に従わないと、ほとんどの場合オブジェクトは生成されません。アサーション エラーが発生する場合もあります。