当前位置: 首页 > 知识库问答 >
问题:

三维方框交点的高效确定

秦俊豪
2023-03-14

我的一般想法是,取两个多面体的每一个面,求出它的平面方程(通过应用多面体的方位和平移分量),然后越过另一个多面体的每一个顶点,确定它们是否都在平面的同一侧,如果是,我确定这两个物体不相交。

至于碰撞检测部分,我将检测它们是否相交,如果相交,我将二分搜索它们接触的那一刻,并尝试在那一刻通过找到另一个物体的顶点来找到碰撞的顶点,该顶点最接近我先前找到的平面,以确定接触点。

我的问题是,这个算法是否正确,如果正确,是不是矫枉过正?我可不可以省点支票,或者加快办理手续?

共有1个答案

蒯安平
2023-03-14

我认为你的算法是正确的,也是你将要得到的效率。为了清楚,你需要检查两个多面体的每个面,如果你发现任何情况下,另一个多面体的每个顶点都在无限平面的“外部”,那么就没有交点。

对于性能:

1预先计算封闭的球体,这样你就可以做一个初始的“粗略”检查

 类似资料:
  • 我正在探索mpld3库,不知道如何创建三维散点图。使用Matplotlib,我将执行以下操作: 类似地,我尝试使用mpld3(在Jupyter笔记本中):导入matplotlib。mpl_工具包中的pyplot作为plt。mplot3d导入轴3D导入mpld3 我得到了错误 有什么想法吗? 这是完整的错误日志:

  • 有什么方法可以在JavaFX 3D对象之间执行布尔操作,比如在球形实例、圆柱形实例和框形实例之间执行并集、交集和差集。 从Shape类继承的JavaFX 2D对象已经有union()和subtract()方法http://docs.oracle.com/javase/8/JavaFX/api/JavaFX/scene/Shape/Shape.html 我想知道JavaFX或F(X)yz库中是否有S

  • 为了良好地沟通,你必须认识到它的困难。它本身就是一种技能。与你交流的人本身是有瑕疵的,这一事实使得沟通变得更加困难。他们不会努力去理解你。他们不善言辞。他们经常过度工作或者无聊,至少,有时候只关注他们自己的工作而非你要发表的长篇大论。上课,练习写作,公共演讲,聆听,这些东西的一个好处是,如果你擅长它们,你可以更容易看到问题所在以及解决方法。 程序员是一种社会动物,他们的生存依赖于与团队的交流。高级

  • 问题内容: 我知道,常见的性能重构是用 我想问一下: 何时才真正使system.arraycopy变得有意义(考虑到这是本机方法调用)。复制小东西是否表示<32有什么好处? 是我的印象,还是不能简单地使用arraycopy复制(有效地)像这样的循环: } 问题答案: 可能是复制阵列最快的方法,但它不会进行深复制。 它还不能在第二个问题中做更复杂的示例。

  • 我知道如果我首先对多边形进行三角剖分,那么我就可以轻松可靠地检查任何三角形的面······但问题是我的三角剖分库要求知道平面正常。所以,先有蛋后有鸡。 我如何在一个非凸多边形中选择两条边(或三个顶点)来可靠地定义多边形的朝向?

  • 本文向大家介绍盘点提高 Python 代码效率的方法,包括了盘点提高 Python 代码效率的方法的使用技巧和注意事项,需要的朋友参考一下 第一招:蛇打七寸:定位瓶颈 首先,第一步是定位瓶颈。举个简单的栗子,一个函数可以从1秒优化到到0.9秒,另一个函数可以从1分钟优化到30秒,如果要花的代价相同,而且时间限制只能搞定一个,搞哪个?根据短板原理,当然选第二个啦。 一个有经验的程序员在这里一定会迟疑