问题描述
我的目标是检查两个矩形是否沿其轨迹发生碰撞。轨迹由经纬度坐标组成,作为样本:
lat_225 [41.4049364 41.4049656 41.4049938]
lon_225 [2.177356 2.1773926 2.1774287]
lat_334 [41.4049643 41.4049471 41.4049307]
lon_334 [2.1774245 2.1774109 2.1773976]
下面的代码显示了与上述数据对应的三个点的轨迹。如果有交叉,则检测到。
from shapely.geometry import polygon
import pandas as pd
for x in range (2,len(lat_225)):
##p1 = polygon([(0,0),(1,1),0)])
p1 = polygon([(lat_225['latitude'].values[x-2]/10000000,lon_225['longitude'].values[x-2]/10000000),(lat_225['latitude'].values[x-1]/10000000,lon_225['longitude'].values[x-1]/10000000),(lat_225['latitude'].values[2]/10000000,lon_225['longitude'].values[x]/10000000)])
p2 = polygon([(lat_324['latitude'].values[x-2]/10000000,lon_324['longitude'].values[x-2]/10000000),(lat_324['latitude'].values[x-1]/10000000,lon_324['longitude'].values[x-1]/10000000),(lat_324['latitude'].values[x]/10000000,lon_324['longitude'].values[x]/10000000)])
if (p1.intersects(p2) == True):
print("Collision")
我想添加二维矩形而不是点。是否可以在此代码中对其进行调整,还是应该采用不同的方法?另一个疑问是如何使用笛卡尔坐标调整矩形尺寸。
所以,从这一行开始: polygon([(0,0)])
(0,0) (1,1) (1,0) 中的每一个都应该是矩形的中心,可以修改宽度、长度和旋转(轴承)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)