如何在Python海龟中绘制三角形

2,510 阅读2分钟

triangle python turtle

在Python中用Turtle绘图真的很有趣。我们将看看如何使用Python中的Turtle库绘制另一种类型的多边形,即三角形。


定义一个三角形函数

为了画一个三角形,我们要使用一个函数,而且它应该使用变量。我们这样做的目的是,如果我们想画许多不同大小的三角形,我们可以多次调用这个函数。

from turtle import *

drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('triangle')


def draw_triangle(length=150):
    for i in range(3):
        forward(length)
        left(120)


draw_triangle()

done()

draw triangle python turtle

很好!三角形函数起作用了。请注意,循环使用了range(3)显示的3次迭代,而当我们画一个正方形时,它在循环中使用了4次迭代。我们注意到的另一件事是,我们为left()函数传入了120度的转角。这是为什么呢?这是因为在画三角形时,你需要使用外角而不是内角。我们在这里画的是一个等边三角形,因为等边三角形的所有三个角加起来都是180度。

equilateral triangle python


绘制更多的三角形

现在我们可以使用draw_triangle()函数几次,结合将乌龟移到画布上的不同位置,以获得漂亮的效果。

from turtle import *

drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('triangle')


def draw_triangle(length=150):
    for i in range(3):
        forward(length)
        left(120)


draw_triangle()
right(180)
forward(100)
right(180)
draw_triangle(200)

done()

drawing two triangles

下面的迭代将这一想法向前推进了一步,在画布上的不同位置绘制三个三角形。

from turtle import *

drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('triangle')


def draw_triangle(length=150):
    for i in range(3):
        forward(length)
        left(120)


draw_triangle()
right(180)
forward(100)
right(180)
draw_triangle(200)
right(180)
forward(100)
right(180)
draw_triangle(250)

done()

three triangles turtle


在一个循环中绘制三角形

在一个循环中调用draw_triangle()可以产生一些非常酷的效果。

from turtle import *

drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('triangle')


def draw_triangle(length=150):
    for i in range(3):
        forward(length)
        left(120)


for i in range(20):
    draw_triangle()
    right(1)

done()

triangles in loops python

from turtle import *

drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('triangle')


def draw_triangle(length=150):
    for i in range(3):
        forward(length)
        left(120)


for i in range(40):
    draw_triangle()
    right(10)

done()

really cool graphic python turtle