用Python画一条祥龙,祝您新年龙腾万里

用Python画一条祥龙,祝您新年龙腾万里

龙年到了,祝大家新年龙行龘龘,龙腾万里!

从2021年开始,我每年都用Python画一幅当年生肖的图。

用Python标准库turtle画一头金牛,祝您新年牛气冲天!
用Python标准库turtle画一只老虎,祝您新年虎虎生威,大吉大利
用Python画一只小兔子,祝您新年前途似锦,大展宏图

今年继续画一条祥龙,为大家送上祝福。

绘图过程录制成了如下视频,点击视频可以先看到效果。

视频展示

用Python画一条祥龙,祝您新年龙腾万里

绘图结果

在这里插入图片描述

实现方法介绍

本文的绘图工具使用Python标准库turtle库,无需安装,导入即可使用。

部分函数用法介绍(如果已经知道基本用法可以跳过此部分):

画布设置

  • title(): 设置窗口的标题。
  • bgpic():设置背景图片。
  • setup(width, height, x, y): 设置窗口大小和窗口左上角在屏幕中的位置。
  • shape():设置鼠标的形状。
  • done(): 绘图结束后,不自动关闭窗口。

画笔设置

  • pencolor(color): 设置画笔颜色。
  • width(): 设置画笔宽度。
  • speed(int): 设置画笔的速度,传入1~10的数字,1最慢,10最快。传入其他值会更快,但是没有鼠标移动的动画效果。
  • penup(): 提起画笔,提起后移动画笔不会留下痕迹。
  • pendown(): 落下画笔,开始绘图前先将画笔落下。
  • setx(value): 设置画笔的x轴坐标。
  • sety(value): 设置画笔的y轴坐标。
  • towards(x, y): 设置画笔指向的点。
  • setheading(): 设置画笔的方向。与towards()配合可以设置画笔指向某个点,如setheading(towards(0, 0))可以设置画笔指向原点。
  • pos(): 返回画笔当前的坐标。鼠标移动一段时间后可以print()打印此函数获取鼠标位置。
  • heading(): 返回画笔当前的方向。

画笔操作

  • circle(radius[, extent=arc]): 画一个圆,传入圆的半径,根据画笔的方向控制圆心的位置,圆心与画笔的方向垂直。传入弧度值可以画出指定弧度的圆弧。
  • left(angle): 画笔左转,传入任意一个目标角度。
  • right(angle): 画笔右转。
  • forward(distance): 画笔前进一段距离。
  • backward(distance): 画笔后退一段距离。
  • goto(x, y): 移动画笔到指定坐标。

颜色填充

  • begin_fill(): 开始填充。
  • fillcolor(color): 设置图形中填充的颜色。
  • end_fill(): 结束填充。

具体画图时,调整画笔的起点,设置不同的转角度数和不同的前进长度,可以得到不同形状的弧线(其实是折线),用弧线构成完整的图形。

部分代码

# coding=utf-8
"""
作者:小斌哥ge
公众号: 小斌哥ge
微信:XiaoBinnGe-
发表时间:2024年1月
"""
from turtle import *
import timedef set_start(x, y, w=1, c='black'):penup()setx(x)sety(y)setheading(towards(0, 0))width(w)pencolor(c)pendown()speed(0)def left_rotate(times, angle, length):for i in range(times):left(angle)forward(length)def right_rotate(times, angle, length):for i in range(times):right(angle)forward(length)def fill_color_patch(x, y, c='black'):set_start(x, y, 1, c=c)begin_fill()set_start(x, y, 1, c=c)forward(1)fillcolor(c)end_fill()def draw_tail():"""尾巴"""fill_color_patch(243, 118, c='black')begin_fill()set_start(243, 118, w=2, c='black')right_rotate(1, 145, 10)left_rotate(3, 15, 8)right_rotate(1, 150, 5)left_rotate(2, 5, 5)left_rotate(1, 70, 3)left_rotate(3, 12, 5)left_rotate(1, 15, 8)right_rotate(3, 13, 9)right_rotate(2, 10, 5)left_rotate(3, 15, 10)right_rotate(1, 140, 1)right_rotate(3, 11, 6)right_rotate(3, 10, 8)left_rotate(3, 15, 9)left_rotate(1, 155, 5)right_rotate(2, 12, 12)right_rotate(3, 16, 11)left_rotate(3, 15, 9)right_rotate(3, 6, 12)right_rotate(1, 140, 5)right_rotate(3, 5, 12)right_rotate(3, 10, 5)left_rotate(2, 6, 13)left_rotate(3, 17, 6)left_rotate(1, 150, 5)right_rotate(4, 17, 12)left_rotate(2, 17, 10)left_rotate(2, 16, 10)left_rotate(1, 3, 5)right_rotate(3, 7, 8.5)right_rotate(1, 150, 6)left_rotate(3, 6, 4)right_rotate(3, 7, 10)right_rotate(3, 11, 5)right_rotate(6, 4, 3)left_rotate(2, 4, 12)left_rotate(1, 20, 6)left_rotate(2, 7, 7)left_rotate(1, 155, 5)right_rotate(5, 7, 5)left_rotate(2, 7, 8)left_rotate(4, 6.5, 5)right_rotate(5, 7, 6.5)right_rotate(1, 155, 5)left_rotate(3, 11, 6)right_rotate(3, 5.5, 10)right_rotate(3, 9, 5)right_rotate(6, 4, 4)left_rotate(2, 4, 6)left_rotate(2, 15, 2)left_rotate(1, 90, 2)left_rotate(2, 15, 2)left_rotate(4, 7, 3)right_rotate(5, 3, 5)left_rotate(3, 3, 5)left_rotate(4, 9, 5)right_rotate(1, 155, 5)right_rotate(3, 11, 10)right_rotate(4, 10, 5)left_rotate(3, 9, 6)left_rotate(3, 2, 5.5)left_rotate(1, 138, 3)right_rotate(2, 3, 6)left_rotate(3, 13, 6)left_rotate(2, 4, 6)right_rotate(1, 155, 5)left_rotate(2, 5, 5)right_rotate(3, 12, 5)right_rotate(4, 10, 5)left_rotate(4, 7, 7)left_rotate(1, 110, 4)left_rotate(3, 15, 3)right_rotate(1, 150, 5)right_rotate(3, 10, 4)left_rotate(3, 5, 5)left_rotate(3, 21, 5)left_rotate(2, 15, 5)right_rotate(1, 165, 5)left_rotate(3, 6, 5)left_rotate(3, 12, 5)goto(243, 118)fillcolor('#F66708')end_fill()if __name__ == '__main__':title('龙腾万里(公众号:小斌哥ge)')wide = 900height = 600screensize(wide, height, '#EDB700')# screensize(wide, height, '#F5C36B')setup(wide + 30, height + 30, 250, 50)shape(name='turtle')time.sleep(2)draw_tail()# draw_body()# draw_head()# draw_foot()# draw_back()# draw_scale()# draw_ribbon()# draw_eye()set_start(1000, 1000)done()

代码获取

代码有2800行,可以点文章下方的名片用WX关注我,在后台回复关键字“龙腾万里”获取完整代码。

这是第四年,希望你每一年都变得越来越好,每年的心愿都能实现,大家相互陪伴,一起前行。明年继续。

声明:转载、二创等使用本文代码,请注明出处。


相关阅读:
用Python画一只小兔子,祝您新年前途似锦,大展宏图
用Python标准库turtle画一只老虎,祝您新年虎虎生威,大吉大利
用Python标准库turtle画一头金牛,祝您新年牛气冲天!

📢欢迎 点赞👍 收藏⭐ 评论📝 关注 如有错误敬请指正!

☟ 学Python,点击下方名片关注我。☟

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot项目打包成jar包供第三方使用实践

文章目录 1.使用者手动配置 basePackages1.1 第三方jar项目1.2 使用者项目1.2.1 使用者配置1.2.2 项目测试 2.使用者通过注解的方式引入2.1 第三方jar项目2.2 使用者项目2.2.1 使用者配置2.2.2 项目测试 3.SpringBoot Starter 方式3.1 第三方jar项目3.2 使用者项目3.2.1 使用者…

Unity3d C# 在WebGL平台加载并解析xml文件实现总结

前言 xml是可扩展标记语言,由一系列的元素、属性、值节点等构成的一个树形结构,除了可读性差一点,别的用于存储一些结构化的数据还是比较方便的。这个功能在Unity3d端的实现是比较方便快捷的: void GetXML1() {string filePath …

【Docker进阶】镜像制作-用Dockerfile制作镜像(一)

进阶一 docker镜像制作 文章目录 进阶一 docker镜像制作用dockerfile制作镜像dockerfile是什么dockerfile格式为什么需要dockerfileDockerfile指令集合FROMMAINTAINERLABELCOPYENVWORKDIR 用dockerfile制作镜像 用快照制作镜像的缺陷: 黑盒不可重复臃肿 docker…

Python 轻量级定时任务调度:APScheduler

简述 APscheduler (Advanced Python Scheduler),作用为按指定的时间规则执行指定的作业。提供了基于日期date、固定时间间隔interval 、以及类似于Linux上的定时任务crontab类型的定时任务。该框架不仅可以添加、删除定时任务,还可以将任务存储到数据库…

ES6中新增Array.of()函数的用法详解

new Array()方法 ES6为Array增加了of函数用一种明确的含义将一个或多个值转换成数组。因为用new Array()构造数组的时候,是有二意性的。 构造时,传一个参数,实际上是指定数组的长度,表示生成多大的数组。 构造时,传…

问题:媒体查询语法中, 可用设备名参数表示“文档打印或预览“的是 #媒体#媒体#其他

问题:媒体查询语法中, 可用设备名参数表示"文档打印或预览"的是 A、C.?screen B.?projection C、A.?print D.?speech 参考答案如图所示

【JavaEE】UDP协议与TCP协议

作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…

【大厂AI课学习笔记】1.4 算法的进步(4)关于李飞飞团队的ImageNet

第一个图像数据库是ImageNet,由斯坦福大学的计算机科学家李飞飞推出。ImageNet是一个大型的可视化数据库,旨在推动计算机视觉领域的研究。这个数据库包含了数以百万计的手工标记的图像,涵盖了数千个不同的类别。 基于ImageNet数据库&#xf…

如何构建多种系统架构支持的 Docker 镜像

如何构建多种系统架构支持的 Docker 镜像 1.概述2.解决方案3.使用manifest案例 1.概述 我们知道使用镜像创建一个容器,该镜像必须与 Docker 宿主机系统架构一致,例如 Linux x86_64 架构的系统中只能使用 Linux x86_64 的镜像创建容器 例如我们在 Linux…

从3天到3小时,“文思助手”让行业专业写作“文思泉涌”

AI 长文写作能否结合用户所在行业规范与需求,定制化体现专业内容?“文思助手”提供了解决方案。基于大语言模型强大理解和生成能力,通过用户自建知识库、个性化语境调整,能够智能地创作出符合专业要求的个性化长文。 厦门苏哒智能…

移动Web——less

1、less-简介 less是一个CSS预处理器,Less文件后缀是.less。扩充了CSS语言,使CSS具备一定的逻辑性、计算能力注意:浏览器不识别Less代码,目前阶段,网页要引入对应的CSS文件VS code插件:Easy LESS&#xff…

Canal 结合 SpringBoot 源码梳理

1、canal是什么,可以用来作什么 canal是阿里开源的一个用于监听数据库binlog,从而实现数据同步的工具。 2、安装 我使用的是1.1.5版本,太高的版本需要的jdk版本和mysql的驱动版本会更高,可以根据自己的环境选择。 如果是自己玩的话…