gpt4 book ai didi

不同操作系统之间的Python turtlegraphics不一致

转载 作者:太空宇宙 更新时间:2023-11-03 11:48:31 25 4
gpt4 key购买 nike

我正在使用 Python 的 turtle 模块和下面的代码绘制一个相当简单的形状:

import turtle

turtle.color('black', '#fef00e')
turtle.begin_fill()
turtle.left(180)
turtle.forward(100)
for i in range(5):
turtle.right(90)
turtle.forward(100+50*i)
turtle.end_fill()
turtle.done()

奇怪的是,这会在 Windows(左)和我尝试过的所有其他操作系统(Ubuntu、Arch、OSX)上产生两种不同的结果。具有偶数个重叠填充的区域在 Windows 上仍会被填充,但对于其他区域则再次空白。任何人都可以向我解释这是什么原因,以及是否有任何方法可以影响它?这种行为如此不一致似乎很奇怪。

enter image description here enter image description here

这似乎也是一种设计选择;对我来说,这两个版本中的哪一个是“正确的”版本并不是很明显。

最佳答案

问题在于“填充”在特定系统上是指“颜色”还是“切换颜色”。涂色两次就是涂色。切换两次就是不切换。 (这对是 Spencer Brown 的“形式法则”的基础。)Turtle 是在 Tkinter 之上实现的。这是一个简单的 Tkinter 程序,它在 Windows 上重现了左图(尽管没有黑线, turtle 添加了)。我强烈怀疑您会在 *nix 上得到正确的数字(我现在没有)。

from tkinter import *
root = Tk()
canv = Canvas(root, width=800, height=800)
canv.pack()
l = canv.create_polygon(
500,400, 400,400, 400,300, 550,300,
550,500, 300,500, 300,200, 500,400, fill='yellow')
root.mainloop()

如果是这样,那么我怀疑差异是底层图形系统的结果以及它对“填充”的解释。

我查看了 tk manual但没有发现填充两次的含义,只是'-fill color'。

关于不同操作系统之间的Python turtlegraphics不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33539617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com