gpt4 book ai didi

展平 3D 三角形带的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:41:23 27 4
gpt4 key购买 nike

我有一个 3D 三角形带(见插图)。三角形不在一个平面内。

enter image description here

我想展平三角形带,使所有三角形都位于第一个三角形的平面内。

计划是围绕与第一个三角形的连接边旋转第二个三角形,使其与第一个三角形在同一平面内。然后我对其他三角形继续此方法,直到所有三角形都在平面内。

  1. 我正在寻找一种快速算法来做到这一点。
  2. 是否有其他方法可以将三角带压平?

最佳答案

如果您只旋转每个三角形,则必须旋转所有下一个三角形以保持几何形状不变 - 这种缓慢的方式具有二次复杂度。

除此之外,您还可以存储三角形顶点的相互位置并将它们恢复到平面中。

可能的方式(我假设顶点编号是顺序的):

对于第 N 个点 C=P[N] 计算并存储 Len - 它投影到直线 AB 的长度 (A=P[N -2], B=P[N-1])

   Len = VectorLength(VectorProduct(UnitAB, AC))

enter image description here

以及该投影在那条线上的位置(作为参数 t)。

 t = DotProduct(AC, AB) / DotProduct(AB, AB)

要在平面上构建C'=P'[N],计算

C' = A' + t * A'B'  + Len * VectorProduct(UnitPlaneNormal, UnitA'B')

关于展平 3D 三角形带的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com