Python画图之草莓熊

news2024/11/26 3:50:24

Python-turtle画出草莓熊(有趣小游戏)

  • 一、效果图
  • 二、Python代码

一、效果图

请添加图片描述

二、Python代码

# -*- coding: UTF-8 -*-
import turtle as t


# 设置背景颜色,窗口位置以及大小
t.colormode(255)  # 颜色模式
t.speed(0)
t.screensize(850, 760, "white")  # 画布大小背景颜色
t.setup(width=850, height=760, startx=None, starty=None)  # 绘图窗口的大小和起始坐标
# t.bgpic("di_800.gif")
t.title("草莓熊!")  # 设置绘图窗口的标题
t.resizemode('noresize')  # 大小调整模式:auto,user,noresize
t.tracer(1)


def mling_draw0(x, y, pcolor, fcolor, psize):
    t.penup()
    p = t.home()
    t.goto(x, y)
    t.pendown()
    t.pencolor(pcolor)
    t.fillcolor(fcolor)
    t.pensize(psize)


scolor = ["#E6005C", "#00BFFF", "#538a30", "#F28500"]  # 深色列表
qcolor = ["#FF007F", "#87CEFA", "#7fbc2b", "#FFA500"]  # 浅色列表
blsize = 80  # blsize值,blsize,是大等腰直角三角形的斜边风车等比例缩放
bs = 2 ** 0.5 / 2 * blsize  # bs是直角边,2**0.5 表示数学中的“根号2”
# zjsjxxb是小等腰直角三角形的斜边,zjb是直角边
zjb = blsize / 2  # zjb是小等腰直角三角形的直角边
zjsjxxb = 2 ** 0.5 * zjb  # zjsjxxb是小等腰直角三角形的斜边
length = 1.7 * blsize  # 风车杆长
width = 2 / 15 * blsize  # 风车杆宽
def fongche():  # 风车
    t.penup()
    t.goto(-205, -42)
    t.begin_fill()
    t.pensize(4)
    t.pencolor("#321320")
    t.fillcolor("#D2B48C")
    t.circle(15)
    t.end_fill()
    t.penup()
    t.goto(-220, 80)
    t.pendown()
    t.setheading(-90)
    t.pensize(width)
    t.pencolor("#5f4a1d")
    t.forward(length)
    t.pensize(2)
    t.backward(length)
    t.setheading(90)

    for i in range(4):
        # 小等腰直角三角形
        t.color(scolor[i])  # 遍历深色列表scolor
        t.begin_fill()
        t.forward(zjb)
        t.left(90)
        t.forward(zjb)
        t.left(135)
        t.forward(zjsjxxb)
        t.end_fill()
        # t.pencolor(scolor[i])
        # t.pensize(4)
        # 大等腰直角三角形
        t.color(qcolor[i])  # 遍历浅色列表qcolor
        t.begin_fill()
        t.backward(zjsjxxb)
        t.right(90)
        t.forward(bs)
        t.left(135)
        t.forward(blsize)
        t.end_fill()
        # t.pencolor(scolor[i])
        # t.pensize(4)
        # 旋转180度后,画下一片风车叶片
        t.right(180)
        t.penup()


mling_circle_list = iter([  # 每段弧线(半径,弧角度数)
    (18, 360), (14, 360), (10, 360), (6, 360),
    (18, 360), (14, 360), (10, 360), (6, 360),
])


def mling_draw_eyeball(zb1, zb2, zb3, zb4):
    for zb, color_ in zip([zb1, zb2, zb3, zb4], ['#ffffff', '#482d08', '#000000', '#ffffff']):
        t.penup()
        t.goto(*zb)
        t.pendown()
        t.begin_fill()
        t.setheading(0)
        t.color(color_)
        t.pencolor('#000000')
        t.pensize(2)
        t.circle(*next(mling_circle_list))
        t.end_fill()


t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#cb3263")
t.pensize(4)
t.goto(120, 110)
t.pendown()
t.begin_fill()
t.goto(200, 0)
t.left(-40)
t.circle(-110, 105)
t.left(75)
t.goto(170, -110)
t.left(-80)
t.circle(30, 40)
t.left(60)
t.circle(-80, 70)
t.left(83)
t.circle(-35, 95)
t.goto(60, -270)
t.left(-80)
t.circle(-65, 70)
t.left(63)
t.circle(35, 30)
t.left(130)
t.circle(-65, 70)
t.goto(-120, -270)
t.left(-110)
t.circle(-35, 80)
t.left(83)
t.circle(-80, 50)
t.left(60)
t.circle(-80, 60)
t.left(60)
t.circle(30, 30)
t.left(20)
t.circle(80, 80)
t.left(-105)
t.circle(-70, 150)
t.left(50)
t.circle(-170, 50)
t.goto(120, 110)
t.end_fill()
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#ffffff")
t.pensize(4)
t.goto(90, 60)
t.pendown()
t.begin_fill()
t.right(30)
t.circle(-130, 360)
t.end_fill()
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#f3d2ad")
t.pensize(4)
t.goto(-250, -55)
t.seth(0)
t.pendown()
t.begin_fill()
t.right(-55)
t.circle(-45, 270)
t.goto(-220, -75)
t.goto(-250, -55)
t.end_fill()

fongche()

t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#f3d2ad")
t.pensize(4)
t.goto(185, -90)
t.pendown()
t.begin_fill()
t.right(140)
t.circle(43, 95)
t.goto(185, -90)
# t.goto(148,-60)
t.end_fill()
t.penup()
t.seth(0)
t.pencolor('#321320')
t.fillcolor('#cb3263')
t.pensize(4)
t.begin_fill()
t.goto(21, 0)
t.pendown()
t.circle(123, 134)
t.left(-90)
t.circle(40, 185)
t.left(-60)
t.circle(120, 60)
t.left(-90)
t.circle(50, 200)
t.left(-90)
t.circle(100, 100)
t.left(-12)
t.circle(100, 40)
t.goto(21, 0)
t.penup()
t.end_fill()
t.penup()
t.goto(0, 0)
t.seth(0)
t.pencolor('#321320')
t.fillcolor('#ffffff')
t.pensize(4)
t.begin_fill()
t.goto(-70, 210)
t.left(140)
t.pendown()
t.circle(30, 200)
t.goto(-70, 210)
t.penup()
t.end_fill()
t.penup()
t.goto(0, 0)
t.seth(0)
t.pencolor('#321320')
t.fillcolor('#ffffff')
t.pensize(4)
t.begin_fill()
t.goto(90, 220)
t.left(45)
t.pendown()
t.circle(22, 200)
t.goto(90, 220)
t.penup()
t.end_fill()
t.penup()
t.goto(0, 0)
t.seth(0)
t.pencolor('#321320')
t.fillcolor('#ffffff')
t.pensize(4)
t.begin_fill()
t.left(-98)
t.left(90)
t.goto(18, 10)
t.pendown()
t.circle(100, 134)
t.left(10)
t.circle(110, 30)
t.left(10)
t.circle(160, 40)
t.circle(85, 40)
t.left(2)
t.circle(95, 40)
t.left(5)
t.circle(95, 60)
t.penup()
t.end_fill()
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#8f3a52")
t.pensize(2)
t.goto(25, 240)
t.pendown()
t.begin_fill()
t.goto(60, 235)
t.left(30)
t.fd(8)
t.left(90)
t.fd(22)
t.circle(90, 8)
t.left(20)
t.circle(90, 8)
t.left(20)
t.circle(90, 20)
t.left(40)
t.circle(50, 20)
t.end_fill()
t.penup()
t.pensize(12)
t.goto(-2, 250)
t.pencolor("#4D1F00")
t.fillcolor("#4D1F00")
t.pendown()
t.goto(60, 240)
t.end_fill()
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#8f3a52")
t.pensize(2)
t.goto(-55, 193)
t.pendown()
t.begin_fill()
t.left(65)
t.circle(-90, 25)
t.goto(-10, 230)
t.left(30)
t.fd(8)
t.left(90)
t.fd(18)
t.circle(90, 8)
t.left(20)
t.circle(90, 10)
t.left(40)
t.circle(90, 30)
t.left(30)
t.circle(40, 20)
t.penup()
t.end_fill()
t.pensize(12)
t.goto(-63, 195)
t.pencolor("#4D1F00")
t.fillcolor("#4D1F00")
t.pendown()
# t.goto(-10,240)
t.left(100)
t.circle(-85, 45)
t.end_fill()

mling_draw_eyeball((-20, 180), (-23, 185), (-25, 188), (-30, 200))  # ok
mling_draw_eyeball((30, 193), (27, 200), (25, 203), (20, 213))  # ok
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#8f3a52")
t.pensize(3)
t.goto(25, 105)
p = t.pos()
t.pendown()
t.begin_fill()
t.circle(85, 65)
t.left(16)
t.circle(30, 55)
t.left(20)
t.circle(145, 58)
t.left(8)
t.circle(20, 55)
t.left(8)
t.circle(50, 65)
t.left(-5)
t.circle(310, 8)
t.end_fill()
t.penup()
t.goto(0, 0)
t.seth(0)
t.pencolor('#321320')
t.fillcolor('#a93e54')
t.pensize(3)
t.begin_fill()
t.left(-20)
t.goto(9, 66)
t.pendown()
t.circle(68, 40)
t.left(10)
t.circle(65, 40)
t.left(160)
t.circle(-75, 85)
t.left(158)
t.circle(48, 37)
t.goto(9, 66)
t.penup()
t.end_fill()
t.color('#321320')
t.penup()
t.goto(260, 60)
t.pendown()
t.write("愿\n你\n没\n有\n烦\n恼\n", align="center", font=("黑体", 20, "normal"))
t.penup()
t.goto(290, 183)
t.pendown()
t.hideturtle()
t.done()

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

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

相关文章

通过Python脚本支持OC代码重构实践(二):数据项提供模块接入数据通路的代码生成

作者 | 刘俊启 导读 在软件开发中,经常会遇到一些代码问题,例如逻辑结构复杂、依赖关系混乱、代码冗余、不易读懂的命名等。这些问题可能导致代码的可维护性下降,增加维护成本,同时也会影响到开发效率。这时通常通过重构的方式对已…

STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结

目录 1.电机模块开发 1.1 让小车动起来 1.2 串口控制小车方向 1.3 如何进行小车PWM调速 1.4 PWM方式实现小车转向 2.循迹小车 2.1 循迹模块使用 2.2 循迹小车原理 2.3 循迹小车核心代码 2.4 循迹小车解决转弯平滑问题 3.跟随/避障小车 3.1 红外壁障模块分析​编辑 …

Redis 应用问题

1-缓存穿透 1.1-问题描述 Key 对应的数据在数据源并不存在,每次针对此 Key 的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。 比如:用一个不存在的用户ID 获取用户信息,不论缓存还是数据库都没有&…

有哪些适合做小说推文的配音软件?

其实现在市面上的短视频配音软件数不胜数,怎样才能挑选到简单又实用的呢?今天我就来给你盘一盘各大配音软件的优缺点,大家可以根据自己的需求来选择合适的配音软件! 一、悦音配音 推荐指数★★★★★ 推荐理由:无需自…

SpringBoot SerializationUtils克隆(反序列化) 类加载器不一致问题(ClassCastException)

问题分析 在SpringBoot中使用 org.apache.commons.lang.SerializationUtils.clone 方法时,发现克隆出来的类强转对应类时发生类型不一致的错误,经过检测发现两个看似相同的类的类加载器不一致 场景 报错信息 java.lang.ClassCastException: com.tianq…

伦敦金投资怎么玩收益高?

伦敦金,作为国际黄金市场的代表,一直备受投资者的关注。它有着高流动性和丰富的投资机会,但要真正玩得收益高,就需要掌握一些关键的方法和技巧。在本文中,万洲金业将为您提供专业建议,告诉您伦敦金投资怎么…

【广州华锐互动】VR虚拟现实技术在森林防火教学中的应用

在探索大自然的神秘面纱时,我们往往会遇到一些意想不到的风险,其中之一就是森林火灾。森林火灾是一种毁灭性的自然灾害,可以在短时间内摧毁大片森林,对人类和动物的生存环境造成严重影响。然而,通过3D仿真技术&#xf…

SteerMouse for mac Mac万能鼠标设置工具 功能介绍

鼠标可谓是用户们在使用电脑时候的必备外接设备呢!适合你自己的鼠标设置也绝对能够优化你的Mac使用体验!想要更好的Mac体验就试试用Steermouse Mac版吧。它通过软件来自由设置你的鼠标操作!在这款万能鼠标设置工具中,用户可以在偏…

uniapp在APP端使用swiper进行页面不卡顿滑动

uniapp在APP端使用swiper进行页面会卡顿&#xff0c;主要是渲染的数据有点多&#xff0c;这里只渲染三个数据就不好那么卡顿了&#xff0c;每次滑动后更新数据 <view><swiper change"changePoint" circular :disable-touch"disableTouch"><…

【Excel密码】四个方法,设置excel表格只读模式

Excel文件想要设置成只读模式&#xff0c;其实很简单&#xff0c;今天给大家分享四个excel设置只读模式的方法。 方法一&#xff1a;文件属性 右键点击文件&#xff0c;查看文件属性&#xff0c;在属性界面&#xff0c;勾选上只读属性就可以了。 方法二&#xff1a;始终以只读…

g.Grafana之Gauge的图形说明

直接上操作截图 1. 创建一个新的Dashboard 2.为Dashboard创建变量 【General】下的Name与Label的名称自定义 【Query options】 下的Group可以填写Zabbix内的所有组/.*/ , 然后通过Regex正则过滤需要的组名 3.设置Dashboard的图形 我使用文字来描述下这个图 1.我们在dash…

【分享】winterm ssh登录报错Unkown error

非软文哈&#xff0c;实测Winterm非常好用&#xff0c;唯一的障碍是 某些特定服务器ssh登录报错Unkown error 后经github issue得知&#xff0c;关闭会话设置-ssh选项卡中的 尝试键盘交互认证的勾即可。 https://github.com/kingToolbox/WindTerm/issues/1922

【C++】基础语法(上)

C基础语法 此语法笔记面向算法竞赛考研&#xff0c;可供参考&#xff0c;本人的一些笔记的记录~ 失踪人口回归&#xff0c;将近半个月没有更新&#xff0c;那么接下来也会逐步开始更新分享知识内容~ 本篇将分享cpp基础语法中的变量、输出输入语句、表达式、顺序语句、条件判断…

el-table添加class类名并添加样式

先上效果图&#xff1a;输入框内容被 内边距 padding: 0 12px; 但是只想在这列开始去除内边距 理想效果 解决方案 AddClass <!-- 给某个td里面添加类名:cell-class-name --> <el-table:data"data"size"mini"borderselection-change"sele…

大恒相机在halcon里面的可读可写参数和只读参数

查询图像采集设备具体参数的算子 get_framegrabber_param (AcqHandle, available_param_names, AvailableParamNames) U3相机 可读可写 只读参数 活动参数 网口相机 只读参数 活动参数

Kafka-入门及简单示例

启动与简单示例 # 命令行1 #开启Zookeeper E:\>cd E:\kafka_2.13-3.6.0E:\kafka_2.13-3.6.0>bin\windows\zookeeper-server-start.bat config\zookeeper.properties # 命令行2 #开启Kafka E:\>cd E:\kafka_2.13-3.6.0 E:\kafka_2.13-3.6.0>bin\windows\kafka-serv…

【Windows-软件-FFmpeg】(01)通过CMD运行FFmpeg进行操作,快速上手

前言 通过"cmd"运行"ffmpeg"进行操作&#xff0c;快速上手&#xff1b; 实操 【实操一】 说明 使用"FFmpeg"来合并音频文件和视频文件 &#xff1b; 环境 Windows 11 专业版&#xff08;22621.2428&#xff09;&#xff1b; 代码 &#xf…

【MATLAB源码-第65期】基于matlab的OFDM/OTFS通信系统性能对比,输处误码率曲线;对比是否采用LDPC编码。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 OTFS&#xff08;Orthogonal Time Frequency Space&#xff09;是一种无线通信调制技术&#xff0c;它利用时间、频率和空间的正交性来传输数据&#xff0c;目的是提高无线通信系统的性能&#xff0c;尤其是在多径和高移动性环…

fastapi-参数

路径参数 你可以使用与 Python 格式化字符串相同的语法来声明路径"参数"或"变量"&#xff1a; from fastapi import FastAPIapp FastAPI()app.get("/items/{item_id}") async def item_details(item_id: int):return {"item_id": i…

关于电容充放电

计算下电容放电时&#xff0c;其电压和时间的关系 百度&#xff1a;电容充放电电压公式 电容充放电时间 百度安全验证https://baijiahao.baidu.com/s?id1618374634281434486&wfrspider&forpc 电容充电放电时间计算公式&#xff1a; 设&#xff0c;V0 为电容上的初始…