使用匀称碰撞两个矩形

问题描述

我的目标是检查两个矩形是否沿其轨迹发生碰撞。轨迹由经纬度坐标组成,作为样本:

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 (将#修改为@)