如何根据触摸计算图像旋转?

时间:2011-06-04 13:31:17

标签: iphone geometry rotation

我是iphone开发人员,但这个问题与几何有关。

我有一个简单的矩形(也许是一张照片)。用户在某一点触摸此照片并将其手指拖动到新点:

http://dl.dropbox.com/u/792862/Untitleddrawing.png

我必须旋转这个矩形以模拟触摸给出的旋转多少个弧度?

2 个答案:

答案 0 :(得分:2)

我假设你有一个固定的旋转原点(图片中的十字准线会暗示这样),触摸设置另一个点。

首先,你需要一种方法来计算出一条线的角度。 atan2功能(可在任何装备精良的数学库中使用)计算出任意直线与X轴之间的角度。首先找出起始角度:

startAngle = atan2(startY - originY, startX - originX)

然后是结束角度:

endAngle = atan2(endY - originY, endX - originX)

然后只需从两个角度减去两个角度来计算轮换:

angleToRotate = endAngle - startAngle

根据旋转的工作方式,您可能需要更换周围的东西。

答案 1 :(得分:0)

使用atan2将起点和终点转换为角度,然后在必要时翻译每个以校正非(0,0)原点。