首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用两个numpy阵列求交坐标点

用两个numpy阵列求交坐标点
EN

Stack Overflow用户
提问于 2016-05-06 05:27:40
回答 2查看 3.4K关注 0票数 2

这类问题有点不同--通常的“如何通过numpy找到两行的交叉点”。情况是这样的,我正在创建一个研究边坡稳定性的程序,我需要找到一个圆与一条线相交的地方。

我有两个numpy数组:

一个数组给出了二维高程剖面的正常(x,y)值。

另一个数组是坐标(x,y)的计算值,它跨越一个从定义的中心到一个圆的周长。

我需要以某种方式比较两者在什么近似点上的圆坐标相交的轮廓线?

这里有一些需要处理的数据:

代码语言:javascript
运行
复制
circ_coords = np.array([
                        [.71,.71],
                        [0.,1.]
                       ])

linear_profile = np.array([
                           [0.,0.],
                           [1.,1.]
                         ])

我需要一个函数,可以说是一个或多个坐标值,根据这些圆形坐标和你的线性轮廓。这两个人会在这里相交。

代码语言:javascript
运行
复制
def intersect(array1, array2):
    # stuff
    return computed_array
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-06 05:45:16

修长有一些很酷的功能。根据这个职位,这段代码应该可以工作:

代码语言:javascript
运行
复制
from shapely.geometry import LineString
from shapely.geometry import Point

p = Point(0,0)//center
c = p.buffer(0.71).boundary//radius
l = LineString([(0.,0.), (1., 1.)])//line point
i = c.intersection(l)

显然,我是你正在寻找的数组,也,检查这个帖子也。希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 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值可用于计算交点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37064881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档