设计一个圆类(circle) 和一个点类,求解点和圆的关系

三种关系:

点在圆外  点在圆上   点在圆内
点和圆心之间的距离与半径进行对比即可得到结果

获取点(X2,Y2)与圆心(X1,Y1)之间的距离

D=根号下(X2-X1)平方+(Y2-Y1)平方

D和圆的半径m_r进行对比

(简化:D的平方与m_r的平方进行对比)

圆类:圆心   半径

点类:X Y 坐标

下面进行代码的演示:

 

 

 

 

 

#include<iostream>

using namespace std;

#include <string>

//点和圆的关系案例

//1.圆类

class point

{

public:

    void setX(int x)//设置x坐标

    {

        m_x = x;

    }

    int getX()//获取x坐标

    {

        return m_x;

    }

    void setY(int y)//设置y坐标

    {

        m_y = y;

    }

    int getY()//获取y坐标

    {

        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(point &p,circle &c)//引用的方式进行传递

{

    //计算点到圆心之间的距离的平方

    int distance = (c.getcenter().getX() - p.getX()) * (c.getcenter().getX()) + (c.getcenter().getY() - p.getY()) * (c.getcenter().getY() - p.getY());

    //计算半径的平方

    int r2 = c.getR() * c.getR();

    //判断关系

    if (distance == r2)

    {

        cout << "点在圆上" << endl;

    }

    else if (distance < r2)

    {

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

    }

    else

    {

        cout << "点在圆外" << 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(10);

    isincircle(p, c);

    system("pause");

    return 0;

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,下面是Python设计一个圆类circle的代码示例: ```python class Circle: def __init__(self, radius): self.radius = radius def get_area(self): return 3.14 * self.radius ** 2 def get_perimeter(self): return 2 * 3.14 * self.radius def get_diameter(self): return 2 * self.radius ``` 以上代码定义了一个名为Circle,它有一个构造函数__init__,用于初始化的半径。此外,还定义了三个方法get_area、get_perimeter和get_diameter,分别用于计算的面积、周长和直径。这些方法的实现都是基于的半径进行计算的,其中周率取3.14。 ### 回答2: Python设计一个圆类Circle,可以通过输入半径来计算的周长、面积和直径等属性。下面我们详细介绍如何实现。 1. Circle的结构 Circle应该包括以下方法: __init__(self, radius): 初始化方法,输入半径 get_perimeter(self): 获取的周长 get_area(self): 获取的面积 get_diameter(self): 获取的直径 __str__(self): 获取的描述信息 2. Circle的实现 示例如下: class Circle: def __init__(self, radius): self.radius = radius def get_perimeter(self): perimeter = 2 * 3.14 * self.radius return perimeter def get_area(self): area = 3.14 * self.radius ** 2 return area def get_diameter(self): diameter = 2 * self.radius return diameter def __str__(self): return "的半径为:" + str(self.radius) + ",周长为:" + str(self.get_perimeter()) + ",面积为:" + str(self.get_area()) + ",直径为:" + str(self.get_diameter()) 我们使用来描述一个,通过输入半径,可以获取的周长、面积和直径等属性。上述代码实现的是一个最基础的圆类,如果需要更加详细的描述,可以参考相关资料进行修改和优化。 总体来说,Python设计一个圆类Circle还是比较简单的,只需要掌握面向对象的基本知识,就可以进行实现。希望本文能对初学者有所帮助。 ### 回答3: Python是一种面向对象的编程语言,其提供了很强大的面向对象编程的支持,我们可以使用Python设计一个圆类circle来实现的各种功能。 一个的主要属性包括半径和圆心,因此我们可以在circle中定义一个构造方法 __init__,来初始化的半径和圆心。 ```python class Circle: def __init__(self, radius, center): self.radius = radius self.center = center ``` 在定义中,我们需要实现一些方法来描述该的特性和功能,在circle中,常用的方法包括计算面积、计算周长、判断该是否包含一个给定的。 计算面积的方法可以写作: ```python def area(self): return 3.14 * self.radius ** 2 ``` 计算周长的方法可以写作: ```python def circumference(self): return 2 * 3.14 * self.radius ``` 判断是否包含一个给定的,可以写作: ```python def is_contain_point(self, point): x, y = point center_x, center_y = self.center distance = ((x - center_x) ** 2 + (y - center_y) ** 2) ** 0.5 return distance <= self.radius ``` 此外,为了方便直接输出的信息,我们还可以重新定义该的字符串表示形式,以便在输出时直接获取的信息。 ```python def __str__(self): return f"圆心: ({self.center[0]}, {self.center[1]}), 半径: {self.radius}" ``` 上述方法定义完成后,我们就可以创建一个对象,并通过使用对象的方法来实现相关功能。 ```python circle1 = Circle(4, (0, 0)) print(circle1.area()) # 输出面积 print(circle1.circumference()) # 输出周长 print(circle1.is_contain_point((3, 0))) # 判断该是否包含给定 print(circle1) # 输出该的信息 ``` 在上述代码中,我们创建了一个半径为4、圆心在原circle1。打印输出该的面积、周长、判断它是否包含(3, 0),以及该的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值