generated at
Houdini数学 : 内積の計算

内積について
ベクトル\vec{A} = \begin{pmatrix} {x_1} \\\ {y_1} \\\ {z_1} \end{pmatrix}, \vec{B} = \begin{pmatrix} {x_2} \\\ {y_2} \\\ {z_2} \end{pmatrix}の内積\vec{A} \cdot \vec{B}は以下のように計算できます。

>\vec{A} \cdot \vec{B} = \begin{pmatrix} {x_1} \\ {y_1} \\ {z_1} \end{pmatrix} \cdot \begin{pmatrix} {x_2} \\ {y_2} \\ {z_2} \end{pmatrix} = x_1 \cdot x_2 + y_1 \cdot y_2 + z_1 \cdot z_2


Houdini
1. 点を追加
Addノードで点を追加します。点の座標は(0, 0, 0)です。

Geometryスプレッドシートを見ると、 ポイントの座標が(0, 0, 0)になっていることが分かります。

2. 内積を計算
今回は \vec{A} = \begin{pmatrix} 1 \\\ 2 \\\ 3 \end{pmatrix}, \vec{B} = \begin{pmatrix} 4 \\\ 5 \\\ 6 \end{pmatrix}の内積\vec{A} \cdot \vec{B}を計算してみましょう。
1 \cdot 4 + 2 \cdot 5 + 3 \cdot 6 = 4 + 10 + 18 = 32となります。

AddノードにAttribuetWrangleノードを接続し、内積を計算するVEXコードを記述します。
AttributeWrangle(c)
vector A = {1, 2, 3}; // ベクトルA vector B = {4, 5, 6}; // ベクトルB @P.x = dot(A, B); // 内積を計算してx成分に設定

Geometry SpreadSheetを見ると、x成分が32になっています。 数式の計算結果とHoudini上の結果が一致しました。