这类问题有点不同--通常的“如何通过numpy找到两行的交叉点”。情况是这样的,我正在创建一个研究边坡稳定性的程序,我需要找到一个圆与一条线相交的地方。
我有两个numpy数组:
一个数组给出了二维高程剖面的正常(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
发布于 2016-05-06 05:45:16
发布于 2016-05-06 06:03:11
你可以用代数来解决它。(x1,y1)和(x2,y2)之间线段上的点(x,y)的参数表示是:
x=tx1+(1−t)x2和y=ty1+(1−t)y2
其中0≤t≤1。
如果你把它代入圆的方程中,然后用t来求解得到的二次方程,你就可以检验0≤t01≤1,即线段与圆的交点。t01值可用于计算交点。
https://stackoverflow.com/questions/37064881
复制相似问题