私は2本の指で写真を回転できるマルチタッチサポートを行っています。 4つのポイントがあります:前の指の場合は2、現在の指の位置の場合は2です。どのようにポイントの2つのペアの間の角度を見つけるのですか?
私は、前の2つの指を引いて新しい点を計算し、もう1つの現在の指を引いて新しい点を計算しました。
そして、私はこのような角度を計算する:
radian1 = ATAN(p1.y/p1.x)。 radian2 = atan(p2.y/p2.x);
最後の角度を得るために、radian2とradian1を減算します。
問題は画像をきれいに回転させることができますが、写真が反転した特定の位置に回転した場合などです。 270の写真が反転して90度に現れた写真。
var x1 = this.previousMousePoint.x * this.previousMousePoint2.x + this.previousMousePoint.y * this.previousMousePoint2.y;
var y1 = this.previousMousePoint.x * this.previousMousePoint2.y - this.previousMousePoint.y * this.previousMousePoint2.x;
var x2 = center.x * point.x + center.y * point.y;
var y2 = center.x * point.y - center.y * point.x;
var radian1 = Math.atan(y1/x1);
var radian2 = Math.atan(y2/x2);
this.anchor.matrix = this.anchor.matrix.rotate(radian2-radian1, pivot);
OK探しています:
これは、私は以下の回答がに従って書かれているJavaScriptのです。画像を回転しようとすると少し遅くなります
間違いなくこのウィキペディアのリンクをご覧ください。 http://en.wikipedia.org/wiki/Rotation_(mathematics) – Surya