tester001 发表于 2022-7-31 15:57

[学习记录] C++,从入坑到埋了自己(九)续

* 点和圆的位置关系
* 在圆内、在圆上、在圆外
* 坐标计算公式(x1-x2)^2+(y1-y2)^2 = R^2

#include<iostream>
using namespace std;
/*
* 点和圆的位置关系
* 在圆内、在圆上、在圆外
* 坐标计算公式(x1-x2)^2+(y1-y2)^2 = R^2
*/

//定义点类
class Point
{
public:
        //设置X的坐标值
        void setX(double sx)
        {
                P_X = sx;
        }
        //获取X的坐标值
        double getX()
        {
                return P_X;
        }
        //设置Y的坐标值
        void setY(double sy)
        {
                P_Y = sy;
        }
        //获取Y的坐标值
        double getY()
        {
                return P_Y;
        }
private:
        int P_X;
        int P_Y;
};

//定义圆类
class Circle
{
public:
        //设置半径
        void setR(double sr)
        {
                C_R = sr;
        }
        //获取半径
        double getR()
        {
                return C_R;
        }
        //设置圆心坐标
        void setCenter(Point Center)
        {
                CP = Center;
        }
        //获取圆心坐标
        Point getCenter()
        {
                return CP;
        }
private:
        double C_R;
        Point CP;   //圆心坐标
};

//位置关系函数
void Pos_Relationship(Point &PP, Circle &CP)
{
        double Distance = (PP.getX() - CP.getCenter().getX()) * (PP.getX() - CP.getCenter().getX()) + (PP.getY() - CP.getCenter().getY()) * (PP.getY() - CP.getCenter().getY());
        double rad = CP.getR() * CP.getR();
        if (Distance == rad)
        {
                cout << "这个点在圆上" << endl;
        }
        else if (Distance > rad)
        {
                cout << "这个点在圆外" << endl;
        }
        else
        {
                cout << "这个点在圆内" << endl;
        }
}

//主函数
int main()
{
        //这是一个圆
        Circle C1;
        Point Center;
        Point P1;
        //设置半径
        C1.setR(2);
        //设置圆心
        Center.setX(10);
        Center.setY(0);
        C1.setCenter(Center);
        //设置需要比较的点
        P1.setX(10);
        P1.setY(11);
        //进行比较
        Pos_Relationship(P1, C1);
        system("pause");
        return 0;
}

apples1949 发表于 2022-7-31 16:10

发求助区不太好吧。。

sam喵喵 发表于 2022-7-31 16:34

楼主何不研究下碰撞算法,写成代码发上来就厉害啦&#128077;

zhcj66 发表于 2022-7-31 20:36

感谢分享出来

tester001 发表于 2022-7-31 20:49

sam喵喵 发表于 2022-7-31 16:34
楼主何不研究下碰撞算法,写成代码发上来就厉害啦&#128077;

还在学习起步,后续会发
页: [1]
查看完整版本: [学习记录] C++,从入坑到埋了自己(九)续