我正在计算 2D (x,y) 中 A(x0,y0) 和 B(x1,y1) 点之间的距离。
我有以下代码表示给定两个边界点 A(x0,y0) 和 B(x1,y1) 中每个单元格的相交点。
def intersected_points(x0, x1, y0, y1):
# slope
m = (y1 - y0 )/( x1 - x0)
# Boundary of the selected points
x_ceil = ceil( min (x0, x1 ))
x_floor = floor( max(x0, x1))
y_ceil = ceil( min(y0, y1))
y_floor = floor( max(y0, y1))
# calculate all intersected x coordinate
ax = []
for x in arange(x_ceil, x_floor + 1, 1):
ax.append([ x, m * ( x - x0 ) + y0 ])
# calculate all intersected y coordinate
for y in arange(y_ceil, y_floor + 1, 1):
ax.append([ ( y - y0 ) * ( 1./m ) + x0, y ])
return ax
样本值:
intersected_points(1.5, 4.4, 0.5, 4.1);
输出:
[
[2.0, 1.1206896551724137],
[3.0, 2.3620689655172411],
[4.0, 3.6034482758620685],
[1.9027777777777779, 1.0],
[2.7083333333333335, 2.0],
[3.5138888888888893, 3.0],
[4.3194444444444446, 4.0]
]
我得到的输出是混合的和未排序的值,因此,对于每个单元格坐标,线交叉的地方。但是,我想要得到的结果应该是一些东西(包括边界点):(x0,y0),所有相交点,(x1,y1) 其中 x0, y0 - 初始点,x1,y1 - 最终点。其他值是相交线坐标!