Python源码26:海龟画图turtle画向日葵

---------------turtle源码集合---------------

Python教程43:海龟画图turtle画小樱魔法阵

Python教程42:海龟画图turtle画海绵宝宝

Python教程41:海龟画图turtle画蜡笔小新

Python教程40:使用turtle画一只杰瑞

Python教程39:使用turtle画美国队长盾牌

Python教程38:使用turtle画动态粒子爱心+文字爱心

Python教程37:使用turtle画一个戴帽子的皮卡丘

Python教程36:海龟画图turtle写春联

Python源码35:海龟画图turtle画中国结

Python源码31:海龟画图turtle画七道彩虹

Python源码30:海龟画图turtle画紫色的小熊

Python源码29:海龟画图turtle画太极图

Python源码28:海龟画图turtle画熊猫

Python源码27:海龟画图turtle画动态圆舞曲

Python源码26:海龟画图turtle画向日葵

Python源码25:海龟画图turtle画小猪佩奇

Python源码24:使用海龟画图turtle画滑板

Python源码23:使用海龟画图turtle画小狗狗

Python源码22:使用海龟画图turtle画今天日期

Python源码21:使用海龟画图turtle画太阳,云朵,房子,绿树

Python源码20:使用海龟画图turtle画一个会动的星空

Python源码19:海龟画图turtle画螺旋的彩色的逐渐放大的文字

Python源码18:使用海龟画图turtle画捂脸表情

Python源码17:使用海龟画图turtle画五星红旗

Python源码16:使用海龟画图turtle画会动的时钟

Python源码15:使用海龟画图turtle画小黄人

Python源码14:使用海龟画图turtle画我的城堡

Python源码分享13:使用海龟画图turtle画一个会眨眼的皮卡丘

Python源码分享12:使用turtle画彩色六边形

Python源码分享11:使用海龟画图turtle画航天火箭

Python源码分享10:使用海龟画图turtle画哆啦A梦

Python源代码分享:02海龟画图五角星

Python源代码分享:03画一个奥运五环图

Python源代码分享:05使用turtle模块绘制一个彩色螺旋图案

Python源代码分享:07画满天繁星

Python源码分享08:使用turtle画一朵玫瑰花

Python源码分享10:使用海龟画图turtle画哆啦A梦

Python源码分享11:使用海龟画图turtle画航天火箭

Python源码分享12:使用turtle画彩色六边形
在这里插入图片描述

# 引用海龟库以及随机库
import turtle as t
import random
import time

light = t.Turtle(visible=False)
wind = t.Turtle(visible=False)


def canvas(size_x=1200, size_y=900):  # 设置画布,有默认值
    t.setup(size_x, size_y)


# 设置线的颜色以及size
def pencil(size=5, color="black"):
    t.pensize(size)
    t.pencolor(color)


def sun():  # 绘制太阳
    light.pensize(5)
    light.pencolor("black")
    sec = int(time.time())
    t.penup()  # 画红色点
    t.goto(-530, 310)
    t.pendown()
    t.dot(100, "red")
    for i in range(1, 19):  # 阳光效果
        light.penup()
        light.goto(-530, 310)
        light.seth(i * 20)
        light.forward(55)
        light.pendown()
        if (i + sec) % 2 == 1:
            light.forward(15)
        else:
            light.forward(7)


def plant():  # 绘制天空以及大地
    t.penup()  # 每个绘制函数开头都写了这个,防止龟龟绘制另外的图像移动时留下痕迹
    length = 900 * 0.318  # 将画布的纵向黄金分割
    t.home()
    t.goto(600, -450)

    t.fillcolor("#DAA520")  # 分割填充大地
    t.begin_fill()
    t.left(90)
    t.forward(length)
    t.left(90)
    t.forward(1200)
    t.left(90)
    t.forward(length)
    t.left(90)
    t.forward(1200)
    t.end_fill()

    t.home()  # 填充天空
    t.goto(600, length - 450)
    t.fillcolor("#B0C4DE")
    t.begin_fill()
    t.left(90)
    t.forward(900 - length)
    t.left(90)
    t.forward(1200)
    t.left(90)
    t.forward(900 - length)
    t.left(90)
    t.forward(1200)
    t.end_fill()


def butterfly(pos_x=0, pos_y=0):  # 绘制蝴蝶,这里会随机生成位置以及蝴蝶大小、颜色
    light.penup()
    light.goto(pos_x, pos_y)
    light.pendown()
    light.pensize(2)
    light.seth(45)

    color = ["#FF00FF", "#87CEFA", "#0000EE", "#FF4500", "#00FF00", "#00E5EE", "#FFFAFA"]  # 一个颜色表,以及size表
    size = [6, 7, 8, 9, 10, 11, 12]
    tep_size = random.choice(size)
    light.fillcolor(random.choice(color))
    light.begin_fill()
    light.circle(tep_size, 270)  # 绘制翅膀
    light.right(135)

    light.pensize(3)
    light.forward(tep_size / 2)
    light.right(45)
    light.forward(tep_size / 2)
    light.back(tep_size / 2)
    light.left(70)
    light.forward(tep_size / 2)
    light.back(tep_size / 2)
    light.right(25)
    light.pensize(4)
    light.back(2.05 * tep_size)

    light.seth(-90)
    light.pensize(2)
    light.circle(tep_size, -180)
    light.pensize(4)
    light.left(90)
    light.forward(tep_size * 2)
    light.back(tep_size * 2.5)
    light.end_fill()


def botany(pos_x=0, pos_y=0, direction=0, flower=1, bend=10):  # 植物函数,绘制向日葵,向日葵会迎风倒,效果很到位
    light.pensize(3)
    light.pencolor("black")
    light.penup()
    light.goto(pos_x, pos_y)
    light.pendown()
    light.left(90)
    light.fillcolor("#00CD00")
    light.begin_fill()

    light.circle(50, 90)  # 绘制叶片
    light.left(90)
    light.circle(50, 90)

    light.penup()
    light.goto(pos_x, pos_y)
    light.pendown()

    light.seth(-90)
    light.pensize(6)
    light.forward(50)
    light.back(50)

    light.pensize(3)
    light.circle(50, -90)
    light.right(90)
    light.circle(50, -90)
    light.end_fill()
    if flower:  # 判断是否有花,这里默认有花
        light.penup()
        light.goto(pos_x, pos_y)
        light.pendown()
        light.pensize(4)
        if direction:
            light.seth(80)  # 绘制秆
            light.circle(130 - 5 * bend, 70 + 5 * bend, None)
        else:
            light.seth(-80)
            light.circle(130 - 5 * bend, -70 - 5 * bend, None)
            light.right(180)
        tep_x, tep_y = light.xcor(), light.ycor()
        light.forward(13)
        light.right(30)
        for i in range(6):  # 绘制花瓣
            light.fillcolor("#FFD700")
            light.begin_fill()
            light.circle(15, 300)
            light.left(120)
            light.end_fill()
        light.goto(tep_x, tep_y)
        light.dot(36, "#FFB90F")


def cloud(pos_x=0, pos_y=0, size=20):  # 绘制云
    pos = int(time.time())
    pos %= 50
    light.penup()  # 云没有要边框,所以没有pendown
    light.goto(pos*8+pos_x, pos_y)

    light.fillcolor("#E6E6FA")
    light.begin_fill()
    light.seth(-80)
    light.circle(size, 110)
    for i in range(1, 6):  # 绘制下半部分
        light.right(100)
        light.circle(size, 110)
    light.left(120)
    for i in range(1, 7):  # 绘制上半部分,上边进行了六次循环,但是之前就进行了一次绘制,这里有七次循环
        light.right(100)
        light.circle(size, 110)
    light.end_fill()


# def draw(x, y):                               # 这里是之前调试用的拖拽函数响应函数,不需使用
#     t.goto(x, y)
#     print(t.xcor(), t.ycor())


# def person(pos_x=0, pos_y=0):                 # 绘制人的函数,效果很拉跨,舍弃
#     t.penup()
#     t.goto(pos_x, pos_y)
#     t.pendown()
#
#     t.dot(44, "#FFDEAD")
#     t.right(90)
#     t.penup()
#     t.forward(25)
#     t.right(15)
#     t.pendown()
#     pencil(10)
#     t.forward(50)
#
#     t.right(35)
#     t.forward(50)
#     t.back(50)
#     t.left(90)
#     t.forward(27)
#     t.right(110)
#     t.forward(23)
#
#     t.penup()
#     t.goto(pos_x, pos_y)
#     t.seth(-90)
#     t.forward(25)
#     t.right(15)
#     t.forward(20)
#     t.right(60)
#     t.pendown()
#     t.forward(50)
#     tep_x1, tep_y1 = t.xcor(), t.ycor()
#     t.back(50)
#     t.right(160)
#     t.forward(30)
#     t.seth(90)
#     t.forward(20)
#
#     t.penup()
#     t.goto(tep_x1, tep_y1)
#     t.seth(-145)
#     pencil(6)
#     t.pendown()
#     t.forward(50)
#     t.right(90)
#     t.forward(20)
#     t.right(90)
#     t.forward(15)
#     t.right(90)
#     t.forward(20)
#     t.left(90)
#     t.forward(150)


def star(pos_x=0, pos_y=0, size=10):  # 绘制星星函数
    color = ["#FFFFE0", "#FFFF00"]
    light.penup()
    light.goto(pos_x, pos_y)
    angle = random.randint(0, 180)
    light.seth(angle)
    light.fillcolor(random.choice(color))
    light.begin_fill()
    for i in range(5):  # 这个144度是查的资料
        light.right(144)
        light.forward(size)
    light.end_fill()


def wind():  # 风函数,让图像看起来更有感觉,就是一条直线,加两个圆
    pos = int(time.time())
    pos %= 5
    color = ["#D3D3D3", "#CDCDB4"]
    tep_color = random.choice(color)
    light.penup()
    light.goto(pos*80-1000, 50)
    light.seth(0)
    light.pendown()
    light.pensize(5)
    light.pencolor(tep_color)
    light.forward(500)
    light.pensize(4)
    light.pencolor(tep_color)
    light.left(45)
    light.circle(50, 180)
    light.pensize(3)
    light.pencolor(tep_color)
    light.circle(30, 90)

    tep_color = random.choice(color)
    light.penup()  # 画圈圈
    light.goto(pos*140-1040, 80)
    light.seth(0)
    light.pendown()
    light.pensize(5)
    light.pencolor(tep_color)
    light.forward(400)
    light.pensize(4)
    light.pencolor(tep_color)
    light.left(45)
    light.circle(40, 180)
    light.pensize(3)
    light.pencolor(tep_color)
    light.circle(25, 90)


def lie():  # 这个函数是表达我对python的喜爱
    t.penup()
    t.goto(0, -360)
    pencil(0, "#FFA54F")
    t.write("节日快乐", align='center', font=('arial', 75, 'normal'))
    t.hideturtle()


def dynamic():
    light.clear()
    sun()
    star(200, 200)  # 右上角有星星注意观察 0.0
    star(260, 230, 15)
    star(180, 300)
    star(300, 100, 15)
    star(500, 290)
    star(420, 310, 15)
    star(300, 200)
    star(260, 230, 15)
    star(350, 352)
    star(500, 180, 15)
    star(560, 352)
    cloud(-530, 280, 20)
    cloud(300, 250, 30)
    wind()

    bend = int(time.time())
    bend %= 5
    bend += 14
    light.seth(-100-bend)  # 初始向日葵叶片角度
    for i in range(14):  # 生成向日葵

        if i % 2 == 0:
            botany(-520 + i * 50, -132, 0, 1, bend - i)
            botany(-340 + i * 50, -132, 0, 1, bend - i)
        else:
            botany(-430 + i * 50, -142, 0, 1, bend - i)
            botany(-230 + i * 50, -142, 0, 1, bend - i)
    pos_x = [45, -96, -100, 410, 300, 580, 230, -50, -400, -320, -212]
    pos_y = [45, -96, -100, 0, 20, 30, 29, -50, -20, -43, 10]
    for i in range(6):  # 生成蝴蝶,这里便于观察到结果,蝴蝶有点大
        butterfly(random.choice(pos_x), random.choice(pos_y))
    t.ontimer(dynamic, 1000)


def piant():  # 这里是将绘制全放在这个函数里,让main看起来简洁
    t.tracer(False)
    t.delay(0)
    canvas()
    pencil()
    plant()
    lie()
    dynamic()


if __name__ == "__main__":
    piant()
    # t.ondrag(draw, btn=1, add=None)
    t.mainloop()

完毕!!感谢您的收看

----------★★历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/325602.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

KT148A语音芯片智能锁扩展语音地址以及如何支持大量小文件的打包

一、语音芯片应用于智能锁的需求 智能锁的语音播放需求中,有很多需要多国语言合并在一起的需求 其中语音文件数多,并且每个语音文件小的特点 如果使用OTP的语音芯片,就很麻烦,因为用户不可烧录,调试也很繁琐 同时大…

Java 开源扫雷游戏 JMine 发布新版 3.0 及介绍视频

Java 开源扫雷游戏 JMine 发布新版 3.0 及介绍视频 Java 开源扫雷游戏 JMine 是笔者开发的基于 Swing 的 Java 扫雷游戏,现已发布新版 3.0 及其介绍视频。视频请见: https://www.bilibili.com/video/BV1RK4y1z7Qz/ 老版本 JMine 1.2.5 的介绍视频请见…

跨越数字化鸿沟:企业转型的领导力与执行力,数字化转型浪潮下创新、变革与持续发展

在数字化转型的浪潮下,企业面临着巨大的机遇与挑战。如何成功跨越数字化鸿沟,实现转型发展,是企业领导者必须深思的问题。领导力、执行力与创新、变革、持续发展之间的关系成为关键。本文将深入探讨这些因素如何共同作用,帮助企业…

GZ075 云计算应用赛题第10套

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷10 某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenS…

[java数据结构] ArrayList和LinkedList介绍与使用

目录 (一) 线性表 (二) ArrayList 1. ArrayList的介绍 2. ArrayList的常见方法和使用 3. ArrayList的遍历 4. ArrayList的模拟实现 5. ArrayList的优缺点 (三) LinkedList 1. LinkedList的介绍 2. LinkedList的常见方法和使用 3. LinkedList的遍历 4. LinkedList的…

上门按摩APP系统公众号H5搭建能为客户带来哪些便捷。

大家好!今天我来给大家介绍一下上门按摩系统H5搭建。你有没有曾经因为工作疲劳、肌肉酸痛而感到身体不适?或者是因为长时间坐在电脑前,感觉脖子和肩膀快要僵硬了?如果你有这样的困扰,那么上门按摩系统公众号绝对是你的…

黑马程序员——javase基础——day01——Java入门IDEA基础语法

目录: Java入门 Java简介JDK的下载和安装第一个程序常见问题常用DOS命令Path环境变量IDEA IDEA概述和安装IDEA中HelloWorldIDEA中基本配置&注释IDEA中常用快捷键IDEA中模块操作基础语法 字面量数据类型变量变量的案例 手机信息描述疫情防控信息采集表变量的注意…

linux云服务器 如何将数据盘挂载到系统盘上面?

先认识认识下面几个常用命令 lsblk 命令:查看设备列表,也就是能看到系统盘和数据盘一般为:vda(系统盘)、vdb(数据盘)等等 lsblk"ls" 是 "list" 的缩写: lsblk…

29K star!关于shell,你需要的都在这里

Awesome 是GitHub上一个神奇的单词,搜索Awesome可以发现非常多精彩的汇总性项目,涉及到各种方面,而且star都非常多。 今天我们推荐的开源项目帮你整理了玩转shell所需的一切,本项目目前在GitHub已超过29K Star,它就是…

Go后端开发 -- 数组 slice map range

Go后端开发 – 数组 && slice && map && range 文章目录 Go后端开发 -- 数组 && slice && map && range一、数组1.数组的声明和初始化2.数组的传参 二、slice切片1.slice的定义和初始化2.len()和cap()函数3.空切片4.切片截取5…

新书速览|数据科学技术:文本分析和知识图谱

百分科技书解数据科学,文本分析、知识图谱详解,实战案例呈现,助你深入理解技术原理,行业应用启发,助力创新发展。 本书内容 数据科学的关键技术包括数据存储计算、数据治理、结构化数据分析、语音分析、视觉分析、文本…

牛客周赛 Round 5 解题报告 | 珂学家 | 思维场

前言 剑,和茶一样,只有细细品味,才能理解它的风雅。 整体评价 挺难的一场比赛,C题差点点错科技树(想着用Dsu On Tree), D题开始上难度,但是只是分析其实就是一个区间求交集的脑筋急转弯,E题盲猜是菊花图。…

Ansys Zemax | 如何使用光学制造全息图修正像差

附件下载 联系工作人员获取附件 本文介绍了利用光学全息图降低单透镜像差的方法。在描述了表示全息图构造光束的两个 ZMX 文件之后,本文演示了如何在重现文件中设置 OFH。然后解释了如何轻松地从重现文件中访问任何结构造光束变量,以实现衍射受限单透镜…

【分享】我发布的视频教程列表

为了方便大家的观看,我将已经发布的视频列表进行了整理,大家可以按照自己习惯的网站进行访问。 My Key Published Videos Series | video_published 同时,这个列表会随时更新,大家可以在进度条上了解上传的比例。 欢迎大家提出…

动态路由协议

文章目录 一、动态路由协议二、管理距离(Administrative Distance)三、静态路由四、环回接口五、缺省路由(默认路由)六、动态路由协议,RIP距离矢量路由协议RIP解决环路问题的机制RIP配置RIP案例1RIPV2的路由汇总 一、动…

枚举类状态做批量查询以及范围查询优化

文章目录 前言问题目标现存的状态思路三大状态状态计算(1)状态计算(2) 工具类示例 前言 往往项目中有一些类似于订单类的数据中有很多状态相关的流转操作,这些时候有可能因为某些业务逻辑要对状态进行范围查询或者多值匹配、排除之类的操作。 问题 在进行数据查询…

SpringBoot集成Mybatis Plus【附源码】

1. 背景 作为SpringBoot集成中间件其中的一篇文章吧,既然打算出这么一个系列了,争取做到虽小却全,又精又美的一个系列吧。 Mybatis Plus作为我入行以来,一直接触的一个中间件,也必须集成一下。同时也为初学者带来一些…

大数据传输慢的真正原因与解决方案

随着企业数据不断增长,大数据传输已成为一项至关重要的任务。然而,许多企业在处理大数据传输时频繁遭遇传输速度慢的问题。本文将深入探讨大数据传输速度慢的根本原因,并提供一些切实有效的解决方案。 大数据传输在企业中的重要性不言而喻&am…

旧衣回收小程序搭建:降低企业成本,提高回收效率!

在人们环保意识提升下,旧衣回收行业受到了大众的关注,同时旧衣回收具有门槛低、利润大的优势。在我国,回收行业不仅帮助普通人就业获利,还对环保做出了较大贡献。因此,旧衣回收行业成为了当下的热门商业模式&#xff0…

行为树(Behavior Trees)

行为树(Behavior Trees)是一种在游戏开发中广泛使用的AI设计模式,主要用于描述AI的行为和决策过程,实现更加智能和自然的游戏AI。它由多个节点组成,每个节点代表一个行为或决策,按照特定的方式连接在一起&a…