查看: 1342|回复: 3

如何判断交集点在包围盒的什么方向

[复制链接]

该用户从未签到

发表于 2011-7-17 11:47:12 | 显示全部楼层 |阅读模式
用PolytopeIntersector和Visitor得到了每个交集点,如何判断交集点在包围盒的什么方向,从而停止物体某个方向的运动呢?
或者我这种实现碰撞检测的算法就不对?

该用户从未签到

发表于 2011-7-18 08:23:49 | 显示全部楼层
您可以自己根据点和包围盒的位置关系来判断

该用户从未签到

 楼主| 发表于 2011-7-18 16:01:24 | 显示全部楼层

  1. if (it->localIntersectionPoint.y()>=spreaderBB.center().y())
  2.    blnCollisionLeft=true;
  3. else
  4.   blnCollisionRight=true;
复制代码
现在是这么判断的,明显不对。
当两个Box相交,有多个交集,每个交集又有很多交点,因此通过判断点和包围盒的位置关系,很难确定哪个方向不能移动。
比如,模型向左移动,进入碰撞对象,那很显然除了包围盒左面有碰撞点,前后也有碰撞点,而目的是限制模型继续向左移动,前后不限制。

该用户从未签到

发表于 2011-7-19 08:16:45 | 显示全部楼层
这个就只能从您的功能设计上考虑了,也许用包围球来判断更容易得出碰撞后反弹的方向来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表