ベクトル点の配列として定義されたオブジェクトがあり、デフォルトでは+ x軸を見下ろすとします。オブジェクトを単位ベクトル(例えば、(0,1))に向けるにはどうしたらいいですか?私は3D空間に似ていると思いますか?2Dオブジェクトを単位ベクトルの方向に向ける
EDIT:これには三角関数は必要ないと思いますので、角度やアークタンジェントは使用しないでください。
ベクトル点の配列として定義されたオブジェクトがあり、デフォルトでは+ x軸を見下ろすとします。オブジェクトを単位ベクトル(例えば、(0,1))に向けるにはどうしたらいいですか?私は3D空間に似ていると思いますか?2Dオブジェクトを単位ベクトルの方向に向ける
EDIT:これには三角関数は必要ないと思いますので、角度やアークタンジェントは使用しないでください。
2Dの方がはるかに簡単です。 2Dでは、オブジェクトの回転は単なる角度として表現できます。方向ベクトルを使用してアークタンジェントルーチンを呼び出して角度を取得し、その角度でオブジェクトを回転させます。
EDIT:アークタンジェントはありませんか?そうです、オブジェクトの点のX軸がベクターになるようにします(u, v)
。その場合、y軸は常に(-v, u)
と表され、(u, v)
が単位ベクトルであれば単位ベクトルとなります。
このようにしてください:あなたのオブジェクトに対してポイント(x, y)
がある場合、世界に対する相対位置は(object.xCenter, object.yCenter) + x(u, v) + y(-v, u) = (object.xCenter + u*x - v*y, object.yCenter + v*x + u*y)
になります。
例:オブジェクトは(5,5)にあります。 x軸方向を向いているとき、(2,2)の点を基準にしています。今度は、(sqrt(2)/ 2、sqrt(2)/ 2)(単位長バージョンの(1,1))で方向付けしたい場合、世界に対するポイントは(5,5 + 2 * sqrt(2))。
申し訳ありませんが、私は何か言及を忘れてしまったので私の質問を編集しました。また、私はちょっとオブジェクトを回転させることを知りたいと思っています。 – slartibartfast