【问题标题】:Calculating a point inside a polygon计算多边形内的点
【发布时间】: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


【解决方案1】:

有关矢量与 3D 三角形的交集,请参阅http://en.wikipedia.org/wiki/M%C3%B6ller%E2%80%93Trumbore_intersection_algorithm。您需要为伪代码添加自己的叉积 (CROSS)、点积 (DOT) 和子向量 (SUB) 代码。

【讨论】:

    猜你喜欢
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    相关资源
    最近更新 更多