• py.turtle学习笔记(简单图形绘制)


    #蛇.py
    import turtle #引入海龟库
    turtle.setup(650,350,200,200) #setup(宽,高 , 坐标,坐标)设置窗体大小及位置,4个参数后两个可选(不是必须函数)
    turtle.penup() #画笔抬起
    turtle.fd(-250) #前进-250个像素
    turtle.pendown() #画笔落下
    turtle.pensize(25) #改变画笔尺寸为25像素
    turtle.pencolor("purple") #使画笔为紫色
    turtle.seth(-40) #改变海龟方向为绝对40度(正右方为绝对0度)
    for i in range (4): #循环4次
    turtle.circle(40,80) #改变海龟行进轨迹(40度为半径,绘制80度)
    turtle.circle(-40,80) #改变海龟行进轨迹 (反向40度为半径,绘制80度)
    turtle.circle(40,80/2) turtle.fd(40) #前进40像素
    turtle.circle(16,180) #(r,angle)
    turtle.fd(40*2/3) #前进40*2/3像素
    turtle.done() #提供手工关闭窗体离开选项

    开头所给出来的一个代码仅是画一条简单的蛇,还有一些其他个人感觉在简单图形绘制中比较实用的代码.
    其实只要理解其中的内容就可以画出许多想要的简单图形了。
    个人有三个点要着重理解:
    1)循环: for i in range()
      循环的使用可以省去我们很多的步骤,同时也可以规避一些不必要的麻烦和使代码更整洁。
      例如在画一条蛇中,我没必要再去把缩进中的函数copy4次。这就是最直观的效果。
    2) 角度:海龟角度是用left,right ;绝对角度是用seth。
      这个理解起来并不难,关键得灵活运用。在一些必要的“扭头”动作,如果想不明白就直接seth,当然在循环体中则需要看需取用了。
    3)缩进:

      缩进放不好,歪图没得跑。这是要细心留意的。

    对于运用turtle库进行基本图像绘制,其实并没有太多的讲究。
    最简单的方式就是自己画一下。
    例如你想画个五角星,你用笔是怎么画的,那么你用py就是怎么画。
    熟悉py的绘制方式,就可以轻松运用py进行简单图形绘制。
    接下来就引入自己画五角星的一个例子:

    #画一个五角星
    import turtle    #引入
    turtle.setup(650,500,200,200)    #设置窗体尺寸
    turtle.pensize(1)    #设置笔的尺寸(海龟身材)
    turtle.fillcolor("red")    #设置填充颜色
    turtle.begin_fill()    #开填
    for i in range(5):    #循环5次
    turtle.fd(200)    #前进200像素
    turtle.left(216)    #海龟向左转216°
    turtle.end_fill()    #结束填充

    在做这个东西的时候,我会自己先尝试在纸上画一个五角星。并记录自己的步骤。

    然后再算出必要的角度问题。

    做到这里呢,基本上就能够明白五角星到底是怎么画的了。
    我们都知道py引入海龟库画图的原理:一个具有“方向感”的海龟在“游泳”。
    我们所需要做的也仅仅是让海龟按照我们的意图去游而已。
    如何做到这一前提?
    显然你是要熟悉海龟库中的函数。
    很多函数开始学是会有点点晕。
    但一点点熟悉起来还是很好理解的,多用就行。
    当然在愈发复杂的图形中画图思路想出来是很困难的一件事情。
    这就需要多多开动脑筋思考了。

    附:turtle函数(网上摘录)

    画笔的属性
    画笔(画笔的属性,颜色、画线的宽度等)
    1) turtle.pensize():设置画笔的宽度;
    2) turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。
    3) turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

    命令

    说明

    turtle.forward(distance)

    向当前画笔方向移动distance像素长度

    turtle.backward(distance)

    向当前画笔相反方向移动distance像素长度

    turtle.right(degree)

    顺时针移动degree°

    turtle.left(degree)

    逆时针移动degree°

    turtle.pendown()

    移动时绘制图形,缺省时也为绘制

    turtle.goto(x,y)

    将画笔移动到坐标为x,y的位置

    turtle.penup()

    提起笔移动,不绘制图形,用于另起一个地方绘制

    turtle.circle()

    画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆

    setx( )

    将当前x轴移动到指定位置

    sety( )

    将当前y轴移动到指定位置

    setheading(angle)

    设置当前朝向为angle角度

    home()

    设置当前画笔位置为原点,朝向东。

    dot(r)

    绘制一个指定直径和颜色的圆点

    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.mainloop()或turtle.done()

    启动事件循环 -调用Tkinter的mainloop函数。

    必须是乌龟图形程序中的最后一个语句。

    turtle.mode(mode=None)

    设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。

    模式

    初始龟标题

    正角度

    standard

    向右(东)

    逆时针

    logo

    向上(北)

    顺时针

    turtle.delay(delay=None)

    设置或返回以毫秒为单位的绘图延迟。

    turtle.begin_poly()

    开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。

    turtle.end_poly()

    停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。

    turtle.get_poly()

    返回最后记录的多边形。

                    

  • 相关阅读:
    Run Book Automation
    Android.mk中的经常使用语法
    层的匀速运动波动处理
    【ArcGIS 10.2新特性】ArcGIS 10.2 for Server常见问题
    WPF-19:分享一个样式(左右滑动选中的checbox)
    [置顶] 程序员期望月薪那些事儿
    【VB/.NET】Converting VB6 to VB.NET 【Part II】【之四】
    两种方式给列表增加自动增长序号列
    在后台运行erlang;在需要时连回交互模式
    php设计模式——UML类图
  • 原文地址:https://www.cnblogs.com/lalalala-fan/p/12491646.html
Copyright © 2020-2023  润新知