3

SCNNodeSCNVector4は、角度 (w) と、その角度が各軸 (x、y、z) にどのように適用されるかの大きさを持つ を使用して回転します。たとえば、x 軸を中心に 45 度回転するには、次のSCNVector4よう に作成します。

SCNVector4Make(1.0f, 0, 0, DEG2RAD(45))

たとえば、x 軸で 45 度、y 軸で 15 度、z 軸で -135 度です。final を計算するための数学を知っている人はいますSCNVector4か?

4

4 に答える 4

10

rotationプロパティの代わりにeulerAngles、各軸の角度を使用して指定します

于 2014-10-19T18:27:52.203 に答える
2

回転ごとに SCNVector4 を生成し、乗算する必要があります。操作の順序が重要であることに注意してください。

http://www.cprogramming.com/tutorial/3d/rotationMatrices.htmlには、数学のかなり良い記事があります。回転行列を扱う OpenGL リファレンスも一見の価値があります。

于 2013-04-04T19:21:05.117 に答える
2

回転をアニメーション化していない場合は、次のように変換行列を直接設定する方がきれいかもしれません。

node.transform = CATransform3DRotate(CATransform3DRotate(CATransform3DRotate(node.transform, xAngle, 1, 0, 0), yAngle, 0, 1, 0), zAngle, 0, 0, 1);
于 2014-01-08T13:17:56.233 に答える