Python绘画:画小乌龟

嘿呀,咱要在 Python 里玩海龟绘图啦,第一步呢,就得把 turtle 库给请进来!​

​import turtle​

这行代码就像是跟 Python 解释器说:“嘿,老哥,咱等会儿要用 turtle 库的超能力啦!” 在 Python 里,import就是那个专门负责把各种模块 “搬” 进来的神奇关键字,而turtle就是咱这次要用的超酷模块名。有了这一步,就好比打开了一个装满绘图魔法道具的百宝箱,里面各种函数和类都能任咱差遣,开启绘图大冒险咯!​

接下来,得造个能在屏幕上 “撒欢” 的画笔小能手,也就是创建画笔对象:​

my_turtle = turtle.Turtle()​

这里的Turtle()是 turtle 库提供的一个超厉害的类,就像一个能生产神奇画笔的工厂。咱调用它,就诞生了一个叫my_turtle的超萌画笔对象。这小家伙可不得了,它就像现实中拿着画笔的调皮鬼,能在屏幕上蹦跶着画线条呢!而且不同的画笔对象,就像不同性格的小画家,有的爱画红线,有的钟情蓝线,各有各的风格。​

再然后,得给咱这画笔小能手打扮打扮,设置设置它的属性。​

先搞颜色,就像给画笔换个酷炫的 “外套”:​

​my_turtle.pencolor("red")​

用my_turtle.pencolor()这招,就能给画笔挑颜色啦。这里给它套上了红色的 “外套”,turtle 库认识好多常见颜色名字呢,像 “blue”“green”“yellow”,都是它的 “心头好”。要是你想玩点高级的,还能用 RGB 值,比如my_turtle.pencolor((255, 0, 0)),这就相当于跟画笔说:“嘿,给我整成大红色!”(在 RGB 颜色模式里,红色分量拉满到 255,绿色和蓝色都归零)​

接着给画笔调整 “身材”,也就是线条粗细:​

​my_turtle.pensize(3)​

my_turtle.pensize()就是干这个事儿的,这里把线条粗细设定为 3 个像素。数字越大,这画笔 “画出来的线条就越像粗壮的树干”,超有存在感!​

现在,该让画笔小能手动起来啦!​

向前冲:​

​my_turtle.forward(100)​

用my_turtle.forward()这招,画笔就像被打了鸡血,沿着当前方向 “嗖” 地往前冲 100 个像素,还顺带画出一条直线。要是之前给它穿了红色 “外套”,那这条线就是红的,线条粗细也按之前设定的来,超听话。​

往后退:​

my_turtle.backward(50)​

my_turtle.backward()就像让画笔 “踩刹车” 然后倒车,它会沿着当前方向的反方向,往后退 50 个像素,妥妥的 “倒车小能手”。​

左转啦:​

​my_turtle.left(45)​

my_turtle.left()能让画笔像个调皮的孩子,向左一转,转 45 度。转完之后,再用forward()这些移动方法,它画的方向就变啦,像个找到了新方向的探险家。​

右转咯:​

my_turtle.right(30)​

和left()相反,my_turtle.right()让画笔向右旋转 30 度,就像在跟左边的方向说拜拜,然后朝着新方向出发。​

重头戏来咯,咱要画个超可爱的小乌龟形状:​

my_turtle.circle(50)​

my_turtle.forward(30)​

my_turtle.backward(30)​

my_turtle.right(45)​

my_turtle.forward(30)​

my_turtle.backward(30)​

my_turtle.left(45)​

画小乌龟得把前面那些移动和旋转的招都用上。先画身体,用my_turtle.circle()这招,就像给画笔施了个魔法,以它当前位置为圆心,画出一个半径 50 像素的圆形,这就是小乌龟圆滚滚的身体啦。画四肢和脑袋的时候,就靠forward()、left()、right()这些招。比如说画向前伸出的前肢,代码让画笔先往前冲 30 像素,模拟前肢伸出,再退回来,然后往右转 45 度,又往前冲 30 像素,模拟前肢换个方向,最后再退回来,转回到原来方向。就这么捣鼓,七拼八凑,一个活灵活现的小乌龟就画好啦!​

最后,当咱画完收工,得让绘图窗口别偷偷跑掉,不然咱辛苦画的小乌龟就看不到啦。在代码末尾加上这一句:​​

turtle.done()​

turtle.done()这招就像给绘图窗口下了个 “定身咒”,告诉 turtle 库:“绘图结束啦,窗口给我乖乖待着,直到用户手动关掉你!” 要是忘了加这行代码,程序跑完,绘图窗口就像个害羞的小姑娘,一闪就没影了,咱的小乌龟也跟着消失咯!​

绘制小乌龟的完整代码:

import turtle

# 设置画布和画笔
screen = turtle.Screen()
screen.bgcolor("lightblue")
pen = turtle.Turtle()
pen.speed(2)

# 绘制乌龟的身体
pen.penup()
pen.goto(0, -100)
pen.pendown()
pen.color("green")
pen.begin_fill()
pen.circle(100)
pen.end_fill()

# 绘制乌龟的头部
pen.penup()
pen.goto(100, 0)
pen.pendown()
pen.setheading(45)
pen.color("green")
pen.begin_fill()
pen.circle(30)
pen.end_fill()

# 绘制乌龟的四肢
legs = [(-80, 50), (-100, -50), (80, 50), (100, -50)]
for leg in legs:
    pen.penup()
    pen.goto(leg)
    pen.pendown()
    pen.setheading(0)
    pen.color("green")
    pen.begin_fill()
    pen.circle(20)
    pen.end_fill()

# 绘制乌龟的眼睛
pen.penup()
pen.goto(120, 30)
pen.pendown()
pen.color("black")
pen.begin_fill()
pen.circle(5)
pen.end_fill()

# 隐藏画笔
pen.hideturtle()

# 保持窗口打开
turtle.done()