直角坐标转极坐标
程序员文章站
2022-04-03 23:17:31
...
1 atan2的用法 :atna2(y,x)求出原点与x轴的夹角(-π,π]
atan : atan(y/x) 取值范围为(-1/2π,1/2π)
atan2比 atan稳定
2 Rad_to_deg = 57.29577951 弧度转角度
3example:
// coordin.h
# ifndef COORDIN_H_
# define COORDIN_H_
struct polar
{
double distance ;
double angle;
};
struct rect
{
double x;
double y;
};
//prototype
polar rect_to_polar (rect xypos);
void show_polar(polar dapos);
#endif
// file1.cpp
# include <iostream>
# include "coordin.h" //structure templates,function prototypes
using namespace std;
int main()
{
rect rplace;
polar pplace;
cout<<"Enter the x and y values:";
while (cin>>rplace.x>>rplace.y) //slick use of cin
{
pplace = rect_to_polar(rplace);
show_polar(pplace);
cout<<"Text two numbers (q to quit ): ";
}
cout<<"Bye!\n";
return 0;
}
// file2.cpp
# include <iostream>
# include <cmath>
# include "coordin.h" //structure template ,function prototypes
//convert rectangular to polar coordinates 直角坐标转换成极坐标
polar rect_to_polar(rect xypos)
{
using namespace std ;
polar answer;
answer.distance =
sqrt(xypos.x * xypos.x + xypos.y * xypos.y);
answer.angle = atan2(xypos.y,xypos.x);
return answer; //return a polar strucutre
}
//show polar coordinates,convert angle to degress
void show_polar(polar dapos)
{
using namespace std;
const double Rad_to_deg = 57.29577951;
cout<<"distance = "<<dapos.distance;
cout<<", angle = "<<dapos.angle * Rad_to_deg;
cout<<" degrees\n";
}
上一篇: QT OPENGL
推荐阅读
-
C#中实现输入汉字获取其拼音(汉字转拼音)的2种方法
-
C#中实现输入汉字获取其拼音(汉字转拼音)的2种方法
-
2021兰州财经大学长青学院转设最新消息:与兰资环合并?能否转成公办大学?
-
2021年江西独立学院转设名单:哪些江西独立学院转为公办大学?
-
甘肃独立学院转公办的大学:西北师范大学知行学院和兰州财经大学长青学院转设最新消息
-
2021年甘肃独立学院转设最新消息:西北师大知行学院转设和兰石化兼并?
-
喵影工厂视频怎么横屏转竖屏?
-
C#利用System.Uri转URL为绝对地址的方法
-
湖南工业大学科技学院合并转设方案:湖南工大科院转设公办吗?
-
青岛农业大学海都学院搬迁青岛-青岛农业大学海都学院改名?(附山东独立学院转设名单)