矩形四个点如何计算矩形的角度 c++代码
时间: 2024-03-03 15:48:43 浏览: 117
以下是使用C++代码实现计算矩形角度的示例:
```
#include <iostream>
#include <math.h>
using namespace std;
// 定义点的结构体
struct Point {
double x;
double y;
};
// 计算矩形角度的函数
double calcAngle(Point p1, Point p2) {
double angle = atan2(p2.y - p1.y, p2.x - p1.x) * 180 / M_PI;
return angle;
}
int main() {
// 定义矩形四个点的坐标
Point p1 = {1, 1};
Point p2 = {3, 1};
Point p3 = {3, 4};
Point p4 = {1, 4};
// 计算矩形的中心点坐标
double centerX = (p1.x + p2.x + p3.x + p4.x) / 4;
double centerY = (p1.y + p2.y + p3.y + p4.y) / 4;
Point center = {centerX, centerY};
// 计算矩形的长边
double len1 = sqrt(pow(p2.x - p1.x, 2) + pow(p2.y - p1.y, 2));
double len2 = sqrt(pow(p3.x - p2.x, 2) + pow(p3.y - p2.y, 2));
double len3 = sqrt(pow(p4.x - p3.x, 2) + pow(p4.y - p3.y, 2));
double len4 = sqrt(pow(p1.x - p4.x, 2) + pow(p1.y - p4.y, 2));
double maxLen = max(max(len1, len2), max(len3, len4));
// 找出长边所对应的两个点
Point pLong1, pLong2;
if (maxLen == len1) {
pLong1 = p1;
pLong2 = p2;
} else if (maxLen == len2) {
pLong1 = p2;
pLong2 = p3;
} else if (maxLen == len3) {
pLong1 = p3;
pLong2 = p4;
} else if (maxLen == len4) {
pLong1 = p4;
pLong2 = p1;
}
// 计算矩形的角度
double angle = calcAngle(pLong1, pLong2);
cout << "矩形的角度为:" << angle << endl;
return 0;
}
```
在代码中,我们首先定义了一个 `Point` 结构体,用来表示点的坐标。然后,我们使用四个 `Point` 类型的变量来表示矩形的四个点,计算出矩形的中心点坐标和长边长度,找出长边对应的两个点,最后调用 `calcAngle()` 函数计算矩形的角度。
阅读全文