【发布时间】:2013-07-04 16:21:22
【问题描述】:
假设我们有一个由三个点定义的 3d 多边形
- x1, y1, z1
- x2, y2, z2
- x3, y3, z3
然后我们有一条垂直于 Z 轴的射线,位置为 rX, rY。 我们如何确定光线是否击中多边形以及发生碰撞的 X、Y、Z 位置。
任何代码示例都会非常有用。
【问题讨论】:
-
到目前为止你尝试了什么?
-
我的数学不是很好,所以我使用框架中的 API 来发射光线并返回碰撞的位置,但是它非常慢,因为它不允许你控制多边形的子集以检查碰撞。我希望为一个三角形找到一种算法,然后根据我的需要进行调整。
-
@AntonBanchev - 见en.wikipedia.org/wiki/…。您需要添加叉积、点积和子向量计算。
-
@lreeder 这是我一直在寻找的,添加它作为答案,我会接受它。
-
@AntonBanchev - 完成。谢谢!
标签: java algorithm 3d geometry