• C++类的应用、查看点和圆的关系、1、在圆上 2、在圆内 3、在圆外


    #include <iostream>
     
    using namespace std;

    //点的类
    class Point{

        //两个私有属性
        private:
            int m_X;
            int m_Y;
        
        //公共方法给点的  x和y两个属性赋值和取值
        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;
            };
    };

    //圆的类
    class Circle{

        //半径属性、和圆心,其中圆心也是一个点、他是点这个类的对象。是这个题的重点
        private: 
            int m_R;   //半径
      
      //重点、 圆类的圆心属性本质上是一个点、点是一个类、这里面使用Point类作为类型。
            Point m_Center;   //圆心
        
        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;
        }
        
    };

    //判断关系
    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){
                cout << "点在圆上" << endl;
            }
            else if (distance > rDistance){
                cout << "点在圆外" << endl;
            }
            else{
                cout << "点在圆内" << endl;
            }
        }

    int main(){
        //创建圆
        
        Circle c;
        //设置半径
        c.setR(10);

        
        //设置点、产生对象center
        Point center;
        //x轴坐标
        center.setX(10);
        //y轴坐标
        center.setY(0);

        //重点:给圆的点、添加圆心属性、这个属性是一个(Point类的对象)这个Point对象有自己坐标是x:10 y:0
        c.setCenter(center);

       //---------------------------------------------------------------------------


        //创建点 
        Point p;
        //x轴坐标
        p.setX(5);
        //y轴坐标
        p.setY(5);

        //判断圆和点的关系
        isInCircle(c,p);
    }
  • 相关阅读:
    【编程基础】const与#define的区别
    【Unity3D】模仿制作“神庙逃亡”吃金币后金币飞出屏幕效果
    【基础数学】素数判定、素数打表
    【NYOJ-187】快速查找素数—— 枚举法、筛选法、打表法
    【基础数学】质数,约数,分解质因数,GCD,LCM
    【NYOJ-35】表达式求值——简单栈练习
    【UVa-679】小球下落——二叉树的编号
    【UVa-442】矩阵链乘——简单栈练习
    【UVa-514】铁轨——栈的学习
    gitignore git提交忽略文件
  • 原文地址:https://www.cnblogs.com/yuanjia8888/p/14764362.html
Copyright © 2020-2023  润新知