有关小海龟Turtle的基础操作

海龟绘图

Python编程代码学累了就来看看小海龟吧。

要使用到海龟绘图,我们首先需要导入一个模块

import turtle

这个模块已经被Python系统自带,无需我们额外安装。

将模块导入后就可以进行绘图的基本操作了。

首先先创建一个画板:

turtle.setup(500,500)    #创建一个500*500的画板

例如,画一条直线,以及将画笔向左向右转多少度:

turtle.forward(100)
turtle.left(90)
turtle.right(90)

运用这两个代码,我们可以简单的绘制一个五角星:

import turtle

# 设置画笔颜色和填充颜色
turtle.color("red")

# 绘制五角星
for i in range(5):
    turtle.forward(200)
    turtle.right(144)

#隐藏画笔
turtle.hideturtle()

# 保持窗口显示
turtle.done()

如此,运用以下这些基本的函数就可以绘制一个笑脸啦;

画笔的属性:

turtle.pensize()     #设置画笔的宽度
turtle.pencolor(color)     #(颜色的英文,字母用小写),如"green", “red”
turtle.speed(speed)     #设置画笔移动速度,画笔绘制的速度范围[0.5,10]整数,数字越大越快

画笔运动命令:

turtle.forward(distance)      #向当前画笔方向移动distance像素长度
turtle.backward(distance)      #向当前画笔相反方向移动distance像素长度
turtle.right(degree)       #顺时针移动degree°
turtle.left(degree)      #逆时针移动degree°
turtle.up()      #提起笔,移动时不绘制图形
turtle.goto(x,y)      #将画笔移动到坐标为x,y的位置
turtle.down()      #放下笔,移动时绘制图形
turtle.circle(radius,extent)      #根据半径radius绘制extent角度的弧形,若无extent参数则画圆radius正(负),表示圆心在画笔的左边(右边)画圆,extent参数正(负)则是逆(顺)时针画圆
turtle.setx( )      #将当前x轴移动到指定位置,y轴不变
turtlr.sety( )      #将当前y轴移动到指定位置,x轴不变
turtle.setheading(angle)      #设置当前箭头朝向为angle角度,0-向右,90-向上,180-向左,270-向下
turtle.home()      #设置当前画笔位置为原点,朝向东。
turtle.dot(diameter,color)   #绘制一个指定直径和颜色的圆点
turtle.setpos(x,y)     #机器小乌龟定位到x=,y=
turtle.pos()      #获得当前位置
turtle.xcor()      #获得X坐标
turtle.ycor()      #获得Y坐标

画笔控制命令:

turtle.fillcolor(colorstring)     #绘制图形的填充颜色
turtle.color(color1, color2)     #同时设置pencolor=color1, fillcolor=color2
turtle.filling()     #返回当前是否在填充状态
turtle.begin_fill()     #准备开始填充图形
turtle.end_fill()     #填充完成
turtle.hideturtle()     #隐藏画笔的turtle形状
turtle.showturtle()     #显示画笔的turtle形状

全局控制命令:

turtle.clear()     #清空turtle窗口,但是turtle的位置和状态不会改变
turtle.reset()     #清空窗口,重置turtle状态为起始状态
turtle.undo()     #撤销上一个turtle动作
turtle.isvisible()     #返回当前turtle是否可见

turtle.done()     #保持窗口

turtle.exitonclick()      #点击后关闭窗口 
stmp()     #复制当前图形

以上函数均借鉴删改修改至:【Python3:turtle函数库的详细参数汇总 最全 没有之一】作者:Be-real

下面,我们来画一个笑脸;

import turtle
#写名字
turtle.setup(750,750)    #创建一个750*750的画板
turtle.speed(9)
turtle.hideturtle()    #隐藏画笔
turtle.pensize(2)    #画笔尺寸
turtle.pencolor("black")    #画笔颜色
turtle.up()
turtle.goto(150,200)
turtle.down()
turtle.write("子轩大魔王",False,'center',font=("宋体",16,"bold"))    #写上名字

turtle.bgcolor("white")    #画板颜色
turtle.shape("turtle")     #将画笔变成小海龟
turtle.up()
turtle.goto(-35,0)
turtle.down()
turtle.showturtle()      #显示画笔
turtle.pensize(8)
turtle.pencolor("yellow")
turtle.left(135)

#创建画眼睛的函数
def Yanjing():
    for i in range(90):
        turtle.forward(1)
        turtle.left(1)
        if i==89:
            turtle.up()
            turtle.goto(35, 0)
            turtle.down()
            turtle.left(180)
            for j in range(90):
               turtle.forward(1)
               turtle.right(1)
    turtle.up()
    turtle.goto(120,100)
    turtle.down()

#画脸
def Lian():
    for i in range(380):
       turtle.forward(3)
       turtle.right(1)
    turtle.up()
    turtle.goto(-72,-110)
    turtle.down()
    turtle.left(24)

#画嘴巴
def Zuiba():
    for i in range(90):
        turtle.forward(2)
        turtle.left(1)

#将函数一起运用
Yanjing()
Lian()
turtle.hideturtle()
Zuiba()
turtle.bgcolor("black")
turtle.done()

学会了怎么绘制图像后,接下来我们学习怎么在小海龟中打印文字:

在画板上打印我们想要的文字需要用到write来实现,

turtle.write('打印的内容',move=False,align='left',font=('宋体',11,'normal'))

turtle.write()一共有四个参数:
【打印的内容(arg)】:必填参数,用于指定要输出的文字内容,该内容会输出到当前海龟光标所在的位置。
【move】:可选参数,用于指定海龟光标是否移动到内容的右下角,默认为False(不移动)
【align】:可选参数,用于指定文字的对齐方式:

left【居左】、center【居中】、right【居右】,默认为left
 

【font】:可选参数,用于指定字体,字号以及字形。

PS:字形可设置的值为normal(表示正常)、bold(粗体)、italic(斜体)、underline(下划线)

【案例】

import turtle

turtle.setup(550,550)    #创建一个画板
turtle.hideturtle()     #隐藏画笔
turtle.color("black")    
turtle.write("命运把我推下悬崖,那我就坐在这里,给你唱支歌。",False,"center",font=("宋体",16,"bold"))
turtle.done()

 在运行过后,我们会得到下面这个窗口,可以发现,我们要打印输出的这段话已经被小海龟写在画板上了;

在海龟绘图中如果想要和用户交互获得用户输入的内容该怎么做呢?

这时候我们就需要用到一个海龟绘图中必会的函数了;

textinput()   

顾名思义,文本输入。通过textinput来弹出一个对话框,将输入对话框的内容返回到小海龟,并且返回的值为字符串类型。

turtle.textinput(title,prompt)                                        

【title】:用于指定对话框的标题,显示在标题栏上。                                     

【prompt】:用于指定对话框的提示文字,提示要输入的信息。

 如右图所示:

学会了用户交互,接下来我们自己写一个无聊又没有意义的程序吧;

import turtle

turtle.setup(550,550)
turtle.hideturtle()
turtle.color("black")
turtle.up()
turtle.down()
turtle.write("命运把我推下悬崖,那我就坐在这里,给你唱支歌。",False,"center",font=("宋体",16,"bold"))

x=1
n=0
while x<2:
    text=turtle.textinput("提示:",'请输入不带数字的文字')
    n += 20
    turtle.up()
    turtle.goto(-220 , -20-n)
    turtle.down()
    try:
        if text.isalpha()==False:
            turtle.pencolor('red')
            raise Exception(turtle.write("无效文字",False,'center',font=("宋体",11,"normal")))
        else:
            turtle.pencolor('black')
            turtle.write(text,False,'center',font=('宋体',11,'normal'))
            x +=1
    except:
        print()


turtle.done()

今天的小海龟之行就到这里,再会;

【参考文章】 

【输入/输出文字】作者:橙子味冰可乐

### Python `turtle` 库使用指南 #### 创建和初始化画布与海龟对象 为了开始绘制图形,首先需要导入 `turtle` 模块并创建一个窗口实例以及获取海龟对象。这允许在一个可视化环境中操作。 ```python import turtle window = turtle.Screen() turt = turtle.Turtle() ``` 这段代码设置了基本环境[^1]。 #### 基本移动命令 海龟可以执行多种动作来绘制不同类型的线条和形状: - 向前移动指定距离:`forward(distance)` 或者其缩写形式 `fd()`。 - 转向左侧给定的角度数:`left(angle)` 或者 `lt()`。 - 右转相应度数:`right(angle)` 或者 `rt()`。 - 返回到原点而不留下痕迹:`home()`。 下面的例子展示了如何让海龟能够按照指令行动[^2]。 ```python turt.forward(100) # 移动向前100像素 turt.left(90) # 左转90度 turt.forward(100) turt.left(90) turt.forward(100) turt.left(90) turt.forward(100) # 结束绘画循环保持窗口打开直到关闭 turtle.mainloop() ``` #### 更改方向模式 默认情况下,角度是以标准方式定义的;但是也可以切换成弧度制来进行更精确的操作。通过调用 `degrees()` 函数恢复为角度测量单位,而 `radians()` 则会将单位改为弧度。 ```python turtle.degrees() # 设置角度作为旋转单位 (这是默认行为) turtle.radians() # 改变设置使得之后所有的转动都基于弧度计算 ``` #### 绘制简单几何图形 利用上述基础功能组合起来就可以轻松构建复杂的图案。例如,要制作正方形只需要重复四次前进加左转即可完成闭合路径。 ```python for _ in range(4): turt.forward(100) turt.left(90) ``` 此段脚本实现了连续四个直角边构成的一个封闭区域——即一个简单的正方形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值