//完成极坐标到直角坐标的转换
//polar中的数据radius和angle是私有的,因此必须提供函数直接访问
#include<iostream.h>
#include<math.h> //math.h包括sin,cos等
class Polar //极坐标中的点
{
private:
double radius;//极径
double angle;//极角
public:
Polar()
{
radius=0.0;
angle=0.0;
}
Polar(double r,double a)
{
radius=r;
angle=a;
}
void display()
{
cout << "(" << radius << ", " << angle << ")";
}
double getr()
{
return radius;
}
double geta()
{
return angle;
}
};
class Rec
{
private:
double xco; //x坐标
double yco; //y坐标
public:
Rec()
{
xco=0.0;
yco=0.0;
}
Rec(Polar p)
{
float r=(float)p.getr();//从polar对象中获得极径和极角
float a=(float)p.geta();
xco=r*cos(a);//变成x坐标和y坐标
yco=r*sin(a);
}
void display()
{
cout << "(" << xco << ", " << yco << ")";
}
};
void main()
{
Rec rec;
Polar pol(10.0,0.785398);
rec=pol;//使用转换函数(或rec=Rec(pol))
cout << "/nPol=";
pol.display ();//显示原始极坐标
cout << "/nRec=";
rec.display ();//显示等价的直角坐标
}
//polar中的数据radius和angle是私有的,因此必须提供函数直接访问
#include<iostream.h>
#include<math.h> //math.h包括sin,cos等
class Polar //极坐标中的点
{
private:
double radius;//极径
double angle;//极角
public:
Polar()
{
radius=0.0;
angle=0.0;
}
Polar(double r,double a)
{
radius=r;
angle=a;
}
void display()
{
cout << "(" << radius << ", " << angle << ")";
}
double getr()
{
return radius;
}
double geta()
{
return angle;
}
};
class Rec
{
private:
double xco; //x坐标
double yco; //y坐标
public:
Rec()
{
xco=0.0;
yco=0.0;
}
Rec(Polar p)
{
float r=(float)p.getr();//从polar对象中获得极径和极角
float a=(float)p.geta();
xco=r*cos(a);//变成x坐标和y坐标
yco=r*sin(a);
}
void display()
{
cout << "(" << xco << ", " << yco << ")";
}
};
void main()
{
Rec rec;
Polar pol(10.0,0.785398);
rec=pol;//使用转换函数(或rec=Rec(pol))
cout << "/nPol=";
pol.display ();//显示原始极坐标
cout << "/nRec=";
rec.display ();//显示等价的直角坐标
}