Japanese subtitles

← Cross Product

Get Embed Code
2 Languages

Showing Revision 1 created 03/11/2014 by Fran Ontanaya.

  1. 傾いた円柱に対して
    回転軸を求めることはできましたが
  2. そう間単にできるとも限りません
  3. 任意の2つのベクトルの回転軸を
    すぐには求められないでしょう
  4. 幸い回転軸を簡単に求められる
    クロス積という演算があります
  5. three.jsではこのように設定します
  6. 2つのベクトルを入力し
    演算結果がVector3に反映されます
  7. この3番目のベクトルが実は
    ピンクの円柱か他の円柱の回転軸なのです
  8. 回転方向は右手の法則を使います
  9. 赤で示した斜めの円柱のベクトルから
    青で示したy軸ベクトルへ4本の指を巻くと
  10. 親指が回転軸のベクトル方向を向きます
  11. 2つのベクトルのクロス積を
    逆の回転方向のベクトルで計算すると
  12. 逆方向の回転軸が求められます
  13. 2つのベクトル間のドット積の計算を思い出しましょう
  14. ドット積で求められた長さは
    2つのベクトル間の角の正弦に比例します
  15. やっかいな特殊ケースをお見せします
  16. クロス積の計算で長さゼロのベクトルが出たら
  17. 2つのベクトルは同じ方向を向いているか
  18. まったく逆方向を向いているかです
  19. どちらであるかはドット積を使って確認でき
    同じ向きであればそれまでです
  20. 回転する必要がないからです
  21. 逆の場合は180度回転させればいいのです
  22. しかし実際にクロス積から求められる回転軸は
    (0,0,0)となり軸が存在しないことになります
  23. これまでは基本的に
    ベクトルに対し垂直な任意の軸を求め
  24. それを回転軸にするか直接回転行列を作りました
  25. これはy軸と垂直に交わるx軸を使った例です
  26. 補足の資料を見てよい解き方を見つけましょう
  27. 数学ではクロス積の表記にXを使います
  28. クロス積から求められるベクトルの長さは
    正弦と等しくなり
  29. 2つのベクトルA・B間の角度をθとし
    sinθ×Aの長さ×Bの長さとなります
  30. クロス積の計算は
    隣り合う2つのベクトルの座標を掛けて求められます
  31. x座標はAy×Bz-Az×Byという演算で求めます
  32. y座標はAz×Bz-Ax×Bzという演算です
    以前にも出てきましたね
  33. クロスして掛ける演算です
    ここに最初の値を持ってくると
  34. Az×Bx-Ax×Bzという演算になります
  35. 最後の座標も同じやり方です
    Ax×By-Ay×Bxという演算です
  36. その結果あるベクトルから
    別のベクトルへ回転する回転軸が求められます
  37. そしてそのベクトルは
    両方のベクトルに垂直になります
  38. このベクトルをあとで使う場合は
    正規化し長さを出さなくてはなりません