使用GDI检查一个点是否属于贝塞尔曲线包围的区域

Check if a point belongs to area enclosed by Bezeir curve using GDI

我想检查指定坐标是否在 Bezier curve 包围的区域内。我可以使用 GDI 中的特定功能吗?如果没有,我怎么能手动执行此操作? 我的贝塞尔曲线由它的点组成。

您打算执行多少查询?
如果性能不是很重要,你可以创建GDI区域并检查点是否在里面:

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

如果查询点较多,最好做解析解——计算点的(水平)射线与贝塞尔曲线的交点数(需要三次方程解)。如果这个数字是奇数 - 点在里面(曲线尖点等有一些双根的微妙之处)