C++已知平面向量的坐标,求向量的夹角
时间: 2024-02-28 21:54:37 浏览: 129
平面向量的夹角及坐标表示和运算PPT学习教案.pptx
可以使用向量的点积公式求出两个向量的夹角,公式如下:
cosθ = (a · b) / (|a| × |b|)
其中 a · b 为向量 a 和向量 b 的点积,|a| 和 |b| 分别为向量 a 和向量 b 的模长。
夹角 θ 的弧度值可以用反余弦函数求出:
θ = arccos(cosθ)
C++代码实现如下:
```C++
#include <iostream>
#include <cmath>
using namespace std;
struct Vector {
double x, y; // 向量的坐标
};
double dot_product(Vector a, Vector b) {
return a.x * b.x + a.y * b.y; // 向量的点积
}
double vector_length(Vector v) {
return sqrt(v.x * v.x + v.y * v.y); // 向量的模长
}
double vector_angle(Vector a, Vector b) {
double cos_theta = dot_product(a, b) / (vector_length(a) * vector_length(b)); // cosθ
double theta = acos(cos_theta); // θ
return theta;
}
int main() {
Vector a = {1, 2}; // 向量a的坐标
Vector b = {3, 4}; // 向量b的坐标
double angle = vector_angle(a, b); // 求向量a和向量b的夹角
cout << "The angle between vector a and vector b is " << angle << " radians." << endl;
return 0;
}
```
阅读全文