求平面内两个向量夹角
02-17
已知两个向量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
#include
using namespace std;
const double PI = 3.141592654;
doublenormals(double x1,double y1,double x2,double y2);
int main(void)
{
double angle;
double x1,x2,y1,y2;
cout
cin>>x1>>y1;
cout
cin>>x2>>y2;
angle = normals(x1,sqrt(y1),x2,y2);
cout
return 0;
}
doublenormals(double x1,double y1,double x2,double y2)
{
}
double n = x1*x2+y1*y2; double m = sqrt(x1*x1+y1*y1)*sqrt(x2*x2+y2*y2); if(m == 0) { cout
运行结果如下图: