Python 不同 OS 之间的海龟图形不一致

Python turtlegraphics inconsistency between different OS's

我正在使用 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(左)和我尝试过的所有其他 OS 上产生两个不同的结果(Ubuntu、Arch、OS X)。具有偶数个重叠填充的区域仍然在 Windows 上填充,但对其他区域再次空白。任何人都可以向我解释这是什么原因,以及是否有任何方法可以影响它?这种行为如此不一致似乎很奇怪。

看来这也是一种设计选择;我不是很清楚这两个版本中的哪一个是 'correct' 版本。

问题是 'fill' 在特定系统上是指 'color' 还是 'switch color'。涂色两次就是涂色。切换两次就是不切换。 (这对是 Spencer Brown 的 "Laws of Form" 的基础。)Turtle 是在 Tkinter 之上实现的。这是一个简单的 Tkinter 程序,它在 Windows 上重现了左图(尽管没有乌龟添加的黑线)。我强烈怀疑你会在 *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()

如果是这样,那么我怀疑不同是底层图形系统的结果以及它对 'fill' 的解释。

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