编写一个正n边形类 RePoly。属性包括: 私有成员 n,要求为整型,代表正 n 边形边的数量,n>=3; 私有成员 side,代表正 n 边形每条边的长度; 私有成员 x,代表正 n 边形中心的坐标在 x 轴上的数值; 私有成员 y,代表正 n 边形中心的坐标在 y 轴上的数值; 方法包括:getPerimeter(),计算正 n 边形的周长;getArea(),计算正 n 边形的面积;getDistance(),计算两个正 n 边形中心的距离。输入两个n边形的边数、边长、x、y坐标,创建两个RePoly类对象repoly1、repoly2,输出repoly1的周长及面积,以及两个多边形的中心的距离。 边长为a的正n边行面积公式为: s=(n*a*a/4)/tan(pi/n) 【注意】第1、2行为第1、2个多边形参数的输入,第3、4、5行为第1个多边形的周长、面积、2个多边形中心距离的输出(计算结果全部保留两位小数)。格式不同算错:
时间: 2024-02-18 12:03:15 浏览: 57
定边长、定面积绘制正多边形
好的,我理解了你的要求。下面是代码实现:
```python
import math
class RePoly:
def __init__(self, n, side, x, y):
self.n = n
self.side = side
self.x = x
self.y = y
def getPerimeter(self):
return self.n * self.side
def getArea(self):
return (self.n * self.side ** 2) / (4 * math.tan(math.pi / self.n))
def getDistance(self, other):
return math.sqrt((self.x - other.x) ** 2 + (self.y - other.y) ** 2)
# 输入两个正 n 边形的参数
n1, a1, x1, y1 = map(int, input().split())
n2, a2, x2, y2 = map(int, input().split())
# 创建两个 RePoly 对象
repoly1 = RePoly(n1, a1, x1, y1)
repoly2 = RePoly(n2, a2, x2, y2)
# 输出 repoly1 的周长、面积和两个多边形中心的距离
print('%.2f' % repoly1.getPerimeter())
print('%.2f' % repoly1.getArea())
print('%.2f' % repoly1.getDistance(repoly2))
```
注意,这里只输出了 repoly1 的周长、面积和两个多边形中心的距离,如果需要输出 repoly2 的周长、面积等信息,可以在代码中添加相应的输出语句。
阅读全文