读书人

请问 怎么判断一个点在某已知体内

发布时间: 2013-03-14 10:33:15 作者: rapoo

请教 如何判断一个点在某已知体内
点的坐标已知,体表面已经用多边形离散,各面坐标和法方向也已知

体是不规则形状,有凸面,有凹面

各位有什么好方法没?多谢!
[解决办法]
计算从该点起始向 x 轴正方向的射线与体表面的交点总数,基数则点在体内,偶数则体外.
[解决办法]

引用:
引用:计算从该点起始向 x 轴正方向的射线与体表面的交点总数,基数则点在体内,偶数则体外.

谢谢这位朋友,我刚才想了下,按照这个方法,如果从该点起始向 x 轴正方向的射线恰好是立体离散后的几个相邻面的公共角点,这种情况下,是不是需要单独判断啊?谢谢指点

是的.如果该射线恰好通过某边或顶点,则需要特殊认定为只有一个交点.
[解决办法]
引用:
引用:引用:引用:计算从该点起始向 x 轴正方向的射线与体表面的交点总数,基数则点在体内,偶数则体外.

谢谢这位朋友,我刚才想了下,按照这个方法,如果从该点起始向 x 轴正方向的射线恰好是立体离散后的几个相邻面的公共角点,这种情况下,是不是需要单独判断啊?谢谢指点
是的.……

检测到这种情况后,可以只计算射线与该多边形边的交点个数。ps. 边界条件总是很烦的。

读书人网 >C++

热点推荐