/*
建立一个关于平面点坐标的类。
*/
#include <iostream>
#include <cmath>
using namespace std;
class Cpoint
{
private:
int flag; //flag=1时,x为极角,y为极径
float m_x;
float m_y;
public:
Cpoint() //构造函数
{
cout<<"初始化对象"<<endl;
flag=0;
m_x=0;
m_y=0;
}
void setxycoord(float x1,float y1) //设置直角坐标
{
m_x = x1;
m_y = y1;
flag = 0;
}
void setparcoord(float x1,float y1) //设置极坐标
{
m_x = x1;
m_y = y1;
flag = 1;
}
float getxcoord() //获得直角坐标中的X坐标
{
if(flag) //***************极角极径为已知的
{
m_x = m_y * sin(m_x);//m_y为极径,m_x为极角
flag = 0;
}
return m_x;
}
float getycoord() //***获得直角坐标中的Y坐标
{
if(flag)
{
m_y = m_y * cos(m_x);
flag = 0;
}
return m_y;
}
float getpacoord() //获得极坐标中的极角
{
if(!flag) //***************直角坐标为已知的
{
if(m_y != 0)
m_x = atan(m_x / m_y);
else
m_x = 0;
flag = 1;
}
return m_x;
}
float getprcoord() //获得极坐标中的极径
{
if(!flag)
{
m_y = sqrt(m_x * m_x + m_y * m_y); //x^2 + y^2 = r^2 , y=rcos(角), x=rsin(角)
}
return m_y;
}
void print()
{
cout<<flag<<",x = "<<m_x<<", y = "<<m_y<<endl;
}
}
int main()
{
float x1;
Cpoint c1;
c1.print();
c1.setparcoord((float)3.1415926/2,2);
x1 = c1.getpacoord();
cout<<"anlog="<<x1<<endl;
c1.print();
return 0;
}
C++建立一个关于平面点坐标的类
最新推荐文章于 2023-11-03 23:52:38 发布