#include<iostream> using namespace std;
class Point { private: ?? ?int m_x; ?? ?int m_y;
public: ?? ?void setx(int x) ?? ?{ ?? ??? ?m_x = x;
?? ?} ?? ?void sety(int y) ?? ?{ ?? ??? ?m_y = y;
?? ?} ?? ?int Getx() ?? ?{ ?? ??? ?return m_x;
?? ?} ?? ?int Gety() ?? ?{
?? ??? ?return m_y;
?? ?} };
class Circle { private: ?? ?int ?m_r; ?? ?Point m_center; public: ?? ?void banjing(int r) ?? ?{ ?? ??? ?m_r = r; ?? ??? ? ?? ? ?? ?} ?? ?int getbanjing() ?? ?{ ?? ?return m_r; ?? ?} ?? ?void yuanxin(Point center)//设置圆心 ?? ?{ ?? ??? ?m_center = center; ?? ? ?? ? ?? ?} ?? ?Point getyuanxin() ?? ?{ ?? ??? ?return m_center; ?? ?}
?? ? };
int compare(Circle &c, Point &p) ?//对比半径和距离平方和 { ?? ?int d;? ?? ?d = (c.getyuanxin().Getx()-p.Getx())*(c.getyuanxin().Getx() - p.Getx()) + ?? ??? ?(c.getyuanxin().Gety() - p.Gety())*(c.getyuanxin().Gety() - p.Gety()); ?? ?int R; ?? ?R = (c.getbanjing())*(c.getbanjing()); ?? ?if (d == R) ?? ?{ ?? ??? ?cout << "点在圆上" << endl; ?? ?} ?? ?if (d <= R) ?? ?{ ?? ??? ?cout << "点在圆内" << endl; ?? ?} ?? ?if (d >= R) ?? ?{ ?? ??? ?cout << "点在圆外" << endl; ?? ?} ?? ?return 0; }
int main()? { ?? ?Circle c; ?? ?c.banjing(10); ?? ?Point center; ?? ?center.setx(0); ?? ?center.sety(0); ?? ?c.yuanxin(center); ?? ?Point p; ?? ?p.setx(10); ?? ?p.sety(10);
?? ?compare(c,p); ?? ?system("pause"); }
|