【问题标题】:How to determine the first triangle (out of a set of triangles) passed through by a 3-D ray?如何确定 3-D 射线穿过的第一个三角形(一组三角形中)?
【发布时间】:2021-11-22 17:17:45
【问题描述】:

我正在尝试在 Python 中解决以下问题。当我使用有限元方法时,问题来自图像处理问题。

在我的问题中,我有一组三角形和一条射线。每个三角形由三个 3-D 点组成,射线是 3-D 点和 3-D 矢量的形式。如何确定光线穿过的第一个三角形?现在我什至没有这个算法。任何意见将不胜感激。

【问题讨论】:

  • 这不是一个数学问题而不是一个编码问题吗?基本上,您需要做的就是计算矢量与三角形跨越的二维平面相交的位置。建议你去数学论坛问问。一旦你知道该做什么,实施应该不会太难。
  • 不确定你的输入和输出是什么,但这个问题听起来像是光线追踪/光线投射的基本概念,所以也许你想阅读更多关于光线跟踪/投射的信息,你甚至可以制作使用现有的图形软件/硬件为您完成。

标签: python algorithm image-processing geometry


【解决方案1】:

我要做的第一件事是平移整个数据集,减去 3D 射线原点。然后旋转数据集,使射线的 3D 矢量与 X 轴对齐。见How to find the orthonormal transformation that will rotate a vector to the x axis?

现在问题已转换为过滤与 X 轴交叉且 X 坐标为非负的三角形,并在其中找到交叉点具有最小 X 坐标的三角形。所以

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    相关资源
    最近更新 更多