計算一點繞另一點旋轉n度後的座標(親測)

遇到問題先網上找一找(因爲自己已經忘完了……),搜到好幾個如下的答案:
一、

假設o點爲圓心(原點0,0),則有計算公式:

b.x = a.xcos(angle) - a.ysin(angle)

b.y = a.xsin(angle) + a.ycos(angle)

其中順時針旋轉爲正,逆時針旋轉爲負,角度angle是弧度值,如旋轉30度轉換爲弧度爲:angle = pi/180 * 30。

二、

若o不是原點,則可先將a點座標轉換爲相對座標計算,計算結果再加上o點座標。

參與計算的a點座標實際應爲 a - 0,由此得出最終計算公式如下:

b.x = ( a.x - o.x)cos(angle) - (a.y - o.y)sin(angle)

b.y = (a.x - o.x)sin(angle) + (a.y - o.y)cos(angle)

上面的內容是引用其他朋友的說明,結果坑了我半天,都是沒做實驗的吧,
直接上正解:
前面的步驟都是對的,但是!重點來了!!!!,最終還要加上中心點的座標橫縱座標即:

b.x = ( a.x - o.x)cos(angle) - (a.y - o.y)sin(angle) + o.x

b.y = (a.x - o.x)sin(angle) + (a.y - o.y)cos(angle) + o.y

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章