这种问题与正常的“如何通过numpy找到两条线的交叉点”略有不同。这是情况,我正在创建一个程序来查看斜率稳定性,我需要找到一个圆与一条线相交的位置。
我有两个numpy数组:
一个数组给出了2D
中高程剖面的正常(x,y)值另一个数组是坐标(x,y)的计算值,它跨越定义中心的圆周。
我需要以某种方式比较两者在圆的坐标与轮廓线相交的近似点?
这里有一些数据可供使用:
circ_coords = np.array([
[.71,.71],
[0.,1.]
])
linear_profile = np.array([
[0.,0.],
[1.,1.]
])
我需要一个可以吐出的函数说一个或多个坐标值,这些坐标值表示基于这些圆形坐标和你的线性轮廓......两者将在这里相交。
def intersect(array1, array2):
# stuff
return computed_array
答案 0 :(得分:2)
你可以用代数方式解决它。 (x1,y1)和(x2,y2)之间的线段上的点(x,y)的参数表示是:
x = tx1 +(1-t)x2和y = ty1 +(1-t)y2,
其中0≤t≤1。
如果将其替换为圆的方程并求解t的二次方程,则可以测试0≤t01≤1,即带圆的线段间。 t01值可用于计算交点。
答案 1 :(得分:1)