2013-06-03 65 views
1

典型的方式找到一個矢量從X軸(假設X軸線延伸從左​​到右使得角度和ÿ軸線延伸底部到頂部)是:查找矢量使得在可變角度軸

double vector_angle = atan2(y , x) 

不過,我想我的軸有他們的原籍在一個點上一圈,以便X軸從圓的邊緣點通過圓心運行,並且軸與該循環相切(因此這將垂直於軸線)。

Assumedly代碼仍然是相同的,但現在距離ķ和角度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

這裏,是這可能是由旋轉THETA待轉化的矢量的原點。例如,如果我們通過90度時,乙轉化圓和點將在(4,0)和行 - >將沿軸線4(Y = 4 )。我想在轉換時得到點B的節點空間中的角度。

+0

僅當矢量的原點是(0,0)時,反正切纔會給出矢量的角度。矢量在你的其他座標中起源於哪裏?圓圈的中心?你可以包括一個示例向量的草圖來解釋一下好一點嗎? –

+0

不好意思,這個矢量起源於我的新斧頭來自的圓上的點。切線形成的圓上的點。 –

+1

感謝您的更新。根據新的段落,它聽起來像你的矢量總是從圓上的一個點運行到它的中心。在您更改的座標系下,這總是_x_軸的一個分支,所以角度始終爲0°或180°。除非你想要_original_座標系中的角度?但是,如果這是真的,你的原始程序就可以工作 - 只需使用atan2()'。 –

回答

0

Arctan返回矢量的正確角度,其中「x軸」是垂直於您的切線的直線。