作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想检查指定坐标是否在 Bezier curve 包围的区域内.我可以使用 GDI 中的特定功能吗?如果没有,我怎么能手动执行此操作?我的贝塞尔曲线由它的点组成。
最佳答案
你打算做多少查询?
如果性能不是很重要,您可以创建 GDI 区域并检查点是否在内部:
BeginPath
draw enclosed path with PolyBezier and other functions
EndPath
PathToRegion
PtInRegion
如果有很多查询点,最好做解析解——计算点的(水平)射线与贝塞尔曲线的交点数(需要三次方程解)。如果这个数字是奇数 - 点在里面(在曲线尖点等处有一些双根的微妙之处)
关于algorithm - 使用GDI检查一个点是否属于贝塞尔曲线包围的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34851619/
我是一名优秀的程序员,十分优秀!