Dan*_*ist 1 math geometry coordinates
我需要检查纬度坐标 ( A
) 是否在另外两个纬度坐标 (B
和C
) 之间。但是,重点A
不一定要在线上B->C
。
参考这张图,这里A
应该算作“介于”B
和C
:
我怎样才能做这个计算?
PS:位置可以转换为SWEREF99TM,这是一个网格系统,如果这样计算更好。我已经有了该转换的公式。
假设我们在一个平面上而不是一个球体上,即使你提到了纬度/经度......
如果角度θABC和角度θACB都小于或等于九十度,则A在B和C“之间”。
方便的是,我们甚至不需要三角函数来检测它;如果 PQ^2 + QR^2 < QR^2,角度 ?PQR 大于九十度。
def lies_between(A,B,C):
a = distance(B,C)
b = distance(C,A)
c = distance(A,B)
return a**2 + b**2 >= c**2 and a**2 + c**2 >= b**2
def distance(A,B):
return math.sqrt((A.x - B.x)**2 + (A.y - B.y)**2)
Run Code Online (Sandbox Code Playgroud)
(**
求幂运算符在哪里。)
归档时间: |
|
查看次数: |
1786 次 |
最近记录: |