qt qgraphicsview 一个角的三点坐标,计算角内到两边距离不定相等的一点坐标
时间: 2024-03-05 18:52:53 浏览: 129
假设需要计算三角形的顶点为p1,另外两个点为p2和p3,且p2、p3两边到角内点的距离不相等。可以按照以下步骤计算:
1. 计算三角形两条边的向量。可以使用QLineF类的构造函数计算。
2. 计算两条边的长度,以及角内点到p2边的距离d1和到p3边的距离d2。
3. 计算d1和d2的比例k,即k=d1/(d1+d2)。
4. 计算角内点到p2边的向量v1,v1 = edge1 * k。
5. 计算角内点到p3边的向量v2,v2 = edge2 * (1-k)。
6. 计算角内点的坐标p,p = p2 + v1 + v2。
下面是一个示例代码:
```c++
QPointF p1, p2, p3; // 三个点的坐标
QLineF edge1(p2, p1), edge2(p2, p3); // 计算两条边的向量
double len1 = edge1.length(), len2 = edge2.length(); // 计算两条边的长度
double d1 = 50, d2 = 100; // 假设d1和d2分别为50和100
double k = d1 / (d1 + d2); // 计算比例k
QPointF v1 = edge1.unitVector().pointAt(d1/len1) * k; // 计算角内点到p2边的向量
QPointF v2 = edge2.unitVector().pointAt(d2/len2) * (1-k); // 计算角内点到p3边的向量
QPointF p = p2 + v1 + v2; // 计算角内点的坐标
```
其中,edge1.unitVector().pointAt(d1/len1)表示edge1的单位向量,并将其乘以d1/len1得到长度为d1的向量。
阅读全文