已知两个向量 a(x1,y1) b(x2,y2)求夹角的算法如下:
double normals(x1,y1,x2,y2)
{
double n = x1*x2+y1*y2;
double m = sqrt(x1^2+y1^2)*sqrt(x2^2+y2^2);
return arccos(n/m);//arccos 这个是反三角函数,应视具体情况而定
}
返回值是一角度 比如说 54 度,74 度
下面给出用 C++写的一个关于两个向量求其夹角的程序,VC6.0 编译通过
代码如下
#include<iostream>
#include<cmath>
using namespace std;
const double PI = 3.141592654;
double normals(double x1,double y1,double x2,double y2);
int main(void)
{
double angle;
double x1,x2,y1,y2;
cout<<"请输入两个向量 1 的值"<<endl;
cin>>x1>>y1;
cout<<"请输入两个向量 2 的值"<<endl;
cin>>x2>>y2;
angle = normals(x1,sqrt(y1),x2,y2);
cout<<"两个向量的夹角是:"<<angle<<endl;
return 0;
}
double normals(double x1,double y1,double x2,double y2)
- 1
- 2
前往页