0
以下のコードを使用して、パンジェスチャーを使用してノードを回転しています。ノードをy軸だけ回転させるのが好きです。SceneKit iOSのパンジェスチャーを使用してノードを回転する
let translation = gestureRecognize.translation(in: gestureRecognize.view!)
let x = Float(translation.x)
let y = Float(-translation.y)
let anglePan = (sqrt(pow(x,2)+pow(y,2)))*(Float)(Double.pi)/180.0
var rotationVector = SCNVector4()
rotationVector.x = 0.0
rotationVector.y = x
rotationVector.z = 0.0
rotationVector.w = anglePan
node.rotation = rotationVector
if(gestureRecognize.state == UIGestureRecognizerState.ended) {
let currentPivot = node.pivot
let changePivot = SCNMatrix4Invert(node.transform)
node.pivot = SCNMatrix4Mult(changePivot, currentPivot)
node.transform = SCNMatrix4Identity
}
これは、オイラーが(x:0、y:0、z:0)に設定されたノードで有効です。しかし私のノードはオイラー(x:-90、y:0、z:0)を持っています。上記の私のオイラー値では、オブジェクトが間違った角度で回転します。自分の/異なるオイラー値でノードを回転させるにはどうすればよいですか?
オイラー角を設定しているときに回転軸をノードとともに回転させたいのですか? – orangenkopf
私はそう思います。私はシーンキットを初めて使っているので、回転がオイラーに影響するのか分かりません。しかし、私が必要とするのは、ノードを水平に(y軸)、オイラーのx値を-90に設定して回転させることです – prabhu