常會需要計算單點對應到另一個點的旋轉角度
一般的想法就是先算兩點的向量,然後除成tan
再用Math裡面的atan去反推回角度
需要考慮分母為零或是正負號的問題
但其實在Math另外有一個atan2的函式可以直接透過兩點的向量算出角度
private double CalAngle(Point pa, Point pb)
{
/// Y alias is reverse from Cartesian plane
return Math.Atan2(pa.Y - pb.Y, pb.X - pa.X);
}
記得在笛卡爾座標系跟螢幕上的座標的Y軸是反向的
所以計算要反過來減
--
參考資料
Math.Atan2 方法
沒有留言:
張貼留言