我正在做一些允许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