首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

请教 如何判断一个点在某已知体内
点的坐标已知,体表面已经用多边形离散,各面坐标和法方向也已知 
  
体是不规则形状,有凸面,有凹面 
  
各位有什么好方法没?多谢! 
[解决办法]
计算从该点起始向 x 轴正方向的射线与体表面的交点总数,基数则点在体内,偶数则体外.
[解决办法]

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

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

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

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

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

热点排行