网格表面三角形的纵横比

6
我需要计算三角形的长宽比。我有三个点,因此我有长度和中点。我尝试使用这个教程(尽管在我看来不是很好),但它非常模糊,没有提供太多信息。能否有人详细说明一下,特别是关于创建矩形部分,或者甚至分享一些C++代码来解决这个问题?
对于James的解决方案:
double s = (a + b + c) / 2.0;
double AR = (a * b * c) / (8.0 * (s - a) * (s - b) * (s - c));

@James:

Cubit报告如下:

Function Name  Average      Std Dev      Minimum     Maximum
-------------  ---------    ---------    ---------   ---------
Aspect Ratio   1.000e+00    7.371e-04    1.000e+00   1.010e+00
--------------------------------------------------------------

您的公式报告如下内容:
Function Name  Average    Minimum    Maximum
-------------  ---------  --------   -------
Aspect Ratio   1.00006    1.000000   1.00972
--------------------------------------------

1
定义 "三角形的长宽比"。是指其最窄的尺寸/直径和最长的尺寸吗? - Kaz
啊哈,最长边的长度,到高度(如果我们把三角形放在那条边上,就是这个意思)。 - Kaz
我会做的是将较短的一侧(作为向量)投影到较长的一侧上。投影向量与原始向量之间的差是一个向量,其长度就是三角形的高度。 - Kaz
@Kaz 这是关于网格表面的,只是为了澄清。 - Drise
寻找最大长宽比的用处在于确定网格质量,以便在计算电磁求解器中使用。长宽比越接近1,网格对应的几何体积就越好、越准确。 - Drise
2个回答

10

以下是我知道的三角形长宽比定义:

一个三角形的长宽比是最长边与最短边的比值(因此等边三角形的长宽比为1)。

一个三角形的长宽比是其外接圆半径与其内切圆半径的二倍比值,因此AR = abc/(8(s-a)(s-b)(s-c))其中a,b,c是三角形三条边的长度,s=(a+b+c)/2。所以,如果a=b=c,则长宽比为1。

这些公式比你提供的公式更易计算。


我得到的最小比率约为0.02,最大值为49。我的平均值是1.1,因此平均值大致正确(大多数三角形都是等边三角形)。但是最小值不应该接近1吗?最大值也不应该那么高吧?如果我只计算最短边和最长边的比率,分别得到约为1.0001和4.5左右。 - Drise
请检查我上面的实现。 - Drise
我感到相当尴尬。谢谢你注意到了... :/ - Drise
我已经修复了我发布用于验证的比较统计数据。非常感谢。 - Drise
没问题。只是提醒一下,通常大于1.5的宽高比被认为是“不好的”。 - James Custer
显示剩余4条评论

0

周半径与两倍内切圆半径之比是正确的定义。还有一个稍微简单的公式: AR = abc/((b+c-a)(c+a-b)(a+b-c))


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接