找到向量与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 中),使用滑动动作始终与圆心保持恒定距离。
这里,B是可以通过旋转theta变换的向量的原点。例如,如果我们将圆和点B变换90 度,则B将位于 (4, 0) 处,而线B -> A将沿着轴 4 (y = 4)。我想在变换时获得点B的节点空间中的角度。