为什么我的对象在使用 Python turtle 时没有填充颜色?

问题描述 投票:0回答:1

我是 Python 的新手,我正在使用 turtle 学习图形。我正在尝试为我画的星星上色,但颜色不会填满星星的每个部分。

这是我的代码:

def red_star():
    f.penup()
    f.goto(145,-130)
    
    f.fillcolor("red")
    f.begin_fill()
    
    for i in range(5):
        f.fd(100)
        f.rt(144)
    
    f.end_fill()
    f.pendown()

red_star()

这是我运行程序时产生的结果:

Image of star

python python-3.x turtle-graphics python-turtle
1个回答
2
投票

turtle.end_fill()
中有记载:

是否填充自相交多边形或多个形状的重叠区域取决于操作系统图形、重叠类型和重叠数量。

画出星星的外缘,使其不是自相交的多边形:

import turtle

def red_star(t, side):
    t.fillcolor('red')
    t.pencolor('black')  # to highlight the lines
    t.pendown()
    t.width(3)
    t.begin_fill()
    for i in range(5):
        t.fd(side)
        t.left(72)
        t.forward(side)
        t.right(144)
    t.end_fill()

t = turtle.Turtle()
s = t.screen
s.delay(0)
t.hideturtle()
t.penup()
red_star(t, 50)
s.exitonclick()
s.mainloop()

输出:

Filled Star

© www.soinside.com 2019 - 2024. All rights reserved.