Vector2を使用することで、2D空間の位置、2D方向と長さ、四角形のサイズを表現することができます。 例えば、hou.Node.positionは位置を返し、hou.Node.sizeは四角形のサイズを返します。
hou.Vector3とhou.Vector4も参照してください。
メソッド ¶
__init__(values=(0.0, 0.0))
floatシーケンスから新しいVector2を返します。 このメソッドをパラメータなしでコールすると、その結果のベクトルの値は(0.0, 0.0)になります。
values
の大きさが2個のエレメントでなかった場合はInvalidSize
を引き起こし、values
がfloatやintのシーケンスでなかった場合はTypeError
を引き起こします。
__getitem__(index)
→ float
指定したインデックスでのfloatコンポーネントを返します。このメソッドは、ベクトルをシーケンスの挙動 (つまり、例えば、ベクトルのエレメントに対してfor loopを使用したり、ベクトルをfloatのタプルに変換したりすることができます。)にします。 そして、ベクトルのインデックスには大括弧を使用することができます。
>>> v = hou.Vector2((1.0, 2.0)) >>> v[-1] 2.0
__setitem__(index, value)
このメソッドは、大括弧を使用することで、ベクトルに値を設定することができます。
>>> v = hou.Vector2((1.5, 2.5)) >>> v[0] = 0.5 >>> print v [0.5, 2.5]
setTo(sequence)
このベクトルの内容をfloatのシーケンスに設定します。
values
の大きさが2つのエレメント長でなかった場合はInvalidSize
を、
values
がfloatやintのシーケンスでなかった場合は、TypeError
を引き起こします。
__len__()
→ int
2を返します。このメソッドは、Vector2に対してlen()をコールすることができます。
__add__(vector2)
→ hou.Vector2
2つのベクトルを加算して、その2つベクトル内のそれぞれのコンポーネントの合計が各コンポーネントである新しいベクトルを返します。
このメソッドは、v1 + v2
と記述することができます。v1
とv2
はVector2オブジェクトです。
このメソッドは、hou.Vector2(self[0] + vector2[0], self[1] + vector2[1])
と等価です。
__sub__(vector2)
→ hou.Vector2
他のベクトルからベクトルを減算して、最初のベクトルの各コンポーネントから2番目のベクトルのそれに該当するコンポーネントを減算した新しいベクトルを返します。
このメソッドは、v1 - v2
と記述することができます。v1
とv2
はVector2オブジェクトです。
このメソッドは、hou.Vector2(self[0] - vector2[0], self[1] - vector2[1])
と等価です。
__neg__()
→ hou.Vector2
このベクトルのコンポーネントのマイナス値を含んだベクトルを返します。
このメソッドは、-v
と記述することができます。v
はVector2オブジェクトです。
このメソッドは、hou.Vector2(-self[0], -self[1])
と等価です。
__mul__(scalar_or_matrix2)
→ hou.Vector2
このベクトルをfloatスカラーまたはhou.Matrix2と乗算して、新しいベクトルを返します。
このメソッドは、v * s
(v
はベクトル、s
はfloat)またはv * m
(v
はベクトル、m
はhou.Matrix2)と記述することができます。
このメソッドは、hou.Vector2(self[0] * scalar, self[1] * scalar)
と等価です。
__rmul__(scalar)
→ hou.Vector2
このベクトルをfloatスカラーで乗算して、新しいベクトルを返します。
このメソッドは、s * v
(v
はベクトル、s
はfloat)と記述することができます。
このメソッドは、hou.Vector2(self[0] * scalar, self[1] * scalar)
と等価です。
__div__(scalar)
→ hou.Vector2
このベクトルをfloatスカラーで除算して、新しいベクトルを返します。
このメソッドは、v / s
(v
はベクトル、s
はfloat)と記述することができます。
このメソッドは、hou.Vector2(self[0] / scalar, self[1] / scalar)
と等価です。
length()
→ float
このベクトルを方向ベクトルとして解釈し、その長さを返します。
その結果は、math.sqrt(self[0]**2 + self[1]**2)
と同じです。
lengthSquared()
→ float
このベクトルを方向ベクトルとして解釈し、その長さの2乗を返します。
その結果は、self[0]**2 + self[1]**2
と同じです。
normalized()
→ hou.Vector2
このベクトルを方向ベクトルとして解釈し、同じ方向を持つ長さが1のベクトルを返します。
ベクトルの長さが0(または、ほぼ0)なら、その結果は元のベクトルになります。
非ゼロ長のベクトルに関しては、このメソッドはself * (1.0/self.length())
と等価です。
distanceTo(vector2)
→ float
このベクトルと引数を2Dポジションとして解釈し、それらの距離を返します。戻り値は(self - vector2).length()
と等価です。
dot(vector2)
→ float
このベクトルとパラメータのベクトルとの内積を返します。
Wikipediaの内積のページ を参照してください。
almostEqual(vector2, tolerance=0.00001)
→ bool
廃止されました。代わりにVector2.isAlmostEqualを使用してください。
isAlmostEqual(vector2, tolerance=0.00001)
→ bool
このベクトルが他のベクトルと許容値の範囲内で同じかどうか返します。 このベクトルの各コンポーネント間と他のベクトルのそれに該当するコンポーネントとの差が許容値の範囲内にあるかどうか調べます。
x()
→ float
ベクトルの1番目のコンポーネントを返します。これはv[0]
と等価です。
y()
→ float
ベクトルの2番目のコンポーネントを返します。これはv[1]
と等価です。