SceneKitでBlender 3Dモデル(地球テクスチャを持つ球)をインポートしましたが、これをパンジェスチャーで回転しようとしています。 SceneKitの回転システムはBlenderで採用されている回転システムとは異なるため、私は精神的にx軸とy軸を交換する必要があります。インポートされたブレンダーモデルが正しく回転しません
これは私が地球のオブジェクトを回転させる方法である:
func pan(gesture:UIPanGestureRecognizer)
{
let translation = gesture.translation(in: self.view) * 0.05
let intensity = Float(magnitude(point: translation)) // Euclidean distance
let rotation = SCNMatrix4MakeRotation(intensity, Float(translation.y), Float(translation.x), 0.0) // I invert the x and y because of the different coordinate system
earth.transform = SCNMatrix4Mult(earth.transform, rotation)
gesture.setTranslation(CGPoint(x:0.0, y:0.0), in: self.view)
}
y軸周りの回転が正しいですが、私は垂直方向にパンニングによりx軸に沿って回転しようとすると、それがXの場合のように思えます地球の軸は斜めであり、y軸に垂直ではない。私が最初に上向きにして、下方向に指をドラッグし、この動画では
: https://www.youtube.com/watch?v=7YumAB_rXlk
それはあなたがモデルを回転させるのではなく、オブジェクトの周りにカメラを回転させることができます可能ですか?これは、この種のことを行う「通常の」方法です。それは正しいことだと言っているわけではありません。私はあなたの究極の目的が何であるか分からず、オブジェクトの周りのカメラの動きよりもむしろモデルの回転を必要とするかもしれません。 – Confused
@Confusedオブジェクトをシーンに追加して1つだけ回転させたい場合、それは機能しません。私は、カメラを動かさずにオブジェクトを回転させる適切な方法を学びたいと思っています。 –
あなたはこれをチェックしましたか:http://stackoverflow.com/questions/38834092/how-to-rotate-an-scnbox – Confused