flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
讨论区





最近更新:
● 无语瓶阁下在教程区里 回复“《超简易papervision3D基础 ...”(18:09:44)
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
● bad credit payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:13)
浏览主题:怎么判断一个球跟一个平面碰撞?

怎么判断一个球跟一个平面碰撞?
shavy (2010-02-03 15:42:07)

建了个plane跟sphere,发现hitTestObject的时候,plane是用它的外接圆来进行测试碰撞的,大家是怎么解决一个物体跟一个平面(一般用做游戏中的地面)碰撞的呢?


flash 3d 研究所 DDM君
(2010-02-04 13:45:17)
球体的碰撞很很简单,初略的计算就是plane的
中点到sphere的中点距离是否小于sphere的半径

更精确的计算就是判断plane上有没有点,距离sphere的中心小于sphere的半径


flash 3d 研究所 shavy
(2010-02-04 16:11:11)
当我new个plane出来的时候,该平面是接近垂直于camera的,所以我设置了plane.rotationX+=90,这时看起来像是个地面了。但是我trace了一下plane.geometry.vertices[0].x以及y跟z,发现在设置rotationX前跟后,这个坐标完全没变?

因此,当我在判断sphere的中心点跟plane上的点的距离的时候,岂不是永远都不会变?(假设整个场景就只有plane在旋转)

flash 3d 研究所 DDM君
(2010-02-04 17:34:07)
有每帧更新的吗?需要在enterframe里面每帧更新才可以的获取新的位置的哟~

flash 3d 研究所 shavy
(2010-02-05 17:23:56)
这个。。。我是在creatScene方法(初始化,还未执行开始每帧渲染的方法)中写入下面代码:

trace(plane.geometry.vertices[0].x,plane.geometry.vertices[0].y,plane.geometry.vertices[0].z);                  

plane.yaw(90);

trace(plane.geometry.vertices[0].x,plane.geometry.vertices[0].y,plane.geometry.vertices[0].z);

很明显,两个trace是一摸一样的,中间多了个旋转。。。两个trace出来的结果没变化,这样也不对吧?

评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了