找到矢量在可变轴上的角度

时间:2013-06-03 19:40:10

标签: c cocos2d-iphone geometry transformation trigonometry

x 轴找到矢量所产生角度的典型方法(假设 x 轴从左到右, y 轴从下到上运行):

double vector_angle = atan2( y , x )

但是,我希望我的轴的原点位于圆上的某个点上,以便 x 轴从圆的边缘上的点穿过圆的中心,并且 y 轴与该点处的圆相切(因此将垂直于 x 轴)。

假设代码仍然是相同的,但现在通过距离 k 和角度 theta 调整,可能:

double y_position = ( y + k ) * theta;
double x_position = ( x + k ) * theta;
double vector_angle = atan2( y_position, x_position );

但我不确定这一点。对于基于触摸的应用程序来说,这是一个普遍的问题,我希望有一个通用的方法来使用滑动运动来移动精灵(在cocos2d中),滑动运动始终与圆心保持恒定距离。

enter image description here

这里, B 是矢量的原点,可以通过旋转 theta 进行变换。例如,如果我们转换圆圈并将 B 指向90度,则 B 将位于(4,0)且 B 行 - > A 沿着轴4(y = 4)。我希望在转换时获得点 B 的节点空间中的角度。

1 个答案:

答案 0 :(得分:0)

Arctan返回向量的正确角度,其中“x轴”是垂直于切线的直线。

相关问题