C++判断一个点是否在圆内的方法

本文为大家分享了C++如何判断一个点是否在圆内的方法,供大家参考,具体内容如下

圆的头文件

#ifndef __CRICLE_H__

#define __CRICLE_H__

#include "point.h"

class Circle

{

public:

//创建圆

void init(int r, int x, int y);

//判断点是否在 当前圆 内

bool inCircle(Point &p);

private:

Point _c;

int _r;

};

#endif// __CRICLE_H__

点的头文件

#ifndef __POINT_H__

#define __POINT_H__

class Point

{

public:

//创建点

void init(int x, int y);

//测一个点和当前点的距离的平方

int distance(Point &p);

private:

int _x;

int _y;

};

#endif//__POINT_H__

圆的源文件

#include "circle.h"

void Circle::init(int r, int x, int y)

{

_r = r;

_c.init(x, y);

}

bool Circle::inCircle(Point &p)

{

//计算点p和 当前圆圆心c 的距离

int dis = p.distance(_c);

//和半径比较

if (dis <= _r*_r)

return true;

else

return false;

}

点的源文件

#include "point.h"

void Point::init(int x, int y)

{

_x = x;

_y = y;

}

int Point::distance(Point &p)

{

int dis = (_x-p._x)*(_x-p._x)

+ (_y-p._y)*(_y-p._y);

return dis;

}

main文件

#include <iostream>

#include "circle.h"

#include "point.h"

using namespace std;

int main()

{

//一个点

Point p;

p.init(1,2);

Circle c;

c.init(3, 0, 0);

if (c.inCircle(p))

cout << "在圆内" << endl;

else

cout << "在圆外" << endl;

return 0;

}

以上是 C++判断一个点是否在圆内的方法 的全部内容, 来源链接: utcz.com/z/361291.html

回到顶部