如何排列矩形?
How to line up rectangles?
我在打印排列的矩形时遇到问题。任务是实现生成无限序列的函数(但是教授说它不一定,可以是,例如,10个矩形)不与具有不同坐标的相等矩形相交。
它应该看起来像图片上的六边形(但我需要矩形)的下直线(等间距)。
现在我有这个代码:
import matplotlib.pyplot as plt
class Figure:
def __init__(self):
self.x = []
self.y = []
def show(self):
plt.plot(self.x, self.y)
plt.axis([-0.2, 10, -0.2, 5])
plt.show()
class Rectangle(Figure):
def __init__(self):
self.x = [0, 0, 2, 2, 0]
self.y = [0, 1, 1, 0, 0]
def show():
plot = Rectangle()
plot.show()
show()
不允许我使用 matplotlib 创建图形,应该使用我自己的 类 和函数来完成。第一个矩形的坐标已经在代码中。第二个的坐标应该是:
x = [3, 3, 5, 5, 3]
y = [0, 1, 1, 0, 0]
第三个:
x = [6, 6, 8, 8, 6]
y = [0, 1, 1, 0, 0]
等等。我看到 x 3 中的每个项目都被添加了。但我不明白如何制作一个函数(或使用什么库)来执行它并在一个图中显示所有矩形。预先感谢您的所有帮助!
您可以使用 for
-loop 多次重复相同的代码但具有不同的值 - plot.x = ...
- 您可以使用 for
中的值添加 3
- 3*i
并且您应该从 class 中删除 plt.show()
并仅使用一次 - 在绘制所有矩形之后 - 这将在一个图上显示所有矩形。
import matplotlib.pyplot as plt
class Figure:
def __init__(self):
self.x = []
self.y = []
def show(self):
plt.plot(self.x, self.y)
plt.axis([-0.2, 10, -0.2, 5])
#plt.show()
class Rectangle(Figure):
def __init__(self):
self.x = [0, 0, 2, 2, 0]
self.y = [0, 1, 1, 0, 0]
def show():
for i in range(10):
plot = Rectangle()
plot.x = [x+3*i for x in plot.x]
plot.show()
plt.show()
show()
我在打印排列的矩形时遇到问题。任务是实现生成无限序列的函数(但是教授说它不一定,可以是,例如,10个矩形)不与具有不同坐标的相等矩形相交。 它应该看起来像图片上的六边形(但我需要矩形)的下直线(等间距)。
现在我有这个代码:
import matplotlib.pyplot as plt
class Figure:
def __init__(self):
self.x = []
self.y = []
def show(self):
plt.plot(self.x, self.y)
plt.axis([-0.2, 10, -0.2, 5])
plt.show()
class Rectangle(Figure):
def __init__(self):
self.x = [0, 0, 2, 2, 0]
self.y = [0, 1, 1, 0, 0]
def show():
plot = Rectangle()
plot.show()
show()
不允许我使用 matplotlib 创建图形,应该使用我自己的 类 和函数来完成。第一个矩形的坐标已经在代码中。第二个的坐标应该是:
x = [3, 3, 5, 5, 3]
y = [0, 1, 1, 0, 0]
第三个:
x = [6, 6, 8, 8, 6]
y = [0, 1, 1, 0, 0]
等等。我看到 x 3 中的每个项目都被添加了。但我不明白如何制作一个函数(或使用什么库)来执行它并在一个图中显示所有矩形。预先感谢您的所有帮助!
您可以使用 for
-loop 多次重复相同的代码但具有不同的值 - plot.x = ...
- 您可以使用 for
中的值添加 3
- 3*i
并且您应该从 class 中删除 plt.show()
并仅使用一次 - 在绘制所有矩形之后 - 这将在一个图上显示所有矩形。
import matplotlib.pyplot as plt
class Figure:
def __init__(self):
self.x = []
self.y = []
def show(self):
plt.plot(self.x, self.y)
plt.axis([-0.2, 10, -0.2, 5])
#plt.show()
class Rectangle(Figure):
def __init__(self):
self.x = [0, 0, 2, 2, 0]
self.y = [0, 1, 1, 0, 0]
def show():
for i in range(10):
plot = Rectangle()
plot.x = [x+3*i for x in plot.x]
plot.show()
plt.show()
show()