Python Turtle中单独修改线条颜色或填充颜色的实现问题
解决Turtle单独修改线条/填充颜色的问题
嘿,我懂你遇到的麻烦了——现在你的代码里,不管是按1触发blueLine还是按+触发blueFill,调用jack.color("blue")都会同时把线条颜色和填充颜色改成蓝色,这显然不是你想要的单独控制效果。
其实Turtle库早就为我们准备了单独设置这两种颜色的方法:
- 用
pencolor()方法可以单独修改线条(画笔)颜色 - 用
fillcolor()方法可以单独修改填充颜色
下面是修改后的完整代码,我已经把两个函数里的调用替换成了对应的方法:
import turtle from turtle import Turtle, Screen screen = Screen() PenWidth = int(input("Enter your Penwidth")) jack = Turtle("turtle") jack.color("red", "green") # 初始设置:线条红,填充绿 jack.pensize(PenWidth) jack.speed(0) def blueLine(): jack.pencolor("blue") # 只改线条颜色为蓝色 def blueFill(): jack.fillcolor("blue") # 只改填充颜色为蓝色 def up(): jack.setheading(90) jack.forward(100) turtle.listen() turtle.onkey(up, "Up") turtle.onkey(blueLine, "1") turtle.onkey(blueFill,"+") screen.mainloop()
这样修改后,按1键只会把画笔(线条)改成蓝色,填充颜色保持原来的绿色;按+键只会把填充颜色改成蓝色,线条颜色还是原来的红色(或者之前设置的其他颜色),完美实现了你要的单独控制效果。
如果之后你需要同时修改两种颜色,还是可以用原来的jack.color(pen_color, fill_color)写法,灵活切换就行~
内容的提问来源于stack exchange,提问作者user15015324
相关产品推荐
相关产品推荐

