こうすることで、あるオブジェクトのローカル情報を元に座標変換する事ができる。
要は別の基底(基準)を元に調整できる事ができるということである。
実例1 マトリックスを使い、ボックスのある頂点を、ティーポットのある頂点へ移動する。
1、ボックスとポットを用意する。頂点番号50をターゲットにする。
ボックスの絶対座標はワールド基底からの値で、ローカル座標はローカル基底からの値である。
ボックスのワールド基底をポットのローカル基底に変換するために下記の2つの基底を用意する。
ボックスのワールド基底の変換行列は、transformプロパティでゲットできる。
ポットのローカル基底が必要なので、逆行列で用意しておく。
2、ティーポットのローカル空間でのボックスの頂点50の座標を求める。そのためには、ボックスの基底をティーポットのローカル空間にすればよい。
3、ポットの頂点100のローカル空間座標を求め、ボックスの頂点50へ移動するため移動ベクトルを求める。
実例2 オブジェクトAのローカル空間を元に、オブジェクトBを動かす。
画像のboxのローカル空間を元にSphereを移動します。ここでは、boxのy軸に沿って移動したいと思います。
①変換マトリクスを用意します。
transmatrix [0,5,0] ----①
これを$Sphere.transform * transmatrix [0,5,0]してもワールド空間でのY軸に沿っての移動になる。
②boxのローカル空間を取得する
inverse $box.transform ----②
③①の移動変換マトリクスを②を使い変換する
xformmat ① ②
これでboxのローカル空間でのY軸に沿っての移動になる。
0 件のコメント:
コメントを投稿