話不多說,直接上**:
from pyqt5.qtgui import
*from pyqt5.qtwidgets import
*from pyqt5.qtcore import qt
import sys
import math
class
example
(qwidget)
:def
__init__
(self)
:super()
.__init__(
) self.initui(
)def
initui
(self)
: self.resize(
500,
250)
self.setwindowtitle(
"座標系"
) self.lb = qlabel(
"點1到原點距離:"
, self)
self.lb.move(20,
40)self.lb2 = qlabel(
"點1與原點的角度:"
, self)
self.lb2.move(20,
80)self.lb3 = qlabel(
"點2到原點距離:"
, self)
self.lb3.move(20,
120)
self.lb4 = qlabel(
"點2與原點的角度:"
, self)
self.lb4.move(20,
160)
self.bt1 = qpushbutton(
'查詢'
, self)
self.bt1.move(20,
200)
self.edit = qlineedit(
'', self)
self.edit.move(
150,40)
self.edit2 = qlineedit(
'', self)
self.edit2.move(
150,80)
self.edit3 = qlineedit(
'', self)
self.edit3.move(
150,
120)
self.edit4 = qlineedit(
'', self)
self.edit4.move(
150,
160)
self.bt1.clicked.connect(self.calc_angle)
self.show(
)def
calc_angle
(self)
: x1 =
float
(self.edit.text())
* math.cos(math.radians(
int(self.edit2.text())
))y1 =
float
(self.edit.text())
* math.sin(math.radians(
int(self.edit2.text())
))x2 =
float
(self.edit3.text())
* math.cos(math.radians(
int(self.edit4.text())
))y2 =
float
(self.edit3.text())
* math.sin(math.radians(
int(self.edit4.text())
))angle =
0 dy = y2 - y1
dx = x2 - x1
if dx ==
0and dy >0:
angle =
90print
('順時針:'
, angle,
'°')
if dx ==
0and dy <0:
angle =
270print
('順時針:'
, angle,
'°')
if dy ==
0and dx >0:
angle =
0print
('順時針:'
, angle,
'°')
if dy ==
0and dx <0:
angle =
180print
('順時針:'
, angle,
'°')
if dx >
0and dy >0:
angle = math.atan(dy / dx)
*180
/ math.pi
print
('東偏北:'
,angle,
'°')
elif dx <
0and dy >0:
angle =
90- math.atan(dy /
abs(dx))*
180/ math.pi
print
('北偏西:'
, angle,
'°')
elif dx <
0and dy <0:
angle = math.atan(dy / dx)
*180
/ math.pi
print
('西偏南:'
, angle,
'°')
elif dx >
0and dy <0:
angle = math.atan(
abs(dy)
/ dx)
*180
/ math.pi
print
('東偏南:'
, angle,
'°')
length = math.sqrt(dy * dy + dx * dx)
print
(length)
if __name__ ==
'__main__'
: ex = example())
)
最後的結果之所以有那麼多小數點,是因為math.pi,其實就是π,3.1415926…,有很多小數字!
其實上文就是,在乙個座標系中,已知兩個點到座標原點的距離,以及它們和橫軸的角度(這都是需要自己手動輸入的),那麼就以第乙個點為此時的座標原點,求第二個點到第乙個點的距離,以及第二點在第一點的相關方位。
ps: 我這裡是已知兩點到原點的距離和角度,就像在乙個極座標裡一樣,如果直接知道兩點的橫縱座標,那麼會更好求。
根據座標點位置計算方位角(python實現)
根據座標點位置計算方位角是在gps軌跡處理和資料探勘中很常見的得到車頭朝向的方式。網上的大部分 都有些許錯誤,這裡總結如下。x1,y1 為當前gps點座標,x2,y2 為下乙個點的gps座標 def calc angle x1,y1,x2,y2 angle 0 dy y2 y1 dx x2 x1 i...
google map 根據座標點自動縮放
google map v3的命令和v2有些差別。下面把我的 貼出來。這個功能主要是如果乙個地圖上有多個座標,可以根據座標點自動計算zoom值,防止有點座標點跑到地圖外面,導致顯示不全。planservice.initmap function id,flightplancoordinates,area...
Android 根據座標點動態改變View的位置
在開發專案中,需要動態改變view的位置,其實只需要用api的 layout 方法即可,不斷改變座標值,通過ontouchevent 來獲取點的座標點,然後計算出view的寬和高就可以了 如下 private relativelayout main area 需要移動的view private vo...