gpt4 book ai didi

mesh - 如何获得给定网格的主曲率?

转载 作者:行者123 更新时间:2023-12-04 05:16:12 34 4
gpt4 key购买 nike

我有一个从给定网格(形状)获取主曲率的问题。

  1. 我正在尝试使用 Matlab 文件交换中的“patchcurvature”方法。然而,该方法总是给出正曲率。我认为可能是该方法将网格视为单独的补丁,并计算每个补丁的主曲率。[~,~,Dir1,Dir2,PrincipalCurvature1,PrincipalCurvature1]=patchcurvature(meshFaceVertices);

  2. 我还尝试使用另一种来自 Matlab 文件交换的方法,称为“surfature”;但是,它计算由表面上的三个二维点阵列定义的“表面”的主曲率。我不确定如何从由顶点和面定义的现有网格创建带有 2D 点阵列的“表面”。有一些方法可以将曲面转换为网格,但不能反过来……

如有任何想法,我们将不胜感激。非常感谢,新年快乐!!!

最好的,A.

最佳答案

Principal curvatures ,如果我没有遗漏不同的定义,则在可微曲面上定义,但网格(通常是三角形的集合)不可微。我可以想象一些可能的方法来近似主曲率。

假设你的网格是从可微曲面采样得到的,你需要做的是polynomial regression ,更具体地说 quadratic interpolation在您尝试计算曲率的点周围的附近顶点上。

首先,您需要确定您感兴趣的点的法向量。法向量可以通过网格三角形的法线方向(AB×AC,三角形两条边的叉积),与其他一些法向量进行插值得到。

找到法向量后,您可以变换网格坐标,使点位于原点,法向量指向 z 轴。 (参数为沿z轴旋转θ角)

那么你的下一个目标就是找到一个表面

     1                   1z = --- alpha * x^2  +  --- beta * y^2     2                   2

最接近您的点集,具有三个参数 alpha、beta 和 theta。

那么 alpha 和 beta 就是主成分。

我不确定,但已经有一个 matlab 函数可以为您执行此回归。

关于mesh - 如何获得给定网格的主曲率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14234127/

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