给定三角形的三个边,我如何定义它是否是退化三角形?

Sal*_*rav 3 c syntax

我们知道退化三角形是一个三角形,它的所有三个点都在一条直线上,因此它的所有边都在彼此的顶部.所以有一个三角形的三边,现在我必须确定它是退化三角形还是生成三角形.

如何使用C语言解决这个问题?

M O*_*ehm 21

当有三个边的长度,abc,三角形是简并的,当a+ b= c.(其他三角形有a+ b> c,三角形带a+ b< c是不可能的.)

  • @nikoss:有什么难以理解的?或者你刚刚停下来侮辱我? (4认同)
  • 是的 - 很简单的答案. (3认同)

aje*_*eet 13

如果a,b和c是三角形三边的长度,那么

a + b > c

a + c > b

b + c > a
Run Code Online (Sandbox Code Playgroud)

如果这些不等式中的任何一个不正确,那么我们得到一个退化三角形.

简单来说,首先按升序对a,b,c进行排序,然后检查以下条件

a + b <= c
Run Code Online (Sandbox Code Playgroud)

如果这个条件满足则三角形是退化三角形.

  • &lt;= 是重点 (2认同)

Rob*_*ick 5

你需要弄清楚A,B和C点是否在同一条线上.如果AB和AC具有相同的斜率,则它们是共线的(在同一条线上).

你现在已经把问题简化为计算斜率,这在C中应该很容易.


Tam*_*ola 5

给定三角形的边长 a, bc您可以通过海伦公式计算三角形的面积。如果面积为 0(或小于给定的阈值,舍入误差的 b/c),则三角形是退化的。

给定三角形的顶点 A, B, C,您可以通过取其叉积的大小来计算由(A-B)和跨越的平行四边形的面积。如果这个面积为零,你的三角形就是退化的。您也可以等效地计算顶点的边长,然后返回使用 Heron 公式。(B-C)