使用Python Turtle生成重叠三角形

时间:2015-03-12 06:57:56

标签: python turtle-graphics

我正在尝试使用Python Turtle生成一个特定的模式,但我遇到了问题。我已经创建了第一个三角形,但我不确定如何添加第二个三角形并着色它。

我需要它:http://gyazo.com/5abdd3bc05a44945f1a74286e2ad43c6

我目前拥有的内容:http://gyazo.com/65357ea5d43a7dc49e89879a27e980b4

到目前为止

代码:

forward(200)
left(120)
forward(200)
left(120)
forward(200)
right(120)
done()

2 个答案:

答案 0 :(得分:1)

这是一个例子

import turtle
def draw_square(turtle, length):
    for i in range(4):
        turtle.forward(length)
        turtle.right(90)

def Retat_square(turtle, length,nbr):
    for i in range(nbr):
        draw_square(turtle, length) 
        turtle.right(360/nbr)

def main():
    window = turtle.Screen()
    window.bgcolor("blue")

上面是一个方法,它将绘制一个正方形,并在下面用turtle类

调用该方法
s = turtle.Turtle()
s.shape("turtle")
s.color("yellow")
s.speed()

Retat_square(s,100,30)

我希望这会对你有所帮助

答案 1 :(得分:0)

以下是基于标记而非绘图的完整解决方案,这可能是解决某些海龟问题的更好方法:

import turtle
from operator import add

RED = (1.0, 0.0, 0.0)
GREEN = (0.0, 1.0, 0.0)
SUM = map(add, RED, GREEN)

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(RED)
turtle.shapesize(TRIANGLE_SIZE / STAMP_UNIT, TRIANGLE_SIZE / STAMP_UNIT, BORDER_SIZE)
turtle.stamp()

turtle.fillcolor(GREEN)
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(SUM)
turtle.sety(turtle.ycor() + 2 * y_offset / 3)
turtle.stamp()

turtle.exitonclick()

我将在回答the followup question to this question时讨论混色问题。

<强>输出

enter image description here