2014年6月6日金曜日

[t]と[U]と[V]と[Reparameterize]とは

Q1.3次元カーブで言われる、[t]パラメーターとは何ですか?

A.3次元カーブの始点から終点までの間の任意の地点を表す変数です。
NURBS等の数学的な曲面表現による3次元カーブは、一つの変数[t]パラメーターの次数と、3次元カーブを構成する制御点の数と位置、制御点におけるウェイトの値で、カーブの形状が定義されます。つまり、その形状は、3次元カーブのパラメーター[t]の変化の軌跡と考えることができます。
[t]パラメーターは、始点から終点に対して、増加する変数で、増加する値であればどのような範囲を持っても良いですが、始点を[0]、終点を[1]と決めてしまう事により全てのカーブに対して同一の範囲を適用することができます。
この操作を、後述する[Reparameterize:リパラメタライズ](正規化)と呼びます。

[Reparameterize]を行なった場合、ある3次元カーブ上の点の座標を指定したい場合は、その3次元カーブを表す方程式の[t]の部分に[0]を代入すると始点が、[1]を代入すれば終点が、[0.5]を代入すれば3次元カーブの中間地点(長さの中間値点ではない)の座標が得られます。
[Reparameterize]を行なった例
[0]で始点の、[1]で終点の座標を示しています。

[Reparameterize]を行なっていない例
[0]で始点の座標を示してはいますが、[1]ではバラバラの座標を示しています。


3次元カーブが持つ始点から終点に向かう曲線方向は、Rhino上で[Dir]コマンドを使用する事で、確認と変更を行なえます。
[Dir]コマンドで3次元カーブの方向を表示させた図


Q2.3次元サーフェスで言われる、[U]パラメーター[V]パラメーターとは何ですか? 

A. どちらも3次元サーフェス上の任意の地点を表す変数です。
3次元カーブが[t]パラメーターという一つの変数で表現される様に、3次元サーフェスは、同じ性質をもつ[U]パラメーターと[V]パラメーターという2つの変数で表現されます。
3次元サーフェスは内部に、[UVパラメーター曲線]という2次元の矩形領域を持ちますが、このとき、U方向とV方向は直交していれば良く、これらの方向がどの方向を向いているかは問題とはされません。
これらの方向は、[Dir]コマンドによって制御できます。
[Dir]コマンドでサーフェスの方向を表示した図
操作上、理解しやすくするためには、Rhino上の座標で、X方向にU方向、
Y方向にV方向を指定しておくと良いでしょう。

3次元カーブは、[t]の値の軌跡が3次元カーブとなりますが、3次元サーフェスの場合は、U方向とV方向の2つの3次元カーブの軌跡が、サーフェスを表現していると考えると良いでしょう。
3次元サーフェスの持つUV方向と3次元サーフェスのイメージ

Q.1で [t]に[0~1]を代入すると3次元カーブ上の任意の地点の座標が得られた様に、3次元サーフェスは[U]と[V]に[0~1]をそれぞれ代入する事でサーフェス上の任意の地点の座標が得られます。
[Reparameterize]を行なったサーフェスの任意の地点の座標を求めた図


Q3.[Reparameterize](正規化)とは何ですか?

A.[Reparameterize]とは「再定義する」という意味。この再定義を行なう事で、サイズや形状の異なるカーブやサーフェスを同一規格で扱える様になります。Grasshopperではこの[Reparameterize](正規化とも言う)を行なうと、どの様なカーブのパラメーター[t]も、始点を[0]、終点を[1]として再定義します。サーフェスの場合も、サーフェスは[U]方向と[V]方向にそれぞれ伸びたカーブが格子状に配置された物という認識が出来る為、[U]方向と[V]方向のカーブそれぞれのパラメーター[t]について、始点を[0]、終点を[1]として再定義する事で、カーブと同様に扱える様にしています。