已知物体的两个坐标 计算移动方向 - python
生活随笔
收集整理的這篇文章主要介紹了
已知物体的两个坐标 计算移动方向 - python
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.已知條件
在直角平面坐標中,我們已知兩個坐標點的位置,即物體的上一時刻位置(x1,y1) 和 此時位置(x2,y2) , 想要知道 該物體的移動方向(直角坐標系的360°角),該如何計算?
2.解題思路
這是一個可以用反三角函數解的題,需要額外判斷的是角的象限。
因為已知兩點坐標,坐標增量dx(x2-x1),dy(y2-y1),兩個對應坐標分量相減,終點減始點。
下面用數學知識解出對應方位角及象限。
反正切函數就是好幾個這樣的曲線疊加,我們根據坐標增量進行計算以及判斷方位角
3.代碼實現
(根據網傳的一份代碼改編,著重調整了判斷象限的部分,變成了以x軸正方向為0°,四個象限一共360°的移動方向角計算函數)
def azimuthAngle(x1, y1, x2, y2):angle = 0.0000dx = x2 - x1dy = y2 - y1if x2 == x1:angle = math.pi / 2.0if y2 == y1 :angle = 0.0elif y2 < y1 :angle = 3.0 * math.pi / 2.0elif x2 > x1 and y2 > y1:angle = math.atan(dy / dx)elif x2 < x1 and y2 > y1 :angle = math.pi / 2 + math.atan(-dy / dx)elif x2 < x1 and y2 < y1 :angle = math.pi + math.atan(dy / dx)elif x2 > x1 and y2 < y1 :angle = 3.0 * math.pi / 2.0 + math.atan(dy / -dx)return (angle * 180 / math.pi)結果如下圖 :
總結
以上是生活随笔為你收集整理的已知物体的两个坐标 计算移动方向 - python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式linux cdc类 usb4G网
- 下一篇: python小程序之猜水果游戏