hibitekitou
任意軸での回転行列
sansu |2012-09-28
こんな感じでp0、p1、p2の3つの点があって、p0からp1へのベクトルを回転軸としてp2を回してみましょうって時、どうするか。
これは単純にベクトルのたし算でできちゃいます。ICE Treeはこんな感じ。
詳しくは、こーいうところを見るのがいいでしょうかね(丸投げ)。
3次元の回転 (原点を通る任意方向回転軸,座標系に依存しないベクトル・回転行列表現 )
ところで、これを変形していくと、回転行列が求められます。うん、求められるらしいですよ?w
回転軸上の単位ベクトルを (Ax, Ay, Az) として、θ度回転している時の式です。
これをICE Treeに実装すると、
と非常に煩雑になります。でも、これを正しくかければ、いい感じに行くようですね。
上記ICE Treeは回転軸がp0→p1なので、p2の位置を、p0を原点に戻す量だけ動かした上で、上記回転の変換をかけ(Multiplay by Matrixを使います)、出てきた結果に対してまたp0の位置分だけ動かしてやるという手順を踏んでいます。
ってことで、これをスクリプト実装してやれば、「スライスツールをスクリプトから設定することを考える [日々適当] 」こいつがちゃんとできるはずです。たぶん、以前実装した時はp0分だけ動かしてやることをしていなかったのが悪かったのでは無いかと想像していますがどうですかね。
コメント ( 0 )|Trackback ( )
コメント |
コメントはありません。 |
コメントを投稿する |
ブログ作成者から承認されるまでコメントは反映されません |