1

私が調べたスタックオーバーフローに関するボールバウンス関連の質問がいくつかありますが、どれも私の苦境を乗り越えることはできません。3D 空間の線と交差する変換行列によって定義されたタートル カーソルがあります。私が望むのは、交点でカーソル、つまり変換行列を回転させて、新しい方向が反射ベクトルと一致するようにすることです。R入射ベクトルからの反射ベクトルVと反射線の法線の両方を取得する関数がありますN。評価する前にそれぞれを正規化します。

N,V=unit_vector(N),unit_vector(V)
R = -2*(np.dot(V,N))*N - V
R=unit_vector(R)

私の変換行列Tは、numpy 配列にあります。

array([[ -0.84923515,   -0.6        ,   0.        ,   3.65341878],
       [  0.52801483,  -0.84923515,   0.        ,  25.12882224],
       [  0.        ,   0.        ,   1.        ,   0.        ],
       [  0.        ,   0.        ,   0.        ,   1.        ]])

T を R で変換して正しい方向ベクトルを取得するにはどうすればよいですか? ここからR2_vect関数を見つけて使用して、あるベクトルから別のベクトルへの回転行列を取得しましたが、それらをvtkに送信してレンダリングすると、結果の反射のいくつかだけが正しく表示されます。すでに不安定な線形代数から覚えていることの限界に達しているように見えるので、ここでこれについて尋ねています。情報をありがとう。

4

1 に答える 1

0

少し追加の調査で明確になったこと: 変換行列の最初の 3 列は 3 つの正規直交ベクトル ( x1, x2, x3) を表し、4 番目の列は特定の時間間隔でのカーソルの空間内の座標を表します。最後の行にはデータが含まれていません。行列を正方形に保つためだけに存在します。ベクトルの回転は、 の最後の行を削除しT、リストされた関数から 3x3 回転行列を取得して、R各ベクトルを回転させるだけの問題でした。R.dot(x1), R.dot(x2), R.dot(x3)次に、値を 4x4 行列に合成する必要がありました。

于 2013-10-03T20:53:38.977 に答える