calculate_angle() c++
时间: 2023-07-29 19:12:17 浏览: 261
一个用C++写的角度类
3星 · 编辑精心推荐
以下是C++版本的`calculate_angle()`函数,可以根据三个点的坐标计算它们之间的角度:
```cpp
#include <cmath>
double calculate_angle(double* A, double* B, double* C) {
double AB[2] = { B[0] - A[0], B[1] - A[1] };
double BC[2] = { C[0] - B[0], C[1] - B[1] };
double dot_product = AB[0] * BC[0] + AB[1] * BC[1];
double magnitude_AB = sqrt(AB[0] * AB[0] + AB[1] * AB[1]);
double magnitude_BC = sqrt(BC[0] * BC[0] + BC[1] * BC[1]);
double cos_angle = dot_product / (magnitude_AB * magnitude_BC);
double angle = acos(cos_angle);
// 将弧度转换为角度
angle = angle * 180.0 / M_PI;
return angle;
}
```
其中,A、B、C分别是三个点的二维坐标。函数首先计算向量AB和向量BC的点积,然后计算它们的长度,最后根据余弦定理计算出它们之间的夹角。由于acos函数返回的是弧度值,因此需要将其转换为角度。
阅读全文