大家好我想复制这张图片:
差不多完成了我只有一个问题,三角形应该是黄色的,似乎不起作用。
矿:
代码:
fill(True)
fillcolor('green')
width(3)
forward(200)
left(120)
forward(200)
left(120)
forward(200)
fill(False)
right(180)
forward(100)
right(60)
forward(100)
left(120)
fill(True)
fillcolor('red')
forward(200)
left(120)
forward(200)
left(120)
forward(200)
fill(False)
任何帮助将不胜感激。 (我不能在代码的第二部分添加黄色)
答案 0 :(得分:1)
据我所知,turtle
不支持透明度。绿色三角形将覆盖红色三角形,它们重叠的区域将不会添加"添加"变黄你必须明确地绘制黄色三角形。尝试将其添加到您的代码中:
fill(True)
fillcolor('yellow')
left(120)
forward(100)
left(120)
forward(100)
left(120)
forward(100)
fill(False)
此外,定义函数def triangle(size, color)
以减少代码中的重复次数可能是个好主意,例如:像这样:
def triangle(size, color):
fill(True)
fillcolor(color)
for _ in range(3):
forward(size)
left(120)
fill(False)
然后你只需要定位乌龟并调用该函数绘制一个三角形。
答案 1 :(得分:0)
虽然乌龟不支持透明度,但我们仍然可以在Python中进行一些混色而不是硬编码"黄色":
from operator import add
RED = (1.0, 0.0, 0.0)
GREEN = (0.0, 1.0, 0.0)
SUM = map(add, RED, GREEN)
这使我们可以选择尝试其他一些原色并看看它们的混合情况。例如:
import turtle
from operator import add
PRIMARY_1 = (1.0, 0.0, 0.0) # red
PRIMARY_2 = (0.0, 0.0, 1.0) # blue
SECONDARY_SUM = map(add, PRIMARY_1, PRIMARY_2)
TRIANGLE_SIZE = 200
BORDER_SIZE = 5
STAMP_UNIT = 20
SQRT_3 = 3 ** 0.5
turtle.shape("triangle")
turtle.hideturtle()
turtle.penup()
turtle.right(30) # realign triangle
turtle.fillcolor(PRIMARY_1)
turtle.shapesize(TRIANGLE_SIZE / STAMP_UNIT, TRIANGLE_SIZE / STAMP_UNIT, BORDER_SIZE)
turtle.stamp()
turtle.fillcolor(PRIMARY_2)
y_offset = TRIANGLE_SIZE * SQRT_3 / 4
turtle.goto(TRIANGLE_SIZE / 4, -y_offset)
turtle.stamp()
turtle.shapesize(TRIANGLE_SIZE / STAMP_UNIT / 2, TRIANGLE_SIZE / STAMP_UNIT / 2, BORDER_SIZE)
turtle.fillcolor(SECONDARY_SUM)
turtle.sety(turtle.ycor() + 2 * y_offset / 3)
turtle.stamp()
turtle.exitonclick()
显然,这种方法过于简单化,对于真正的混合,代码需要更加复杂。但是由于缺乏透明度,我们不必完全放弃硬编码。
<强>输出强>