射线与三角型、多边形相交测试

          一个点是否在多边形里面,只将这个点向任意方向作一个射线,若与这条射线有奇数条边相交则点在多边形里面,如果有偶数条边相交则在外面.
         实际上两个三角形合在一起,是一个四边形,对于这种多个图形合在一起的图形不要做公共边的测试就行了,把他当成一个多边形.或者两个三角形分开来测试也行。

GameRes论坛上的corpus说当交点接近公用边时,可能是因为计算误差,有时会出现两个三角形都发生相交或者都没发生相交的错误现象。我的那个程序里因为要处理任意模型,而且相交测试只是要返回具体交了那些面。所以公用边三角面合并成多变形的方法不太适用。我觉得主要还是在计算误差上,就类似说咱们最常见的光栅化,为什么网格模型渲染出来后你看不到三角面之间有重叠或者有缝隙一样。

6377说:这个算法是有毛病,我们现在都不用了。

tarkey说:判断下浮点误差就好了.
http://www.ziggyware.com/readarticle.php?article_id=78 这里有几个比较稳定的关于ray-tri intersection的,你可以看看.

这个问题我以后研究一下。待续。。。

GameRes的帖子地址:http://bbs.gameres.com/showthread.asp?threadid=72834



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值