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

效果

通过Python绘制冰墩墩的示例代码_第1张图片

基础绘制圆

基础知识:

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)

如下:

通过Python绘制冰墩墩的示例代码_第2张图片

画螺旋圈:

import turtle

t = turtle.Turtle()

# 初始半径10
r = 10

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

如下:

通过Python绘制冰墩墩的示例代码_第3张图片

同心圆:

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()

通过Python绘制冰墩墩的示例代码_第4张图片

基础彩色填充形状

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()

如下:

通过Python绘制冰墩墩的示例代码_第5张图片

绘制颜色填充星

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()

如下:

通过Python绘制冰墩墩的示例代码_第6张图片

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

冰墩墩代码

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

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

# coding=gbk
"""
作者:川川
公众号:玩转大数据
@时间  : 2022/2/8 14:28微信:hxgsrubxjogxeeag群: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绘制冰墩墩的资料请关注脚本之家其它相关文章!

你可能感兴趣的:(通过Python绘制冰墩墩的示例代码)