变形三角形中某点的旋转角度

计算科学 线性代数 有限元 几何学
2021-12-09 00:19:16

我有一个 2D 三角形,它随着每个顶点移动一些小的()位移矢量而变形。三角形中任何点的位移都是从顶点处的位移线性插值的。sin(x)tan(x)x

如何找到三角形中任意点的旋转角度?

我希望旋转角度作为顶点位移的线性函数,我觉得它应该是(同样,只有小位移)。我尝试了以下方法,但陷入了出现的巨大表达式(数百或数千个术语)中,我不确定它是否是正确的方法。有没有更简单的方法或者这是否以某种方式简化?

  • 1)利用插值函数的位移和导数求变形梯度F
  • 2) 求极分解,其中是正交的,是对称的F=QSQS
  • 3) 把当作一个旋转矩阵,从中提取旋转角度Q

我还尝试了更直观的几何方法,例如平均所有 3 个顶点关于该点的旋转角度,但它们似乎没有给出正确的外观结果。

3个回答

给定一个小的(无穷小)二维位移场,无穷小的逆时针旋转角就是u=(ux,uy)θ

θ=12(uyxuxy)

一般而言,对于维位移场可以证明,无穷小的旋转由雅可比的斜对称部分描述: 这是与众所周知的事实有关,即(斜对称平方实矩阵)形成与特殊正交群(行列式为 1 的实正交矩阵)相关的李代数。nuRn

J=(u1,,un)(x1,,xn)
Ω=12(JJT)
so(n)SO(n)

正如在另一个答案中已经指出的那样,可以很容易地从形状函数的导数和节点位移值中计算出来。uixj

编辑

对于线性形状函数,雅可比是常数。这意味着,其中分别是位移和坐标的差,分别在元素内部的两个不同点处求值。如果选择两个节点,则是节点位移的差,而是表示元素对应边的向量。因此,对于三角形和四面体,有可能(作为练习留下的显式公式)直接从节点坐标和节点位移轻松计算请求的数量。Δu=JΔxΔuΔxΔuΔx

您的方法似乎是正确的,但是如果您以合理的方式进行操作,则不应陷入“成百上千”的困境。万一你被它的机制所吸引,这里是你的过程的关键部分,更详细地列出了一些细节。我假设您可以计算变形梯度,因为您没有提供有关如何插值的任何详细信息。

1) 计算变形梯度F

2) 计算极分解:F=RU

2a) 求的特征值和特征向量。该张量具有与相同,其特征值的特征值您似乎正在使用 2x2 变形梯度,所以这应该很容易。C=FTF{v1,v2}U{λ12,λ22}U

2b)使用谱定理 ( https://en.wikipedia.org/wiki/Spectral_theoremU

U=iλivivi

3) 求解同样,2x2 矩阵使这非常容易。R=U1F

4) 利润(又名:后处理随你喜欢)。R

正如@nicoguaro 在上面的评论中指出的那样,如果你有线性插值函数,将在三角形内保持不变,所以如果你使用高阶插值,你只需要多次计算这个旋转角度。F

一个更简单的公式是

θ=12×u
在哪里u是位移。的衍生物u将应变-位移矩阵(此处为 p8)的元素乘以u.

编辑说明:

u是一个 3D 字段,但由于问题是 2D,因此一个分量始终为零。

×表示卷曲

θ是一个向量,其大小是旋转角度。在 2D 中,它必须平行于平面法线,因此只有该分量是角度,其他两个为零。