2016-05-30 3 views
1

私は十字(vec3(0,0,1)、vec3(1,0,0))をすると、私はvec3(0,1,0)を得る。glm :: crossにはどのように右手のルールを使いますか?

誰も私にvec3(0、-1,0)が届かない理由を説明することはできますか? 人差し指を手前に、中指を右に向けて指を置くと、指が下を指します。だから私は何が間違っているの?

+0

何もない - 右手系では、Zが「前方」に、Xが「右側に」行くと、Yは底部に向かいます。したがって、結果はYの方向に正の量です。 – peppe

+0

"*人差し指を前と中指を右に向けて置くと*"ここで "前進"とは何ですか? 「あなたから離れた」という意味ですか? 「前方」とは、通常、「あなたに向かって」を意味するためです。私は、+ Zがどこにあるかを理解する最も簡単な方法は、 'X cross Y = Z'を思い出すことです。だから右利きの座標系では、あなたの指と中指をXとYに沿って置いてください。それがZです。 Xが右にあり、Yが上にある場合、Zは右手座標系で*あなたの方に*です。 –

+0

私は前方に歩いていくのが好きです。私のコードのやり方は、前方は正のZ、上の方は正のYです。学者Zは後方ですか?それは私の混乱を説明するでしょう。 – Tai

答えて

2

あなたは正しい答えを持っています。 I、J、KはX、Y、Z方向の単位ベクトルである場合には、:

i X j = k 
j X k = i 
k X i = j 

あなたの例では、第三一つであり、それはあなたが正のyの単位ベクトルを取得する必要があることは明らかです方向。

これはpermutation symbolの例です。これは、ベクトルが一次テンソルであるためです。

関連する問題