我有一个带曲线的3D世界。每条曲线只是一个3D点列表。 当用户点击scree时,我想测试该点是否处于封闭区域。 例如,用户绘制四条形成矩形的曲线。如果他在这个矩形内部点击,我想“知道”它是一个封闭的区域。
我找不到任何已知的算法 - 我怎么能实现这种行为?
答案 0 :(得分:1)
假设您的“封闭区域”都是平面的:对于每个区域,找到拾取射线和区域平面之间的交点。然后使用奇偶交叉测试(跟随该平面中的光线)来确定该点是否在该区域内。
如果您的区域不是平面,则可以使用绕组测试,在该测试中,对该区域中每个连续点对的拾取光线的有角度求和,并查看该和是否为非零(考虑到数值)漂移)。