我正在做一些允許2個手指旋轉照片的多點觸控支持。有四點:前手指2點,當前手指位置2點。如何找到2對點之間的角度?
我通過減去前兩個手指來計算一個新點,並且通過減去另外兩個當前手指來計算第二個新點。
然後,我計算這樣的角度:
radian1 = ATAN(p1.y/p1.x); radian2 = atan(p2.y/p2.x);
我減去radian2和radian1得到最終的角度。
問題是我可以旋轉圖像很漂亮,但有時如果我旋轉到某些位置照片翻轉例如一張照片應該在270度,但它翻轉並出現在90度。
這是我根據下面的書面答覆的JavaScript:
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);
是尋找確定。但是當我嘗試旋轉圖像時,速度很慢
看看這個維基百科鏈接,這一定會對你有所幫助。 http://en.wikipedia.org/wiki/Rotation_(mathematics) – Surya 2012-03-27 13:27:03