我有一条由多条贝塞尔曲线和直线段组成的闭合路径。如何判断鼠标指针的当前位置是在路径内部还是外部?
Example of mouse leaving the area:
![on mouse leave](https://i.stack.imgur.com/9wBsy.png)
Example of mouse entering the area:
![on mouse enter](https://i.stack.imgur.com/S6UgQ.png)
首先,您应该检查您正在使用的图形库是否已经提供了此命中测试。
如果您必须自己编码,那么完全精确的答案将需要求解二次或三次方程(取决于贝塞尔曲线的阶数)来确定与这些路径的交点。好像有一篇论文正是这个问题 http://www.sciencedirect.com/science/article/pii/S0097849397000605.
不过,我认为为您的路径构建线性近似(即密集评估路径)然后使用标准会更明智多边形内点测试 http://en.wikipedia.org/wiki/Point_in_polygon。这可以精确到您选择的任何容差(例如一个像素)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)