2014-01-12 21 views
1

我有一组二次贝塞尔曲线(point0(x,y),controlPoint(x,y),point1(x,y))定义的形状。这个形状总是封闭的,但可以由凹凸区域组成(例如:形状可以是椭圆形或者可以是蛇形蛇。是否有算法可以确定坐标(x,y)是否在闭合形状内在给定的二次贝塞尔曲线?确定坐标是否在矢量形状内

感谢您的时间

+0

如果您可以将曲线转换为具有线段的近似值,则很容易。与贝塞尔数学一起工作会变得棘手。 –

回答

2

的基本方法形成的是一个简单的https://en.wikipedia.org/wiki/Point_in_polygon测试。拼合曲线,并把它当作一个(有限)系列线,然后进行测试。为了提高性能,你也可以将你的形状看作许多不同的区域,每个区域都由一条贝塞尔曲线和(可能重叠的)船体界定,如果这个点位于船体内部,那么只需将这条曲线平坦化,然后进行真正的测试。

该计划的变化是多种多样的。

+0

图23.1中的演示http://pomax.github.io/bezierinfo/#shapes可能会对操作感兴趣。 –

+0

我曾考虑过添加该代码,但实际使用的代码需要一些快捷方式才能在特定条件下报告错误的事情,所以我不想链接到技术上不正确的代码(但为了演示目的)。 –