我在场景中有一个矩形,我想用鼠标旋转它。 矩形有他自己的原点。点击场景表示旋转开始和鼠标移动表示旋转角度。计算旋转角度
其中:
- -O - 旋转点的原点
- A - 锚点(保存在OnMousePress事件)
- Ç - 当前点(来自的OnMouseMove事件)
所以我在下一步计算角度:
Fistly,我得到的三角形边长:
AO = sqrt((O.x - A.x)^2 + (O.y - A.y)^2) CO = sqrt((O.x - C.x)^2 + (O.y - C.y)^2) AC = sqrt((C.x - A.x)^2 + (C.y - A.y)^2)
,然后我计算角度(一):
a = arccos ((AO^2 + CO^2 - AC^2)/(2 * AO * CO))
它的工作原理,但这种计算一下太复杂兼顾我需要重复所有OnMouseMove调用。
所以我的问题 - 有另一种方法来计算角度?我用C++编写它,所以一些代码片段将被赞赏。