使用GDI检查点是否属于Bezeir曲线包围的区域

时间:2016-01-18 09:48:00

标签: algorithm gdi hit

我想检查指定的坐标是否在Bezier curve所包围的区域内。我可以使用GDI中的特定功能吗?如果不是,我怎么能手动完成? 我的贝塞尔曲线由它的点设定。

1 个答案:

答案 0 :(得分:1)

你要做多少询问?
如果性能不是很重要,您可以创建GDI区域并检查点是否在内部:

BeginPath
draw enclosed path with PolyBezier and other functions
EndPath
PathToRegion
PtInRegion

如果有很多查询点,最好做出解析解 - 用Bezier曲线计算(水平)射线的交点数(需要三次方程解)。如果这个数字是奇数 - 点在里面(在曲线尖点上有一些双根的细微差别等)