matlab直线与网格相交,如何求直线与网格的交点?

我有轨迹数据,每个轨迹由一系列坐标(x,y点)组成,每个轨迹都由一个唯一的ID标识

这些轨迹在x-y平面上,我想把整个平面分成等大小的网格(正方形网格)。这个网格显然是不可见的,但它被用来将轨迹划分为子段。当一条轨迹与一条网格线相交时,它就被分割成一条新的子轨迹。在

我包括一个简单的手工图表,以明确我的期待。在

7gLGi.jpg

可以看到轨迹是如何在网格线的交点处划分的,并且每个线段都有新的唯一id

我正在研究Python,并寻求一些Python实现链接、建议、算法,甚至是一个伪代码。在

如果有什么不清楚的,请告诉我。在

更新

为了将平面划分为栅格,单元索引如下:#finding cell id for each coordinate

#cellid = (coord / cellSize).astype(int)

cellid = (coord / 0.5).astype(int)

cellid

Out[] : array([[1, 1],

[3, 1],

[4, 2],

[4, 4],

[5, 5],

[6, 5]])

#Getting x-cell id and y-cell id separately

x_cellid = cellid[:,0]

y_cellid = cellid[:,1]

#finding total number of cells

xmax = df.xcoord.max()

xmin = df.xcoord.min()

ymax = df.ycoord.max()

ymin = df.ycoord.min()

no_of_xcells = math.floor((xmax-xmin)/ 0.5)

no_of_ycells = math.floor((ymax-ymin)/ 0.5)

total_cells = no_of_xcells * no_of_ycells

total_cells

Out[] : 25

因为平面现在被分成25个细胞,每个细胞都有一个细胞。为了找到交点,也许我可以检查轨迹中的下一个坐标,如果单元格ID保持不变,那么轨迹的那一段在同一个单元格中,与网格没有交集。例如,如果x_cellid[2]大于x_cellid[0],则线段与垂直网格线相交。尽管如此,我仍然不确定如何找到与网格线相交的交叉点,并在交叉点上分割轨迹,给它们新的id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值