Python小黄人

news2024/12/27 7:29:07

小黄人

文章目录

  • 系列目录
  • 写在前面
  • 完整代码
  • 代码分析
      • 1. 初始化部分
      • 2. 身体部分
      • 3. 右眼睛部分
      • 4. 左眼睛部分
      • 5. 嘴巴部分
      • 6. 裤子部分
      • 7. 脚部部分
      • 8. 手部部分
      • 9. 头顶装饰部分
      • 10. 代码总结
  • 写在后面

系列目录

序号直达链接
爱心系列
1Python制作一个无法拒绝的表白界面
2Python满屏飘字表白代码
3Python无限弹窗满屏表白代码
4Python李峋同款可写字版跳动的爱心
5Python流星雨代码
6Python漂浮爱心代码
7Python爱心光波代码
8Python普通的玫瑰花代码
9Python炫酷的玫瑰花代码
10Python多彩的玫瑰花代码
节日系列
1Python动漫风烟花秀代码
2Python新年烟花秀代码
3Python圣诞礼物代码
4Python画圣诞树代码
5Python可爱版圣诞树丨绿色
6Python可爱版圣诞树丨粉色
7Python大雪纷飞代码
8Python生日蛋糕代码
9Python五彩气球代码
10Python国庆祝福代码
11Python万圣礼物代码
12Python愚人节礼物代码
13Python浪漫星空代码
14Python樱花树代码
动漫系列
1Python名侦探柯南
2Python喜羊羊
3Python懒羊羊
4Python沸羊羊
5Python小灰灰
6Python小香香
7Python灰太狼
8Python海绵宝宝
9Python哆啦A梦
10Python凯蒂猫
11Python猫和老鼠
12Python草莓熊
13Python迷你皮卡丘
14Python高级皮卡丘
15Python豪华皮卡丘
16Python史迪仔
17Python小熊猫
18Python蜘蛛侠
19Python可爱版蜡笔小新
20Python萌萌的蜡笔小新
21Python罗小黑
22Python猪猪侠
炫酷系列
1  Python张万森下雪了
2Python一闪一闪亮晶晶
3Python黑客帝国代码雨
4Python七彩花朵
5Python模拟3D星空
6Python金榜题名
7Python满天星

写在前面

Python绘制小黄人的完整代码。

完整代码

import turtle
turtle.setup(1.0, 1.0)
turtle.title('小黄人')
t = turtle.Turtle()
t.screen.delay(0)
turtle.colormode(255)
t.hideturtle()
t.speed(10)
t.penup()
t.pensize(4)
t.goto(100, 0)
t.pendown()
t.left(90)
t.color((0, 0, 0), (255, 255, 0))
# 身体绘制上色
t.begin_fill()
t.forward(200)
t.circle(100, 180)
t.forward(200)
t.circle(100, 180)
t.end_fill()
# 右眼睛绘制上色
t.pensize(12)
t.penup()
t.goto(-100, 200)
t.pendown()
t.right(100)
t.circle(500, 23)

t.pensize(3)
t.penup()
t.goto(0, 200)
t.pendown()
t.seth(270)
t.color("black", "white")
t.begin_fill()
t.circle(30)
t.end_fill()

t.penup()
t.goto(15, 200)
t.pendown()
t.color("black", "black")
t.begin_fill()
t.circle(15)
t.end_fill()

t.penup()
t.goto(35, 205)
t.color("black", "white")
t.begin_fill()
t.circle(5)
t.end_fill()
# 左眼睛绘制上色
t.pensize(3)
t.penup()
t.goto(0, 200)
t.pendown()
t.seth(90)
t.color("black", "white")
t.begin_fill()
t.circle(30)
t.end_fill()

t.penup()
t.goto(-15, 200)
t.pendown()
t.color("black", "black")
t.begin_fill()
t.circle(15)
t.end_fill()

t.penup()
t.goto(-35, 205)
t.color("black", "white")
t.begin_fill()
t.circle(5)
t.end_fill()

# 嘴绘制上色
t.penup()
t.goto(-20, 100)
t.pendown()
t.seth(270)
t.color("black", "white")
t.begin_fill()
t.circle(20, 180)
t.left(90)
t.forward(40)
t.end_fill()

# 裤子绘制上色
t.penup()
t.goto(-100, 0)
t.pendown()
t.seth(0)
t.color("black", "blue")
t.begin_fill()
t.forward(20)
t.left(90)
t.forward(40)
t.right(90)
t.forward(160)
t.right(90)
t.forward(40)
t.left(90)
t.forward(20)
t.seth(270)
t.penup()
t.goto(-100, 0)
t.circle(100, 180)
t.end_fill()

# 左裤子腰带
t.penup()
t.goto(-70, 20)
t.pendown()
t.color("black", "blue")
t.begin_fill()
t.seth(45)
t.forward(15)
t.left(90)
t.forward(60)
t.seth(270)
t.forward(15)
t.left(40)
t.forward(50)
t.end_fill()
t.left(180)
t.goto(-70, 30)
t.dot()

# 右裤腰带
t.penup()
t.goto(70, 20)
t.pendown()
t.color("black", "blue")
t.begin_fill()
t.seth(135)
t.forward(15)
t.right(90)
t.forward(60)
t.seth(270)
t.forward(15)
t.right(40)
t.forward(50)
t.end_fill()

t.left(180)
t.goto(70, 30)

t.dot()

# 脚
t.penup()
t.goto(4, -100)
t.pendown()
t.seth(270)
t.color("black", "black")
t.begin_fill()
t.forward(30)
t.left(90)
t.forward(40)
t.seth(20)
t.circle(10, 180)
t.circle(400, 2)
t.seth(90)
t.forward(20)
t.goto(4, -100)
t.end_fill()

t.penup()
t.goto(-4, -100)
t.pendown()
t.seth(270)
t.color("black", "black")
t.begin_fill()
t.forward(30)
t.right(90)
t.forward(40)
t.seth(20)
t.circle(10, -225)
t.circle(400, -3)
t.seth(90)
t.forward(21)
t.goto(-4, -100)
t.end_fill()

# 左手
t.penup()
t.goto(-100, 50)
t.pendown()
t.seth(225)
t.color("black", "yellow")
t.begin_fill()
t.forward(40)
t.left(90)
t.forward(35)
t.seth(90)
t.forward(50)
t.end_fill()
# 右手
t.penup()
t.goto(100, 50)
t.pendown()
t.seth(315)
t.color("black", "yellow")
t.begin_fill()
t.forward(40)
t.right(90)
t.forward(36)
t.seth(90)
t.forward(50)
t.end_fill()

#
t.penup()
t.goto(0, -100)
t.pendown()
t.forward(30)

#
t.penup()
t.goto(0, -20)
t.pendown()
t.color("yellow")
t.begin_fill()
t.seth(45)
t.forward(20)
t.circle(10, 180)
t.right(90)
t.circle(10, 180)
t.forward(20)
t.end_fill()

#
t.penup()
t.color("black")
t.goto(-100, -20)
t.pendown()
t.circle(30, 90)

t.penup()
t.goto(100, -20)
t.pendown()
t.circle(30, -90)
# 头顶
t.penup()
t.goto(2, 300)
t.pendown()
t.begin_fill()
t.seth(135)
t.circle(100, 40)
t.end_fill()

t.penup()
t.goto(2, 300)
t.pendown()
t.begin_fill()
t.seth(45)
t.circle(100, 40)
t.end_fill()
turtle.done()

代码分析

这段代码使用了Python中的turtle模块绘制了一个可爱的“小黄人”形象,包括其身体、眼睛、嘴巴、裤子、手脚以及头顶装饰等部分。以下是详细的代码分析:


1. 初始化部分

import turtle
turtle.setup(1.0, 1.0)
turtle.title('小黄人')
t = turtle.Turtle()
t.screen.delay(0)
turtle.colormode(255)
t.hideturtle()
t.speed(10)
  • 导入turtle模块,用于绘图。
  • 设置画布大小为全屏setup(1.0, 1.0)
  • 设置窗口标题为“小黄人”。
  • 创建画笔t,并设置绘图的颜色模式为RGB 255模式。
  • 隐藏画笔箭头hideturtle()以避免影响视觉效果,并将绘图速度设置为最快模式。

2. 身体部分

t.penup()
t.pensize(4)
t.goto(100, 0)
t.pendown()
t.left(90)
t.color((0, 0, 0), (255, 255, 0))
t.begin_fill()
t.forward(200)
t.circle(100, 180)
t.forward(200)
t.circle(100, 180)
t.end_fill()
  • 设置画笔粗细为4,调整位置到(100, 0)并开始绘制。
  • 使用黄色填充(255, 255, 0),通过两段直线和两个半圆形成“小黄人”的椭圆形身体。

3. 右眼睛部分

t.pensize(12)
t.penup()
t.goto(-100, 200)
t.pendown()
t.right(100)
t.circle(500, 23)
...
  • 画眼镜框,设置线条粗细为12,利用圆弧circle绘制黑色镜框。
  • 右眼由三层组成:外层白色圆(眼球)、中间黑色圆(瞳孔)和内层小白点(高光),分别使用填充绘制,表现眼睛的立体感。

4. 左眼睛部分

t.penup()
t.goto(0, 200)
t.pendown()
t.seth(90)
t.color("black", "white")
...
  • 左眼的绘制与右眼类似,位置对称,绘制步骤完全相同,包括镜框、眼球、瞳孔和高光。

5. 嘴巴部分

t.penup()
t.goto(-20, 100)
t.pendown()
t.seth(270)
t.color("black", "white")
t.begin_fill()
t.circle(20, 180)
t.left(90)
t.forward(40)
t.end_fill()
  • 使用半圆circle绘制弯曲的嘴巴,并填充白色,增加“小黄人”微笑的效果。

6. 裤子部分

t.penup()
t.goto(-100, 0)
t.pendown()
t.seth(0)
t.color("black", "blue")
t.begin_fill()
...
  • 裤子主要由矩形、曲线和腰带组成。
  • 利用多段线和填充蓝色绘制裤子,同时添加左右腰带,通过计算斜角和长度表现出裤子的层次感。

7. 脚部部分

t.penup()
t.goto(4, -100)
t.pendown()
t.seth(270)
t.color("black", "black")
t.begin_fill()
...
  • 左右脚分别绘制,形状为矩形加上圆弧的组合。
  • 使用黑色填充,模仿鞋子的形状,位置与身体对称。

8. 手部部分

t.penup()
t.goto(-100, 50)
t.pendown()
t.seth(225)
t.color("black", "yellow")
t.begin_fill()
t.forward(40)
t.left(90)
...
  • 左右手臂的绘制类似,分别从身体两侧延伸。
  • 使用黄色填充,线条粗细和角度设置得当,体现“小黄人”的简洁风格。

9. 头顶装饰部分

t.penup()
t.goto(2, 300)
t.pendown()
t.begin_fill()
t.seth(135)
t.circle(100, 40)
t.end_fill()
...
  • 在头顶添加两组对称的装饰弧线,利用填充使其更为突出,增加角色的趣味性。

10. 代码总结

这段代码巧妙地利用Turtle库的图形绘制功能,通过简单的几何图形组合、颜色填充和对称设计,构建了“小黄人”的可爱形象。代码结构清晰,采用模块化的方式分部分绘制身体、眼睛、嘴巴、裤子等部位,既体现了代码的逻辑性,又便于后续修改或扩展。

适合初学者理解Turtle绘图的基本概念,包括坐标系操作、颜色填充、线条粗细、角度控制等内容。

写在后面

我是一只有趣的兔子,感谢你的喜欢。

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

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

相关文章

操作系统 | 学习笔记 | 王道 | 2.2处理机调度

2.2 处理机调度 文章目录 2.2 处理机调度2.2.1 调度的概念2.2.2 调度的目标2.2.3 调度的实现2.2.4 典型的调度算法错题总结: 2.2.1 调度的概念 调度的基本概念 处理机调度是对处理机进行分配,即从就绪队列中按照一定的算法(公平、高效的原则&…

算法与数据结构(1)

一:数据结构概论 数据结构分为初阶数据结构(主要由C语言实现)和高阶数据结构(由C实现) 初阶数据结构当中,我们会学到顺序表、链表、栈和队列、二叉树、常见排序算法等内容。 高阶数据结构当中&#xff0…

【Android】EventBus的使用及源码分析

文章目录 介绍优点基本用法线程模式POSTINGMAINMAIN_ORDEREDBACKGROUNDASYNC 黏性事件 源码注册getDefault()registerfindSubscriberMethods小结 postpostStickyunregister 介绍 优点 简化组件之间的通信 解耦事件发送者和接收者在 Activity、Fragment 和后台线程中表现良好避…

深度学习笔记——生成对抗网络GAN

本文详细介绍早期生成式AI的代表性模型:生成对抗网络GAN。 文章目录 一、基本结构生成器判别器 二、损失函数判别器生成器交替优化目标函数 三、GAN 的训练过程训练流程概述训练流程步骤1. 初始化参数和超参数2. 定义损失函数3. 训练过程的迭代判别器训练步骤生成器…

成都睿明智科技有限公司抖音电商服务的新引擎

在这个短视频风起云涌的时代,抖音不仅成为了人们休闲娱乐的首选,更是商家们竞相角逐的电商新蓝海。在这片充满机遇与挑战的海域中,成都睿明智科技有限公司如同一艘装备精良的航船,引领着众多企业向抖音电商的深水区进发。今天&…

51c视觉~YOLO~合集4

我自己的原文哦~ https://blog.51cto.com/whaosoft/12512597 1、Yolo8 1.1、检测PCB元件 技术世界正在以惊人的速度发展,而这种转变的核心是一个革命性的工具 — 计算机视觉。它最有趣的应用之一是电子印刷电路板 (PCB) 的检测和分析。本文…

Jenkins的使用

文章目录 一、Jenkins是什么\有什么用\与GitLab的对比二、Jenkins的安装与配置Jenkins的安装方式在Linux上安装Jenkins:在Windows上安装Jenkins:配置Jenkins: (可选)配置启动用户为root(一定要是root吗??…

图论入门教程:GTM173 Graph Theory

这是本图论的入门教材,Graph Theory Fifth Edition,隶属于著名的GTM系列,作者是Reinhard Diestel。这是本对新人友好的教材,之前本科上离散数学的课时,因为涉及到图论,而学校的课堂又太水让我心生不满&…

QT5 Creator (Mingw编译器) 调用VS2019 (阿里云 oss C++库) 报错的解决方法

方法就是不要用VS2019编译,要用MINgw32编译。 编译命令如下: cmake -G "MinGW Makefiles" ^-DCMAKE_MAKE_PROGRAMD:\qt\Tools\mingw810_32\bin\mingw32-make.exe ^-DCMAKE_C_COMPILERD:\qt\Tools\mingw810_32\bin\gcc.exe ^-DCMAKE_CXX_COMP…

反向传播、梯度下降与学习率:深度学习中的优化艺术

目录 反向传播:神经网络的学习机制 梯度下降:优化算法的基石 学习率:平衡速度与稳定性的关键 学习率的调整策略 固定学习率 学习率衰减 自适应学习率 梯度消失与梯度爆炸 结语 在深度学习的领域中,构建一个有效的神经网络…

论文笔记(五十九)A survey of robot manipulation in contact

A survey of robot manipulation in contact 文章概括摘要1. 引言解释柔顺性控制的概念:应用实例: 2. 需要接触操控的任务2.1 环境塑造2.2 工件对齐2.3 关节运动2.4 双臂接触操控 3. 接触操控中的控制3.1 力控制3.2 阻抗控制3.3 顺应控制 4. 接触操控中的…

881.救生艇

目录 题目过程 题目 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船数 。 过程 cla…

【汇编】逻辑指令

文章目录 一、逻辑运算指令(一)各逻辑运算指令格式及操作(1)逻辑非指令 NOT(2)逻辑与指令 AND(3)逻辑或指令 OR(4)异或指令 XOR(5)测试…

网页开发的http基础知识

请求方式-GET:请求参数在请求行中,没有请求体,如:/brand/findAll?nameoPPo&status1。GET请求大小在浏览器中是有限制的请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的 HTTP请求&#xf…

如何做好一份技术文档

如何做好一份技术文档 以下是本人的一些微不足道的经验,希望可以与大家互相交流学习 方向一:技术文档的规划布局 确定整体架构 创建一份优秀技术文档的第一步是规划其整体架构。一个好的架构应能引导读者理解文档的内容,同时提供一个逻辑清…

Springboot——SseEmitter流式输出

文章目录 前言SseEmitter 简介测试demo注意点异常一 ResponseBodyEmitter is already set complete 前言 最近做AI类的开发,看到各大AI模型的输出方式都是采取的一种EventStream的方式实现。 不是通常的等接口处理完成后,一次性返回。 而是片段式的处理…

Java 虚拟机:承载 Java 生态的神奇魔盒

在软件开发的世界里,Java 虚拟机(JVM)就像一位智慧的管家,默默守护着 Java 生态系统的运行。它不仅让 Java 实现了"一次编写,到处运行"的梦想,更是成为了多种编程语言的运行平台。让我们一起走进…

sqlmap详细使用

SQLmap使用详解 SQLmap(常规)使用步骤 1、查询注入点 python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id12、查询所有数据库 python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id1 --dbs3、查询当前数据库 python sqlmap.py -u htt…

【Linux】Linux2.6内核进程调度队列与调度原理

目录 一、进程管理中的部分概念二、寄存器三、进程切换四、Linux2.6内核进程调度队列与调度原理结尾 一、进程管理中的部分概念 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务&#…

Qt 详解QRubberBand

文章目录 QRubberBand 简介前言 QRubberBand 的作用QRubberBand 的主要功能QRubberBand 的常用方法QRubberBand 的典型应用场景示例代码总结 QRubberBand 简介 前言 在 Qt 中,QRubberBand 是一个非常实用的控件,它通常用于图形界面中的“选择区域”功能…