【问题标题】:What is the best way of writing box-box ray collision detection in three.js?在three.js中编写box-box射线碰撞检测的最佳方法是什么?
【发布时间】:2011-11-23 20:10:56
【问题描述】:

这个实验中的物体是随机移动的:http://deeplogic.info/project/webGL/

使用three.js 库为此编写盒子-盒子射线碰撞检测的最佳方法是什么?

【问题讨论】:

  • box-box ray是什么意思?
  • 也许我描述错了,使用光线追踪的 2 个盒子之间的碰撞。与边界框碰撞不同,因为这些对象可以以不相互垂直的角度移动

标签: javascript 3d collision-detection webgl three.js


【解决方案1】:

如果您使用的是光线追踪:

对于这两个盒子,检查它的 12 条边与另一个盒子的 6 个面。如果它们都不相交,则可以确定没有碰撞。

要检查一个盒子的边缘与另一个盒子的面: 定义一条直接沿着边缘行进的无限光线。 定义一个位于另一个盒子面上的无限平面。 使用射线平面交点找到无限平面和无限射线的交点。 检查交点是否:a) 位于盒子的边缘,b) 位于另一个盒子的面内。如果是这样,你就有一个路口!

至于一旦你知道它发生了如何处理那个交叉点,那是一个全新的话题。

【讨论】:

  • 如何制作无限光线?
猜你喜欢
  • 2014-01-16
  • 1970-01-01
  • 2011-03-01
  • 2023-03-21
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 2012-11-07
  • 2023-04-04
相关资源
最近更新 更多