定义一个描述二维坐标系中点对象的类Point ,它具有下列成员函数:
(1)doubler();//计算极坐标的极半径(2)doubletheta();//计算极坐标的极角(3)doubledistance(constPoint&P);//...
(1)double r();//计算极坐标的极半径
(2)double theta();//计算极坐标的极角
(3) double distance (const Point & P);//计算与点P的距离
(4) Point relative (const Point & P);//计算相对于P的相对坐标
(5) bool is_above_left(const Point & P);//判断是否在点P 的左上方
帮忙写下,顺便告诉我后三个是什么意思,怎么涉及到其他点了? 展开
(2)double theta();//计算极坐标的极角
(3) double distance (const Point & P);//计算与点P的距离
(4) Point relative (const Point & P);//计算相对于P的相对坐标
(5) bool is_above_left(const Point & P);//判断是否在点P 的左上方
帮忙写下,顺便告诉我后三个是什么意思,怎么涉及到其他点了? 展开
2个回答
展开全部
class Point {
public:
double xval, yval;
Point(double x = 0.0, double y = 0.0) {
xval = x; yval = y;
}
double x() { return xval; }
double y() { return yval; }
double distance (const Point & P){
double xd = xval - P.xval;
double yd = yval - P.yval;
return sqrt(xd*xd + yd*yd);
}
Point relative (const Point & P){
Point r;
r.xval = xval - P.xval;
r.yval = yval - P.yval;
return r;
}
bool is_above_left(const Point & P){
double xd = xval - P.xval;
double yd = yval - P.yval;
if (xd < 0.0 && yd > 0.0) {return 1==1 ;} else { return 1== 0;};
}
double r(){
return sqrt(xval*xval + yval*yval);
}
double theta(){
double rr;
rr = r();
return asin(yval / rr);
}
void print( ){
printf("%f %f\n",xval,yval);
}
};
-----------------------------------
后三个
(3) 计算本点与另一个点 Point P 的距离
本点 的坐标 [xval,yval]. P的坐标 [P.xval, P.yval]
(4) 计算相对于P的相对坐标
以P为坐标原点,本点 的坐标 应当变成多少
送返新的 Point r;
新坐标 r.xval = xval - P.xval 和
r.yval = yval - P.yval
return r;
(5)判断是否在点P 的左上方,即在第2象限。
xval < P.xval 并且 yval > P.yval 在第2象限
送返 真, 否则 送返 假
public:
double xval, yval;
Point(double x = 0.0, double y = 0.0) {
xval = x; yval = y;
}
double x() { return xval; }
double y() { return yval; }
double distance (const Point & P){
double xd = xval - P.xval;
double yd = yval - P.yval;
return sqrt(xd*xd + yd*yd);
}
Point relative (const Point & P){
Point r;
r.xval = xval - P.xval;
r.yval = yval - P.yval;
return r;
}
bool is_above_left(const Point & P){
double xd = xval - P.xval;
double yd = yval - P.yval;
if (xd < 0.0 && yd > 0.0) {return 1==1 ;} else { return 1== 0;};
}
double r(){
return sqrt(xval*xval + yval*yval);
}
double theta(){
double rr;
rr = r();
return asin(yval / rr);
}
void print( ){
printf("%f %f\n",xval,yval);
}
};
-----------------------------------
后三个
(3) 计算本点与另一个点 Point P 的距离
本点 的坐标 [xval,yval]. P的坐标 [P.xval, P.yval]
(4) 计算相对于P的相对坐标
以P为坐标原点,本点 的坐标 应当变成多少
送返新的 Point r;
新坐标 r.xval = xval - P.xval 和
r.yval = yval - P.yval
return r;
(5)判断是否在点P 的左上方,即在第2象限。
xval < P.xval 并且 yval > P.yval 在第2象限
送返 真, 否则 送返 假
展开全部
#include
#include
class
point
{
private:
double
m_x;
double
m_y;
public:
point()
{
m_x
=
0.0;
m_y
=
0.0;
}
point(double
x,
double
y)
{
m_x
=
x;
m_y
=
y;
}
~point()
{
}
double
r()
{
return
sqrt(m_x*m_x
+
m_y*m_y);
}
订袱斥惶俪耗筹同船括
double
theta()
{
return
atan2(m_y,
m_x);
}
double
distance(const
point
&p)
{
double
dx
=
p.get_x()
-
m_x;
double
dy
=
p.get_y()
-
m_y;
return
(dx*dx
+
dy*dy);
}
point
&relative(const
point
&p)
{
double
x
=
m_x
-
p.get_x();
double
y
=
m_y
-
p.get_y();
point
point(x,
y);
return
point;
}
int
is_above_left(const
point
&p)
{
if(m_x
<
p.get_x()
&&
m_y
>
p.get_y())
{
return
1;
}
return
0;
}
void
set_x(double
x)
{
m_x
=
x;
}
void
set_y(double
y)
{
m_y
=
y;
}
double
get_x()
const
{
return
m_x;
}
double
get_y()
const
{
return
m_y;
}
};
#include
class
point
{
private:
double
m_x;
double
m_y;
public:
point()
{
m_x
=
0.0;
m_y
=
0.0;
}
point(double
x,
double
y)
{
m_x
=
x;
m_y
=
y;
}
~point()
{
}
double
r()
{
return
sqrt(m_x*m_x
+
m_y*m_y);
}
订袱斥惶俪耗筹同船括
double
theta()
{
return
atan2(m_y,
m_x);
}
double
distance(const
point
&p)
{
double
dx
=
p.get_x()
-
m_x;
double
dy
=
p.get_y()
-
m_y;
return
(dx*dx
+
dy*dy);
}
point
&relative(const
point
&p)
{
double
x
=
m_x
-
p.get_x();
double
y
=
m_y
-
p.get_y();
point
point(x,
y);
return
point;
}
int
is_above_left(const
point
&p)
{
if(m_x
<
p.get_x()
&&
m_y
>
p.get_y())
{
return
1;
}
return
0;
}
void
set_x(double
x)
{
m_x
=
x;
}
void
set_y(double
y)
{
m_y
=
y;
}
double
get_x()
const
{
return
m_x;
}
double
get_y()
const
{
return
m_y;
}
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询