qt实现:已知三角形三个点,返回一条边长度,这条边长度和其他边长度差异最大
时间: 2023-05-11 14:02:56 浏览: 206
smartHome.rar
可以使用以下代码实现:
```cpp
#include <QtMath>
double getEdgeLength(QPointF p1, QPointF p2, QPointF p3)
{
double a = qSqrt(qPow(p1.x() - p2.x(), 2) + qPow(p1.y() - p2.y(), 2));
double b = qSqrt(qPow(p2.x() - p3.x(), 2) + qPow(p2.y() - p3.y(), 2));
double c = qSqrt(qPow(p3.x() - p1.x(), 2) + qPow(p3.y() - p1.y(), 2));
double maxDiff = qAbs(qMax(qMax(a, b), c) - qMin(qMin(a, b), c));
if (maxDiff == qAbs(a - b) || maxDiff == qAbs(b - c) || maxDiff == qAbs(c - a)) {
return maxDiff;
} else {
return qAbs(qMin(qMin(a, b), c) - maxDiff);
}
}
```
其中,p1、p2、p3 分别表示三角形的三个顶点,函数返回的是一条边的长度,这条边长度和其他边长度差异最大。
阅读全文