123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- //案例练习2:点和圆的关系
- //设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系
- //点和圆的关系判断
- //点到圆心的距离 == 半径 点在圆上
- //点到愿心的距离 > 半径 点在圆外
- //点到圆心的距离 < 半径 点在圆内
- //点到圆心的距离???
- #include <iostream>
- #include "point.h"
- #include "circle.h"
- //设计一个点类
- //class Point
- //{
- //public:
- // //设置x
- // void setX(int x)
- // {
- // m_X = x;
- // }
- // //获取x
- // int getX()
- // {
- // return m_X;
- // }
- // //设置y
- // void setY(int y)
- // {
- // m_Y = y;
- // }
- // //获取y
- // int getY()
- // {
- // return m_Y;
- // }
- //
- //private:
- // int m_X;
- // int m_Y;
- //
- //};
- //设计一个圆类
- //class Circle
- //{
- //public:
- // //设置半径
- // void setR(int r)
- // {
- // m_R = r;
- // }
- // //获取半径
- // int getR()
- // {
- // return m_R;
- // }
- // //设置圆心
- // void setCenter(Point center)
- // {
- // m_Center = center;
- // }
- // //获取圆心
- // Point getCenter()
- // {
- // return m_Center;
- // }
- //private:
- // int m_R; //半径
- //
- //
- // //在类中可以让另一个类作为本类中的成员
- // Point m_Center; //圆心
- //
- //};
- //判断点和圆的关系
- void isInCircle(Circle &c,Point &p)
- {
- //计算两点之间距离 平方
- int distance =
- (c.getCenter().getX() - p.getX()) * (c.getCenter().getX() - p.getX()) +
- (c.getCenter().getY() - p.getY()) * (c.getCenter().getY() - p.getY());
- //计算半径的平方
- int rDistance = c.getR() * c.getR();
- //判断关系
- if (distance == rDistance)
- {
- std::cout << "点在圆上" << std::endl;
- }
- else if (distance > rDistance)
- {
- std::cout << "点在圆外" << std::endl;
- }
- else
- {
- std::cout << "点在圆内" << std::endl;
- }
- }
- int main()
- {
- //创建圆
- Circle c;
- c.setR(10);
- Point center;
- center.setX(10);
- center.setY(0);
- c.setCenter(center);
- //创建点
- Point p;
- p.setX(10);
- p.setY(11);
- //判断关系
- isInCircle(c, p);
- system("pause");
- return 0;
- }
|