检查在封闭区域触摸的用户

时间:2014-02-23 10:58:28

标签: algorithm opengl graphics

我有一个带曲线的3D世界。每条曲线只是一个3D点列表。 当用户点击scree时,我想测试该点是否处于封闭区域。 例如,用户绘制四条形成矩形的曲线。如果他在这个矩形内部点击,我想“知道”它是一个封闭的区域。

我找不到任何已知的算法 - 我怎么能实现这种行为?

1 个答案:

答案 0 :(得分:1)

假设您的“封闭区域”都是平面的:对于每个区域,找到拾取射线和区域平面之间的交点。然后使用奇偶交叉测试(跟随该平面中的光线)来确定该点是否在该区域内。

如果您的区域不是平面,则可以使用绕组测试,在该测试中,对该区域中每个连续点对的拾取光线的有角度求和,并查看该和是否为非零(考虑到数值)漂移)。