• 学编程:Python入门考级必备[5]


    海龟画图(5)  妙手丹青

    一、初始化

    二、坐标与角度

    三、画圆与点与技巧

    四、填充颜色与圆内内切多边形

    炼 海龟画图


    一、初始化

    英文:turtle 中文:海龟
    海龟能在一个画布上游走,游走的轨迹就形成了绘制的图形。
    1.怎么在 Python 编程中找到海龟呢?
    答:导入海龟画图工具: import turtle
    2. 怎么用海龟这个工具?
    初始化海龟,例如设置画布大小与位置、画笔颜色、粗细、抬笔还是落笔。

    import turtle # 导入库 ( 必须导入库,后面才能用其他功能 )
    # 画布大小与位置,每一行代码自己运行下
    turtle.setup(600,400,0,0) # 600 ,宽 400 ,在左上角
    turtle.setup(500,400)        # 长 500 ,宽 400 默认中间位置
    width:设置窗口的宽度,默认为屏幕的 50%。
    height:设置窗口的高度,默认为屏幕的 50%。
    startx:窗口距离屏幕左边缘多少距离,负值表示距离右边缘,None 表示窗口水平居中。
    starty:窗口距离屏幕上边缘多少距离,负值表示距离下边缘,None 表示窗口垂直居中。

    turtle.setup(600,400)       画布的大小 长600,宽400

    turtle.pensize(5)               画笔大小 5

    turtle.pencolor("red")      画笔颜色 红色

    turtle.pendown()              落笔

    turtle.penup()                   抬笔

    turtle.forward(200)           前进 200

    turtle.backward(100)        后退 100

    turtle.right(90)            右转 90

    turtle.left(90)              左转 90

    turtle.seth(90)           朝向正上方


    1 :请编程实现让画笔,往前走 100 ,再左转 120 100 ,再左转 120 100 最终得到一个正三角形
    要求: 1. 画布默认在中间 长 600 ,宽 400; 2. 画笔大小 6, 颜色蓝色;
    1. import turtle #导入库
    2. # 画布大小与位置
    3. #turtle.setup(600,400) # 长600,宽400,在左上角
    4. #turtle.setup(500,400)# 长500,宽400 默认中间位置
    5. #turtle.pensize(4)
    6. #turtle.pencolor("blue")
    7. # 1.画三角形
    8. # turtle.seth(90) # 向上画
    9. turtle.forward(100)
    10. turtle.left(120)
    11. turtle.forward(100)
    12. turtle.left(120)
    13. turtle.forward(100)
    14. turtle.left(120)

    二、坐标与角度

    海龟画笔 默认 一开始的位置坐标是中间(0,0)位置,
    头朝向正右方,角度 seth 为 0;
    正上方角度 seth 为 90;正左方角度 seth 为 180;
    正下方角度为 270 或-90。

    对“练 1”题进行修改,从正上方开始画,该怎么画呢?


     用 turtle.goto 可以把画笔移到相应的坐标位置。

    turtle.goto(100,0)#移动到(100,0)的位置,画一条 100 长度的直线。

    请用两种方式画出一个正方形,如上图:。
    要求:1. 画布长 800,宽 600,在(200,200)位置;2.画笔大小 4 颜色紫色;3. 从正下方开始画,边长 200。
    1. # 2.画正方形
    2. turtle.setup(800,600,200,200)
    3. turtle.pensize(4)
    4. turtle.pencolor("purple")
    5. turtle.seth(270)
    6. turtle.forward(200)
    7. turtle.left(90)
    8. turtle.forward(200)
    9. turtle.left(90)
    10. turtle.forward(200)
    11. turtle.left(90)
    12. turtle.forward(200)
    13. turtle.left(90)

    # 2.坐标画正方形

    turtle.setup(800,600,200,200)
    turtle.pensize(4)
    turtle.pencolor( "purple" )
    turtle.seth(270) #不影响
    turtle.goto(200,0)
    turtle.goto(200,-200)
    turtle.goto(0,-200)
    turtle.goto(0,0)

    练 3:那如何把正方形画在画布中心位置?
    答:
    1.初始化完成后,使用抬笔 goto 移到正方形某顶点位置,例如 goto(-100,-100);
    2.移好位置,落笔,用“练 2 ”的代码修改后即可。
    请你来完成下这个大大的作品。
    turtle.penup()
    turtle.goto(-100,-100)
    turtle.pendown()
    #画边长200的正方形
    turtle.forward(200)
    turtle.left(90)
    turtle.forward(200)
    turtle.left(90)
    turtle.forward(200)
    turtle.left(90)
    turtle.forward(200)

    三、画圆与点与技巧

    海龟画笔,我们可以调整它的 速度、隐藏还是显示、关闭停止、回到原点 等。
    turtle.speed(1)       # 设置画笔移动速度为 1 ,速度最快为 0
    turtle.hideturtle()   # 隐藏画笔
    turtle.showturtle() # 显示画笔
    turtle.home()      # 返回原点,回到默认方向,有痕迹
    turtle.done()       # 停止画笔等待关闭
    turtle.speed(2)       # 画笔速度 2
    turtle.goto(200,0)
    turtle.hideturtle()   # 隐藏画笔
    turtle.goto(200,-200)
    turtle.goto(0,-200)
    turtle.showturtle() # 显示画笔
    turtle.home()         #回到原点与默认方向
    turtle.done()         #停止画笔等待关闭

    turtle.circle( 半径 , 角度 )     画圆圈
    turtle.color( 画笔 , 填充 )     设置画笔颜色,且填充颜色
    turtle.dot( 直径 , 颜色 )         画点
    turtle.circle(100) # 半径为正,圆心在画笔箭头方向的左边,顺时针绕圆心画。
    turtle.circle(-50) # 半径为负,圆心在画笔箭头方向的右边,顺时针绕圆心画。

    4 :请在原点画出上下左右四个圆 ( 填空 )
    要求 : 1. 在原点位置,画笔粗细 5 ,每个圆要不同的颜色,半径为 80

    import turtle

    turtle.pensize(5)

    turtle.               # 原点

    turtle.                   # 默认黑色,画上圆

    turtle.seth(   )          # 面向上方

    turtle.pencolor(     )    # 红色

    turtle.circle(80)         # 画左边圆

    turtle.seth(180)          # 面向左方

    turtle.color(     )       # 黄色

    turtle.circle(80)         # 画下边圆

    turtle.                   # 面向左方

    turtle.                   #

    turtle.                   # 画右边圆


    练 5:画三个点,连接起来是一个正三角形的样子。
    1. 边长 150,要把三角形的中点放在原点位置;
    2. 每个点都是不同的颜色,直径为 25;最后隐藏画笔。
    1. #练5:画三个点,连接起来是一个正三角形的样子。
    2. turtle.fillcolor("blue")
    3. turtle.begin_fill()
    4. turtle.pensize(6)
    5. turtle.forward(100)
    6. turtle.dot(25,"green")
    7. turtle.left(120)
    8. turtle.forward(200)
    9. turtle.dot(25,"orange")
    10. turtle.left(120)
    11. turtle.forward(200)
    12. turtle.dot(25,"black")
    13. turtle.left(120)
    14. turtle.forward(100)
    15. turtle.end_fill()
    16. turtle.hideturtle()


    四、填充颜色与圆内内切多边形

    turtle.fillcolor("red") #设置填充颜色为红色
    turtle.begin_fill() #开始填充
    turtle.end_fill() #填充结束
    turtle.circle(130,steps=6) # circle( 半径 , steps= 边数 )
    先声明要填充的颜 色 turtle.fillcolor("red"), 从什么时候开始填充 。 turtle.begin_fill()到什么时候填充结束 turtle.end_fill()。如上图。
    练 6:画一个直径 260 的圆圈,圆内切正六边形,且填充颜色为红色。
    1. #练6:画一个直径260的圆圈,圆内切正六边形,且填充颜色为红色。
    2. turtle.pensize(5)
    3. turtle.fillcolor("red")
    4. turtle.circle(130)
    5. turtle.begin_fill()
    6. turtle.circle(130,steps=6)
    7. turtle.end_fill()
    8. turtle.hideturtle()

    炼 海龟画图

    1.绘制如下图形,一个正方形,内有三个红点,中间红点在正方形中心。要求如下:

    (1)正方形边长为 200,线条为黑色;
    (2)圆点的直径均为 20 ,填充颜色为红色,画完后隐藏画笔;
    (3)中间圆点的圆心位置为画布正中心,三个圆心之间距离相隔为 40。

     2.绘制如下图形:  

    (1)画一个由一个正方形和一个菱形组成的图形,其中,正方形的边长为 200
    象素,菱形的四个顶点均在正方形四条边的中点上;
    (2)设置画笔速度为 1;
    (3)菱形的填充颜色为红色,所有线条为黑色;
    (4)画图结束,隐藏并停止画笔。
    3.绘制如下图形,相关参数及要求如下:
    (1)画笔起始位置不限,但是整个图形必须要能够在画布中呈现;
    (2)大的正方形由四个小正方形组成;
    (3)每个小正方形的边长均为 100 像素;
    (4)左上角和右下角的正方形填充颜色均为黑色;
    (5)所有的线条颜色均为黑色;
    (6)绘制完成后,隐藏画笔。


     4.作图题: 请使用 turtle 画出如下标志。

    要求:
    (1)线条颜色为黑色,线条粗细为 10;
    (2)圆半径为 50,填充颜色为蓝色;
    (3)等边三角形边长为 180;
    (4)等边三角形底边中点位置为画布正中心。

    5.“天狗吃月亮”是一个古老的神话,以前古人不了解月食这一现象,所以说月
    亮被狗吃了,天狗吃月亮是古人对“月食”这一天文现象的简称。月食是自然界
    的一种现象,当太阳、地球、月球三者恰好或几乎在同一条直线上时(地球在太
    阳和月球之间),太阳到月球的光线便会部分或完全地被地球遮挡,产生月食。
    请你设计一段程序完成下列图片的月食现象。
    要求
    (1)海龟的初始位置的坐标为(0,0),月食现象的图片需在整个画布中完整 呈现;
    (2)月食现象由两个圆或点组成,分别为半径不同的黄色和白色的圆或点;
    (3)绘制半径为 150 的圆或点,并填充颜色为黄色,该图形的中心位置为画布的正中心位置(0,0);
    (4)绘制半径为 75 的圆或点,并填充颜色为白色,该图形的中心位置坐标为 (150,0)。

     

     

  • 相关阅读:
    计算机中的 原码、反码、补码 详解
    商业化广告--体系学习-- 2 -- 行业蓝图篇 -- 广告产品与商业模式
    微信小程序开发整理-mp1
    力扣经典题目解析--最小覆盖子串
    leetcode 649. Dota2 参议院
    华为云服务器搭建
    Docker 容器技术
    【CSS动效实战(纯CSS与JS动效)】02 flex 布局实战(仿 JD 及 gitCode 布局)及 media 自适应初探
    重定向/请求转发
    [JavaScript][AJAX] 前后端交互流程,ajax工作流程
  • 原文地址:https://blog.csdn.net/weixin_44775255/article/details/127636578