指のタッチが動いたときの画像の回転に取り組んでいます!タッチムーブが発生したときにx、y、zの回転角度を取得する方法がわかりません。誰もこれについて知っていますか?助けてください、tks!
質問する
103 次
1 に答える
0
X/Y/Z 回転によって、ある種のトラックボールのようなコントロール ウィジェットが必要であると想定しています。これを実装するには、クォータニオンの使用を検討する必要があります。
単純な形式の回転では、ロールをゼロのままにして、x の動きをヨーに、y の動きをピッチにマッピングします...
dx = x - lastX;
dy = y - lastY;
rotation.x -= dy;
rotation.y += dx;
rotation.z = 0;
次に、回転をクランプして、ヨーの動きが反転しないようにします
rotation.y = min(max(rotation.y, -pi/2), pi/2);
または、ドラッグしながら画面の中心を中心に回転を見つけたい場合は...
midX = screenWidth/2;
midY = screenHeight/2;
downAngle = atan2(downX-midX, downY-midY); //angle from +x to start position of rotation
upAndle = atan2(upX-midX, upY-midY); //angle from +x to current position
angle = upAndle - downAngle; //difference between them
if (angle > pi) angle -= 2*pi; //keep angle less than 180 degrees in either direction
if (angle < -pi) angle += 2*pi;
于 2013-08-23T09:44:46.933 に答える