通过Python绘制冰墩墩的示例代码

目录
  • 效果
  • 基础绘制圆
  • 基础彩色填充形状
  • 冰墩墩代码

效果

基础绘制圆

基础知识:

forward(x):将笔向前移动 x 个单位。

right(x):将笔顺时针旋转角度 x。

left(x):将笔逆时针旋转角度 x。

penup():停止绘制海龟笔。

pendown():开始绘制海龟笔。

backward(x):将笔向后移动 x 单位。

circle(radius):此函数以“海龟”位置为中心,绘制一个给定半径的圆。

画半径为50的圆:

import turtle

# 初始化
t = turtle.Turtle()

r = 50
t.circle(r)

如下:

画螺旋圈:

import turtle

t = turtle.Turtle()

# 初始半径10
r = 10

# 循环画
for i in range(100):
    t.circle(r + i, 45)

如下:

同心圆:

import turtle

t = turtle.Turtle()

# 初始半径
r = 10

# 循环画圆
for i in range(50):
    t.circle(r * i)
    t.up()
    t.sety((r * i) * (-1))
    t.down()

基础彩色填充形状

fillcolor():这有助于选择填充形状的颜色。它将输入参数作为颜色名称或颜色的十六进制值,并用所选颜色填充即将到来的封闭地理对象。颜色名称是基本颜色名称,即红色、蓝色、绿色、橙色。

颜色的十六进制值是十六进制数字的字符串(以'#'开头),即#RRGGBB。R、G 和 B 是十六进制数(0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F)。

begin_fill():此函数告诉海龟所有即将关闭的图形对象都需要用所选颜色填充。

end_fill():此函数告诉海龟停止填充即将关闭的图形对象。

绘制彩色填充正方形:

import turtle

# 创建画笔
t = turtle.Turtle()

t.speed(1)
# 手动输入边长
s = int(input("Enter the length of the side of the square: "))

# 输入颜色
col = input("Enter the color name or hex value of color(# RRGGBB): ")

# 填充颜色
t.fillcolor(col)

# 开始填充
t.begin_fill()

# 画正方形
for _ in range(4):
    t.forward(s)
    t.right(90)

# ending the filling of the color
t.end_fill()

如下:

绘制颜色填充星

import turtle

# 创建画笔
t = turtle.Turtle()
t.speed(1)
# 输入五角星边长
s = int(input("Enter the length of the side of the star: "))

# 输入颜色,必须为英文
col = input("Enter the color name or hex value of color(# RRGGBB): ")

# 创建画笔填充
t.fillcolor(col)

# 开始填充
t.begin_fill()

# 画图
for _ in range(5):
    t.forward(s)
    t.right(144)

# 结束
t.end_fill()

如下:

还有更多知识,需要大家自己探索,我就不挨个讲了。

冰墩墩代码

为啥前面要讲一点基础,因为讲一点基础你们就能看懂代码啥意思了。

基与其它开源作者修改了一点,运行即可成功:

# coding=gbk
"""
作者:川川
公众号:玩转大数据
@时间  : 2022/2/8 14:28</code><code>微信:hxgsrubxjogxeeag</code><code>群:428335755
"""
import turtle as t

# 设置速度
t.speed(50)  # 速度
t.delay(10)  # 延迟

t.title('冰墩墩')
# 双耳
# 左耳
t.penup()
t.goto(-150, 200)
t.setheading(160)
t.begin_fill()
t.pendown()
t.circle(-30, 230)
t.setheading(180)
t.circle(37, 90)
t.end_fill()
# 右耳
t.penup()
t.goto(60, 200)
t.setheading(20)
t.begin_fill()
t.pendown()
t.circle(30, 230)
t.setheading(0)
t.circle(-37, 90)
t.end_fill()
# 头
t.pensize(5)
t.penup()
t.goto(-113, 237)
t.setheading(30)
t.pendown()
t.circle(-134, 60)

t.penup()
t.goto(-150, 200)
t.setheading(-120)
t.pendown()
t.circle(200, 80)

t.penup()
t.goto(60, 200)
t.setheading(-60)
t.pendown()
t.circle(-200, 80)

t.penup()
t.setheading(210)
t.pendown()
t.circle(-120, 60)
# 双眼
# 左眼
# 眼圈
t.penup()
t.goto(-140, 100)
t.setheading(-45)
t.begin_fill()
t.pendown()
a = 0.2
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a + 0.1
        t.lt(3)  # 向左转3度
        t.fd(a)  # 向前走a的步长
    else:
        a = a - 0.1
        t.lt(3)
        t.fd(a)
t.end_fill()
# 眼白
t.fillcolor("white")
t.penup()
t.goto(-103, 125)
t.setheading(0)
t.begin_fill()
t.pendown()
t.circle(14, 360)
t.end_fill()
# 眼珠
# t.fillcolor("sienna")
# t.pencolor("sienna")
t.penup()
t.goto(-102, 133)
t.setheading(0)
t.begin_fill()
t.pendown()
t.circle(6, 360)
t.end_fill()
# 右眼
# 眼圈
t.penup()
t.goto(50, 100)
t.setheading(45)
t.fillcolor("black")
t.pencolor("black")
t.begin_fill()
t.pendown()
a = 0.2
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a + 0.1
        t.lt(3)  # 向左转3度
        t.fd(a)  # 向前走a的步长
    else:
        a = a - 0.1
        t.lt(3)
        t.fd(a)
t.end_fill()
# 眼白
t.fillcolor("white")
t.penup()
t.goto(13, 125)
t.setheading(0)
t.begin_fill()
t.pendown()
t.circle(14, 360)
t.end_fill()
# 眼珠
# t.fillcolor("sienna")
# t.pencolor("sienna")
t.penup()
t.goto(12, 133)
t.setheading(0)
t.begin_fill()
t.pendown()
t.circle(6, 360)
t.end_fill()
# 鼻子
t.pencolor("black")
t.fillcolor("black")
t.penup()
t.goto(-55, 133)
t.begin_fill()
t.pendown()
t.fd(20)
t.seth(-120)
t.fd(20)
t.seth(120)
t.fd(20)
t.end_fill()
# 嘴
t.penup()
t.goto(-70, 110)
t.setheading(-30)
t.fillcolor("red")
t.begin_fill()
t.pendown()
t.circle(50, 60)
t.setheading(-120)
t.circle(-100, 15)
t.circle(-15, 90)
t.circle(-100, 15)
t.end_fill()
# 四肢
# 左臂
t.penup()
t.goto(-175, 100)
t.fillcolor("black")
t.begin_fill()
t.setheading(-120)
t.pendown()
t.fd(100)
t.setheading(-110)
t.circle(20, 180)
t.fd(30)
t.circle(-5, 160)
t.end_fill()
# 右臂
t.penup()
t.goto(85, 100)
t.setheading(60)
t.begin_fill()
t.pendown()
t.fd(100)
t.setheading(70)
t.circle(20, 180)
t.fd(30)
t.circle(-5, 160)
t.end_fill()
# 小红心
t.penup()
t.pencolor("red")
t.fillcolor('red')
t.goto(105, 200)
t.begin_fill()
t.pendown()
t.circle(-5, 180)
t.setheading(90)
t.circle(-5, 180)
t.setheading(-120)
t.fd(17)
t.penup()
t.goto(105, 200)
t.pendown()
t.setheading(-60)
t.fd(17)
t.end_fill()
t.pencolor("black")
t.fillcolor("black")
# 左腿
t.penup()
t.goto(-120, -45)
t.begin_fill()
t.pendown()
t.setheading(-90)
t.circle(-140, 20)
t.circle(5, 109)
t.fd(30)
t.circle(10, 120)
t.setheading(90)
t.circle(-140, 10)
t.end_fill()
# 右腿
t.penup()
t.goto(30, -45)
t.begin_fill()
t.pendown()
t.setheading(-90)
t.circle(140, 20)
t.circle(-5, 109)
t.fd(30)
t.circle(-10, 120)
t.setheading(90)
t.circle(140, 10)
t.end_fill()
# 冰糖外壳
t.pensize(3)
t.penup()
t.goto(-160, 195)
t.setheading(160)
t.pendown()
t.circle(-40, 230)
t.setheading(30)
t.circle(-134, 58)
t.setheading(60)
t.circle(-40, 215)
t.setheading(-60)
t.fd(15)
t.circle(2, 200)
t.setheading(65)
t.fd(30)
t.circle(-25, 180)
t.fd(100)
t.circle(2, 25)
t.circle(-200, 47)
t.circle(2, 60)
t.circle(140, 23)
t.circle(-2, 90)
t.setheading(180)
t.fd(70)
t.circle(-2, 90)
t.fd(30)
t.setheading(-160)
t.circle(-100, 35)
t.setheading(-90)
t.fd(30)
t.circle(-2, 90)
t.fd(70)
t.circle(-2, 90)
t.setheading(60)
t.circle(140, 30)
t.circle(2, 45)
t.circle(-200, 19)
t.circle(2, 130)
t.fd(30)
t.circle(-25, 180)
t.fd(100)
t.setheading(90)
t.circle(-200, 30)
# 冰糖面罩
t.pensize(3)
t.penup()
t.goto(65, 120)
t.setheading(90)
t.pendown()
t.pencolor("red")
a = 1
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:  # 控制a的变化
        a = a + 0.25
        t.lt(3)  # 向左转3度
        t.fd(a)  # 向前走a的步长
    else:
        a = a - 0.25
        t.lt(3)
        t.fd(a)
t.pencolor("orange")
t.penup()
t.goto(66, 120)
t.pendown()
a = 1
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a + 0.255
        t.lt(3)
        t.fd(a)
    else:
        a = a - 0.255
        t.lt(3)
        t.fd(a)
t.pencolor("green")
t.penup()
t.goto(67, 120)
t.pendown()
a = 1
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a + 0.2555
        t.lt(3)
        t.fd(a)
    else:
        a = a - 0.2555
        t.lt(3)
        t.fd(a)
t.pencolor("deep sky blue")
t.penup()
t.goto(68, 120)
t.pendown()
a = 1
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a + 0.25955
        t.lt(3)
        t.fd(a)
    else:
        a = a - 0.25955
        t.lt(3)
        t.fd(a)
t.pencolor("pink")
t.penup()
t.goto(71, 120)
t.pendown()
a = 1
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a + 0.26
        t.lt(3)
        t.fd(a)
    else:
        a = a - 0.26
        t.lt(3)
        t.fd(a)
t.pencolor("purple")
t.penup()
t.goto(72, 120)
t.pendown()
a = 1
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a + 0.269
        t.lt(3)
        t.fd(a)
    else:
        a = a - 0.269
        t.lt(3)
        t.fd(a)

# 五环
t.penup()
t.goto(-55, -10)
t.pendown()
t.pencolor("blue")
t.circle(10)
t.penup()
t.goto(-40, -10)
t.pendown()
t.pencolor("black")
t.circle(10)
t.penup()
t.goto(-25, -10)
t.pendown()
t.pencolor("red")
t.circle(10)
t.penup()
t.goto(-50, -20)
t.pendown()
t.pencolor("yellow")
t.circle(10)
t.penup()
t.goto(-30, -20)
t.pendown()
t.pencolor("green")
t.circle(10)

# 输出文字
printer = t.Turtle()
printer.hideturtle()
printer.penup()
printer.goto(-350,-50)
printer.write("可\n\n",move = True, align="left", font=("楷体", 31, "bold"))
printer.goto(-350,-100)
printer.write("爱\n\n",move = True, align="left", font=("楷体", 31, "bold"))
printer.goto(-350,-150)
printer.write("冰\n\n",move = True, align="left", font=("楷体", 31, "bold"))
printer.goto(-350,-200)
printer.write("墩\n\n",move = True, align="left", font=("楷体", 31, "bold"))
printer.goto(-350,-250)
printer.write("墩\n\n",move = True, align="left", font=("楷体", 31, "bold"))

t.hideturtle()
t.done()

如果想要打包成exe,cd到该文件目录下执行:

pyinstaller -F -w  bingdunndun.py

则会生成的dist文件下有:bingdundun.exe

生成好后你也可以直接改名为:冰墩墩.exe

以上就是通过Python绘制冰墩墩的示例代码的详细内容,更多关于Python绘制冰墩墩的资料请关注我们其它相关文章!

(0)

相关推荐

  • 使用python的turtle库画一个冰墩墩效果

    目录 设置一个画布 画左手和手内 画轮廓和其他部分 画细节(眼睛.鼻子.嘴巴等) 画头部彩虹 画五环标志 使用python画一个冰墩墩先看效果图 设置一个画布 import turtle turtle.setup(800,600) turtle.speed(10) 画左手和手内 turtle.penup() turtle.goto(177,112) turtle.pencolor('lightgray') turtle.pensize(3) turtle.fillcolor('white') t

  • 利用turtle库画“冰墩墩”和奥运五环

    目录 一.画冰墩墩 二.画奥运五环 没有安装python的小伙伴可以去看这篇教程:python Windows最新版本安装教程 一.画冰墩墩 在此之前你需要一张冰墩墩的图片,命名为bingdundun.png(当然你也可以改代码里面的图片名称),和python代码在同一个目录下. 完整代码: import turtle as t import cv2 t.getscreen().colormode(255) img1 = cv2.imread('bingdundun.png')[0: -2: 2

  • C语言编程使用MATLAB绘制冰墩墩

    目录 1 程序说明 椭圆形: 心形: 2 完整代码 不能放图,大家自行绘制试试看. 1 程序说明 这个程序就是用一系列椭圆,圆角矩形及心形拼在起,以下说明一下各部分怎么生成: 椭圆形: 椭圆形是用的如下椭圆数据生成函数生成数据点,之后再用fill函数绘制而成,其中Mu为椭圆中心点,Sigma为协方差矩阵,S为半径平方,pntNum是生成数据点个数: % 椭圆数据计算函数,输入协方差矩阵.中心点.半径生成椭圆数据 % 椭圆数据计算函数,输入协方差矩阵.中心点.半径生成椭圆数据 function [

  • python绘制BA无标度网络示例代码

    如下所示: #Copyright (c)2017, 东北大学软件学院学生 # All rightsreserved #文件名称:a.py # 作 者:孔云 #问题描述: #问题分析:.代码如下: import networkx as ne #导入建网络模型包,命名ne import matplotlib.pyplot as mp #导入科学绘图包,命名mp #BA scale-free degree network graphy BA=ne.barabasi_albert_graph(50,1)

  • 使用Python绘制台风轨迹图的示例代码

    参考: 1.Basemap绘制中国地图 2.Basemap生成的图中绘制轨迹 使用CMA热带气旋最佳路径数据集,对我国周边的台风进行绘制 import re import os import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap path=r"E:\Computer Science\数学建模\第二次模拟赛题\附件" files= os.listdir(pa

  • python绘制字符画视频的示例代码

    目录 读取视频 转为字符 动画 已经11月了,不知道还有没有人看华强买瓜...要把华强卖瓜做成字符视频,总共分为三步 读取视频 把每一帧转为字符画 把字符画表现出来 读取视频 通过imageio读取视频,除了pip install imageio之外,还需要pip install imageio-ffmpeg. 由于视频中的图像都是彩色的,故而需要将rgb三色转为单一的强度,并将转化后的图像装入一个列表中. import imageio import numpy as np import mat

  • python绘制浅色范围曲线的示例代码

    借鉴:python绘制lost(损失)曲线 加 方差范围 直接上效果图: 上代码: import re import seaborn as sns import matplotlib.pyplot as plt import matplotlib.cm as cm import shutil import os import math sns.set_style('whitegrid') path=r"F:\pycharm\class\20211008\alexnet_7class_srcDat

  • python绘制分布折线图的示例

    用Python 绘制分布(折线)图,使用的是 plot()函数. 一个简单的例子: # encoding=utf-8 import matplotlib.pyplot as plt from pylab import * # 支持中文 mpl.rcParams['font.sans-serif'] = ['SimHei'] # 'mentioned0cluster', names = ['mentioned1cluster','mentioned2cluster', 'mentioned3clu

  • 通过Python绘制冰墩墩的示例代码

    目录 效果 基础绘制圆 基础彩色填充形状 冰墩墩代码 效果 基础绘制圆 基础知识: forward(x):将笔向前移动 x 个单位. right(x):将笔顺时针旋转角度 x. left(x):将笔逆时针旋转角度 x. penup():停止绘制海龟笔. pendown():开始绘制海龟笔. backward(x):将笔向后移动 x 单位. circle(radius):此函数以“海龟”位置为中心,绘制一个给定半径的圆. 画半径为50的圆: import turtle # 初始化 t = turt

  • 使用python画个小猪佩奇的示例代码

    基本原理 选好画板大小,设置好画笔颜色.粗细,定位好位置,依次画鼻子.头.耳朵.眼睛.腮.嘴.身体.手脚.尾巴,完事儿. 都知道,Turtle 是 Python 内置的一个比较有趣味的模块,俗称"海龟绘图",它是基于 Tkinter 模块打造,提供一些简单的绘图工具. 在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动.这个海龟带着一只钢笔,我们可以让海龟无论移动到哪都使用这只钢笔来绘制线条.通过编写代码,以各种很酷的模式移动海龟,我们可以绘制出令人惊奇的图片.

  • Python打造虎年祝福神器的示例代码

    目录 背景故事 一.Python Turtle模块画小老虎 1. 定义库以及初始化界面 2. 画出左右两只耳朵 3. 画出小老虎头部轮廓 4. 画出老虎的两只眼睛 5. 画出老虎的鼻子和嘴巴 6. 画出小老虎的左右肢体和脚趾 7. 在需要的位置写上我们的新年祝福 二.弹窗设置 三.倒计时页面设计 1. 实现清屏功能以及初始化位置 2. 显示倒数3,2,1 3. 显示我们需要的文字 4. 设定代码运行入口,调用目标函数 结果展示 源码分享 背景故事 2022虎年将至,值此新春佳节之际,各大社区更是

  • Python手动实现Hough圆变换的示例代码

    Hough圆变换的原理很多博客都已经说得非常清楚了,但是手动实现的比较少,所以本文直接贴上手动实现的代码. 这里使用的图片是一堆硬币: 首先利用通过计算梯度来寻找边缘,代码如下: def detect_edges(image): h = image.shape[0] w = image.shape[1] sobeling = np.zeros((h, w), np.float64) sobelx = [[-3, 0, 3], [-10, 0, 10], [-3, 0, 3]] sobelx =

  • Python实现二叉排序树与平衡二叉树的示例代码

    目录 前言 1. 二叉排序树 1.1 构建一棵二叉排序树 1.2 二叉排序树的数据结构 1.3 实现二叉排序树类中的方法: 2. 平衡二叉排序树 2.1 二叉平衡排序树的数据结构 3. 总结 前言 什么是树表查询? 借助具有特殊性质的树数据结构进行关键字查找. 本文所涉及到的特殊结构性质的树包括: 二叉排序树. 平衡二叉树. 使用上述树结构存储数据时,因其本身对结点之间的关系以及顺序有特殊要求,也得益于这种限制,在查询某一个结点时会带来性能上的优势和操作上的方便. 树表查询属于动态查找算法. 所

随机推荐