C++中求度数

来源:百度知道 编辑:UC知道 时间:2024/07/04 05:35:40
已知一个点的坐标和原点(0,0)的坐标...编程求出这个点和原点连线与X轴的夹角.(0-360)...貌似有个数学函数库....

#include <iostream>
#include <cmath>
#define PI 3.141592653589793
using namespace std;
main()
{
double x,y,z;
cout<<"请输入一个点的坐标 x y:";
cin>>x>>y;
z = atan(y/x)*180/PI;
if(x<0 && y>0)z+=90;
if(x<0 && y<=0)z+=180;
if(x>=0 && y<0)z+=360;
if(x!=0||y!=0) printf("夹角度数为:%.2f度\n",z);else
cout<<"不能输入原点..."<<endl;
}

恩,是由,atan2(y,x)

返回 (-pi,pi)的一个角,

表示过原点和(x,y)的旋转角

如果要转化成[0,2pi)

可以用

const double pi = acos(-1.0);

void adjust(double x)
{
x = fmod(x,2 * pi);
if (x < 0) x += 2 * pi;
}