用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.mzph.cn/news/666615.shtml

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

相关文章

vscode 括号 python函数括号补全

解决方法 在setting.json中添加 “python.analysis.completeFunctionParens”: true 打开设置; 点击图中按钮打开setting.json文件 添加 “python.analysis.completeFunctionParens”: true

apipost 简单的性能压测总结

1、简单的使用机型牌评估 1)jdk默认256M给100用,推荐给1000人同时用JVM 堆栈建议2G~4G(目前定了机型4核8G内存 2T磁盘做radio0存储); 2)数据库配置文件写了占了2G内存(my.cnf文件&#xff09…

Python算法100例-1.3 牛顿迭代法求方程根

完整源代码项目地址,关注博主私信’源代码’后可获取 1.问题描述 编写用牛顿迭代法求方程根的函数。方程为 a x 3 b x 2 c x d 0 ax^3bx^2cxd0 ax3bx2cxd0,系数a、b、c、d由主函数输入,求x在1附近的一个实根。求出根后&…

详解SkyWalking前端监控的性能指标

SkyWalking 从8.2.0版本开始支持对前端浏览器端的性能进行监控,不仅可以像以前一样监控浏览器发送给后端服务的与请求,还能看到前端的渲染速度、错误日志等信息——这些信息是获取最终用户体验的最有效指标。实现的方式是引入skywalking-client-js库&…

STL篇三:list

文章目录 前言1.list的介绍和使用1.1 list的介绍1.2 list的使用1.3 list的迭代器的失效 2.list的模拟实现2.1 结点的封装2.2 迭代器的封装2.2.1 正向迭代器2.2.2 反向迭代器 2.3 list功能的实现2.3.1 迭代器的实例化及begin()、end() 2.3.2 构造函数2.3.3 赋值运算符重载2.3.4 …

YGG 为 Axie Infinity: Origins 发布超级任务游戏内训练器,深化对 Ronin 的支持

自 2023 年以来,Ronin 已成为增长最快的游戏区块链。由于 Axie Infinity 和 Pixels 等游戏的持续成功,日活跃用户数量至少增长了 10 倍。在过去的一年里,有超过 120 万个新地址加入,并且,这个数字还在持续增长。 ​Ron…

科技助力快乐养老,山东恒康养老服务中心与清雷科技达成合作

谈到养老服务,大家或许会有一些刻板印象。 如果说一个落落大方、笑容温柔的90后女孩是一家养老院的院长,很多人都会感到诧异。但就是这位来自山东省龙口市恒康养老服务中心的90后院长韩雨,实现了百分百入住率、百分百好评的养老服务奇迹。 韩…

北斗卫星在物联网时代的应用探索

北斗卫星在物联网时代的应用探索 在当今数字化时代,物联网的应用已经深入到人们的生活中的方方面面,让我们的生活更加智能便捷。而北斗卫星系统作为我国自主研发的卫星导航系统,正为物联网的发展提供了强有力的支撑和保障。本文将全面介绍北…

【软件设计师笔记】深入探究操作系统

【软件设计师笔记】计算机系统基础知识考点(传送门) 💖 【软件设计师笔记】程序语言设计考点(传送门) 💖 🐓 操作系统的作用 1.通过资源管理提高计算机系统的效率 2.改善人机界面向用户提供友好的工作环境 🐓 操作系统的特征 …

nodejs 事件循环

浏览器的事件循环比较熟悉了,也来了解下 node 的。 参考来源: https://nodejs.org/en/guides/event-loop-timers-and-nexttick/ https://juejin.cn/post/6844903999506923528 事件循环分为 6 个阶段,图中每个框都是一个阶段,每个阶…

Acwing---827.双链表

双链表 1.题目2.基本思想3.代码实现 1.题目 实现一个双链表,链表初始为空,支持5种操作: 在最左侧插入一个数;在最右侧插入一个数;将第 k k k 个插入的数删除;在第 k k k个插入的数左侧插入一个数&#…

安装Canal

安装和配置Canal 下面我们就开启mysql的主从同步机制,让Canal来模拟salve 1.开启MySQL主从 Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主从功能才可以。 这里以之前用Docker运行的mysql为例: 1.1.开启binlog 打开mysql容器…

景联文科技受邀出席全国信标委生物特征识别分委会二届五次全会

全国信息技术标准化技术委员会生物特征识别分技术委员会(SAC/TC28/SC37,以下简称“分委会”)二届五次全会于2024年1月30日在北京顺利召开,会议由分委员秘书长王文峰主持。 分委会由国家标准化管理委员会批准成立,主要负…

社交平台内容创作未来会有哪些方向?

内容为王的时代下,企业如果想要通过社交平台占据用户心智,可以找到适合自己的内容营销策略,好的内容能够与消费者建立信任关系,今天 媒介盒子就来和大家聊聊:社交平台内容创作的方向。 一、 内容逐渐细分 相比于原来…

WorkPlus打造个性化移动门户,实现协作创新与工作高效

在移动办公逐渐成为企业工作方式的主流趋势下,构建高效的移动门户平台对于提升信息传递与团队协作效能至关重要。移动门户作为企业信息交流和协作的重要枢纽,WorkPlus以其领先的功能和卓越的性能,助力企业实现智能移动门户平台的搭建。 为何…

在WORD中设置公式居中编号右对齐设置方式

1 软件环境 Office Microsoft Office LTSC 专业增强版2021 2 最终效果 3 操作步骤 编辑公式;光标定位到公式的最后(不是行的最后);输入#编号光标定位在公式最后(不是行的最后),按Enter键回车…

R3 下动态加载的模块的保护(一)

前言 在 R3 下防护动态加载的模块不被意外卸载需要很多的策略,比如:LDR 断链、VAD 记录擦除、PE 头擦除、修改入口函数、内存注入等。文本我们将浅析模块静态化技术这一项技术。模块静态化是一个很常见的模块保护技术,它通过修改模块的引用计…

建筑工程答案在哪搜?九个免费好用的大学生搜题工具 #经验分享#知识分享

大学生必备,这条笔记大数据一定定要推给刚上大学的学弟学妹!! 1.七燕搜题 这是一个公众号 解题步骤详细解析,帮助你理解问题本质。其他考试领域也能找到答案。 下方附上一些测试的试题及答案 1、据《素问太阴阳明论》所论&…

爬取58二手房并用SVR模型拟合

目录 一、前言 二、爬虫与数据处理 三、模型 一、前言 爬取数据仅用于练习和学习。本文运用二手房规格sepc(如3室2厅1卫)和二手房面积area预测二手房价格price,只是练习和学习,不代表如何实际意义。 二、爬虫与数据处理 import requests import cha…

关于Clone

关于Clone 一般情况下,如果使用clone()方法,则需满足以下条件。 1、对任何对象o,都有o.clone() ! o。换言之,克隆对象与原型对象不是同一个对象。 2、对任何对象o,都有o.clone().getClass() o.getClass()。换言之&a…