3 回答
TA贡献1886条经验 获得超2个赞
如果拼凑而成的只是一个背景并且您不打算修改它,您可以使用这个:
from graphics import *
def main():
win = GraphWin("Squares", 500, 500)
i = 1
for x in range(0, 221, 20):
rect = Rectangle(Point(x, 500 - x), Point(500 - x,x))
rect.setFill("red" if i % 2 else "white")
rect.draw(win)
i += 1
TA贡献1827条经验 获得超9个赞
由于使用矩形的轮廓作为其他颜色,因此只需要绘制一半的矩形的替代方法:
SQUARE, WIDTH = 500, 20
def main():
win = GraphWin("Squares", SQUARE, SQUARE)
save_config = dict(DEFAULT_CONFIG)
DEFAULT_CONFIG.update(dict(outline='red', fill='white', width=WIDTH))
for xy in range(WIDTH//2, SQUARE//2, WIDTH*2):
Rectangle(Point(xy, SQUARE - xy), Point(SQUARE - xy, xy)).draw(win)
DEFAULT_CONFIG.update(save_config)
它是完全参数化的,因此您可以通过调整SQUARE和WIDTH参数将其适合不同大小的正方形或具有不同宽度的条纹。它不是以交替颜色绘制 12 个矩形,而是使用当前设置的参数绘制 6 个带有红色轮廓的白色矩形:
TA贡献1828条经验 获得超3个赞
请尝试以下操作:
from graphics import *
def main():
win = GraphWin("Squares", 500, 500)
# create all rects
rects = [Rectangle(Point(0 + 20*i,500 - 20*i), Point(500 - 20*i, 0 + 20*i)) for i in range(12)]
# draw all rects
for idx, rect in enumerate(rects):
rect.fill("red" if idx % 2 == 0 else "white")
rect.draw(win)
添加回答
举报