设计并实现一个 MyCircle 类,它表示圆。圆心及半径是它的属性,定义一些基本方法,例如计算圆的面积、计算圆的周长、判断两个圆是否相交、判断给定直线与给定圆的位置关系等。
时间: 2024-05-07 22:22:44 浏览: 79
c#创建圆形类Circle、矩形类实现代码
下面是 MyCircle 类的实现代码:
```python
import math
class MyCircle:
def __init__(self, x=0, y=0, r=1):
self.x = x
self.y = y
self.r = r
def area(self):
return math.pi * self.r ** 2
def circumference(self):
return 2 * math.pi * self.r
def is_intersect(self, other):
d = math.sqrt((self.x - other.x) ** 2 + (self.y - other.y) ** 2)
return d <= self.r + other.r
def line_circle_relation(self, a, b, c):
d = abs(a * self.x + b * self.y + c) / math.sqrt(a ** 2 + b ** 2)
if d < self.r:
return "相交"
elif d == self.r:
return "相切"
else:
return "相离"
```
其中,`__init__` 方法用于初始化圆的属性,`area` 方法用于计算圆的面积,`circumference` 方法用于计算圆的周长,`is_intersect` 方法用于判断两个圆是否相交,`line_circle_relation` 方法用于判断给定直线与给定圆的位置关系。
使用示例:
```python
c1 = MyCircle(0, 0, 5)
c2 = MyCircle(10, 0, 5)
print(c1.area()) # 78.53981633974483
print(c1.circumference()) # 31.41592653589793
print(c1.is_intersect(c2)) # True
print(c1.line_circle_relation(1, 0, 0)) # 相交
print(c1.line_circle_relation(1, 0, 5)) # 相切
print(c1.line_circle_relation(1, 0, 10)) # 相离
```
阅读全文