首页 > 解决方案 > 如何使用 Python 检查 2D 点是在 2D 闭合贝塞尔曲线内部还是外部?

问题描述

在此处输入图像描述

你好,

在我的 2d 软件中,我有两个可用的输入:

一组 XY 点

[(x,y),(1,1),(2,2),(2,3),(-1,3),...]

另一个矩阵表示封闭的 2D 贝塞尔曲线句柄

[((x,y),(x,y),(x,y)),
 ((-1,-1),(1,1),(1,2)),
 ((1,1),(2,2),(2,3)),
 ...]

如何使用 python 检查一个点是在给定曲线的内部还是外部?最好使用 numpy

标签: pythonmathbeziercurvepoints

解决方案


我不知道贝塞尔曲线的理论如何,所以如果你的第二个点列表是一种表示贝塞尔曲线的压缩方式,首先尝试以你想要的精度对曲线的一些点进行采样。所以你有 n 个曲线点,然后你可以应用一个简单的 PIP 算法:https ://en.wikipedia.org/wiki/Point_in_polygon

如果您想知道如何以编程方式进行操作,我可以稍后详细解释。


推荐阅读