用C++写一个计算向量夹角的代码
时间: 2023-02-02 09:12:03 浏览: 261
C语言中计算向量夹角的代码如下:
```
#include <math.h>
#include <stdio.h>
double dot_product(double x1, double y1, double x2, double y2) {
return x1 * x2 + y1 * y2;
}
double magnitude(double x, double y) {
return sqrt(x * x + y * y);
}
double angle(double x1, double y1, double x2, double y2) {
double dp = dot_product(x1, y1, x2, y2);
double mag1 = magnitude(x1, y1);
double mag2 = magnitude(x2, y2);
double cos_theta = dp / (mag1 * mag2);
return acos(cos_theta);
}
int main() {
double x1, y1, x2, y2;
printf("Enter x1, y1: ");
scanf("%lf %lf", &x1, &y1);
printf("Enter x2, y2: ");
scanf("%lf %lf", &x2, &y2);
double theta = angle(x1, y1, x2, y2);
printf("The angle between the vectors is %lf radians\n", theta);
return 0;
}
```
上面代码实现了三个函数:dot_product,magnitude和angle。前两个函数分别计算两个向量的点积和向量的模。angle函数计算两个向量间的夹角,使用余弦定理:cos(θ) = A·B / |A| |B|。