用Python的turtle模块画生日蛋糕

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python的turtle模块画生日蛋糕相关的知识,希望对你有一定的参考价值。

参考技术A import turtle as t

import math as m

import random as r

t.speed(10)

def drawX(a, i):

    angle = m.radians(i)

    return a * m.cos(angle)

def drawY(b, i):

    angle = m.radians(i)

    return b * m.sin(angle)

# 设置背景颜色,窗口位置以及大小

t.bgcolor("#d3dae8")

t.setup(1000, 800)

t.penup()

t.goto(150, 0)

t.pendown()

# 1

t.pencolor("white")

t.begin_fill()

for i in range(360):

    x = drawX(150, i)

    y = drawY(60, i)

    t.goto(x, y)

t.fillcolor("#fef5f7")

t.end_fill()

# 2

t.begin_fill()

for i in range(180):

    x = drawX(150, -i)

    y = drawY(70, -i)

    t.goto(x, y)

for i in range(180, 360):

    x = drawX(150, i)

    y = drawY(60, i)

    t.goto(x, y)

t.fillcolor("#f2d7dd")

t.end_fill()

# 3

t.pu()

t.goto(120, 0)

t.pd()

t.begin_fill()

for i in range(360):

    x = drawX(120, i)

    y = drawY(48, i)

    t.goto(x, y)

t.fillcolor("#cbd9f9")

t.end_fill()

# 4

t.begin_fill()

t.pencolor("#fee48c")

for i in range(540):

    x = drawX(120, i)

    y = drawY(48, i) + 70

    t.goto(x, y)

t.goto(-120, 0)

t.fillcolor("#cbd9f9")

t.end_fill()

# 5

t.pu()

t.goto(120, 70)

t.pd()

t.pencolor("#fff0f3")

t.begin_fill()

for i in range(360):

    x = drawX(120, i)

    y = drawY(48, i) + 70

    t.goto(x, y)

t.fillcolor("#fff0f3")

t.end_fill()

# 6

t.pu()

t.goto(110, 70)

t.pd()

t.pencolor("#fff9fb")

t.begin_fill()

for i in range(360):

    x = drawX(110, i)

    y = drawY(44, i) + 70

    t.goto(x, y)

t.fillcolor("#fff9fb")

t.end_fill()

# 7

t.pu()

t.goto(120, 0)

t.pd()

t.begin_fill()

t.pencolor("#ffa79d")

for i in range(180):

    x = drawX(120, -i)

    y = drawY(48, -i) + 10

    t.goto(x, y)

t.goto(-120, 0)

for i in range(180, 360):

    x = drawX(120, i)

    y = drawY(48, i)

    t.goto(x, y)

t.fillcolor("#ffa79d")

t.end_fill()

# 8

t.pu()

t.goto(120, 70)

t.pd()

t.begin_fill()

t.pensize(4)

t.pencolor("#fff0f3")

for i in range(1800):

    x = drawX(120, 0.1 * i)

    y = drawY(-18, i) + 10

    t.goto(x, y)

t.goto(-120, 70)

t.pensize(1)

for i in range(180, 360):

    x = drawX(120, i)

    y = drawY(48, i) + 70

    t.goto(x, y)

t.fillcolor("#fff0f3")

t.end_fill()

# 9

t.pu()

t.goto(80, 70)

t.pd()

t.begin_fill()

t.pencolor("#6f3732")

t.goto(80, 120)

for i in range(180):

    x = drawX(80, i)

    y = drawY(32, i) + 120

    t.goto(x, y)

t.goto(-80, 70)

for i in range(180, 360):

    x = drawX(80, i)

    y = drawY(32, i) + 70

    t.goto(x, y)

t.fillcolor("#6f3732")

t.end_fill()

# 10

t.pu()

t.goto(80, 120)

t.pd()

t.pencolor("#ffaaa0")

t.begin_fill()

for i in range(360):

    x = drawX(80, i)

    y = drawY(32, i) + 120

    t.goto(x, y)

t.fillcolor("#ffaaa0")

t.end_fill()

# 11

t.pu()

t.goto(70, 120)

t.pd()

t.pencolor("#ffc3be")

t.begin_fill()

for i in range(360):

    x = drawX(70, i)

    y = drawY(28, i) + 120

    t.goto(x, y)

t.fillcolor("#ffc3be")

t.end_fill()

# 12

t.pu()

t.goto(80, 120)

t.pd()

t.begin_fill()

t.pensize(3)

t.pencolor("#ffaaa0")

for i in range(1800):

    x = drawX(80, 0.1 * i)

    y = drawY(-12, i) + 80

    t.goto(x, y)

t.goto(-80, 120)

t.pensize(1)

for i in range(180, 360):

    x = drawX(80, i)

    y = drawY(32, i) + 120

    t.goto(x, y)

t.fillcolor("#ffaaa0")

t.end_fill()

# 13

t.pu()

t.goto(64, 120)

t.pd()

t.pencolor("#b1c9e9")

t.begin_fill()

for i in range(360):

    x = drawX(4, i) + 60

    y = drawY(1, i) + 120

    t.goto(x, y)

t.goto(64, 170)

for i in range(540):

    x = drawX(4, i) + 60

    y = drawY(1, i) + 170

    t.goto(x, y)

t.goto(56, 120)

t.fillcolor("#b1c9e9")

t.end_fill()

t.pencolor("white")

t.pensize(2)

for i in range(1, 6):

    t.goto(64, 120 + 10 * i)

    t.pu()

    t.goto(56, 120 + 10 * i)

    t.pd()

t.pu()

t.goto(60, 170)

t.pd()

t.goto(60, 180)

t.pensize(1)

#

t.pu()

t.goto(64, 190)

t.pd()

t.pencolor("#f1add1")

t.begin_fill()

for i in range(360):

    x = drawX(4, i) + 60

    y = drawY(10, i) + 190

    t.goto(x, y)

t.fillcolor("#f1add1")

t.end_fill()

# 14

t.pu()

t.goto(-56, 120)

t.pd()

t.pencolor("#b1c9e9")

t.begin_fill()

for i in range(360):

    x = drawX(4, i) - 60

    y = drawY(1, i) + 120

    t.goto(x, y)

t.goto(-56, 170)

for i in range(540):

    x = drawX(4, i) - 60

    y = drawY(1, i) + 170

    t.goto(x, y)

t.goto(-64, 120)

t.fillcolor("#b1c9e9")

t.end_fill()

t.pencolor("white")

t.pensize(2)

for i in range(1, 6):

    t.goto(-56, 120 + 10 * i)

    t.pu()

    t.goto(-64, 120 + 10 * i)

    t.pd()

t.pu()

t.goto(-60, 170)

t.pd()

t.goto(-60, 180)

t.pensize(1)

#

t.pu()

t.goto(-56, 190)

t.pd()

t.pencolor("#f1add1")

t.begin_fill()

for i in range(360):

    x = drawX(4, i) - 60

    y = drawY(10, i) + 190

    t.goto(x, y)

t.fillcolor("#f1add1")

t.end_fill()

# 1

❤️用Python+turtle模块实现生成皮卡丘❤️(附源码)

今天给大家分享画个皮卡丘,希望大家每天开开心心。让我们愉快地开始吧~

效果展示

开发工具

Python版本: 3.6.4

相关模块:

turtle模块。

环境搭建

安装Python并添加到环境变量即可。

原理简介

turtle文档:

https://docs.python.org/zh-cn/3.7/library/turtle.html
复制代码

代码里有不懂的可以参考这个turtle文档~这里只介绍一下用到的:

seth:设置朝向;

fd:前进;

circle:画圆;

fillcolor:填充颜色;

pensize:画笔粗细;

speed:速度;

hideturtle:隐藏海龟;

screensize:设置屏幕大小;

begin_fill:开始填充;

end_fill:结束填充;

penup:画笔抬起;

pendown:画笔落下(此时移动将画线)。

先定义一个画鼻子的函数:

# 画鼻子
def drawNose():
	turtle.penup()
	turtle.seth(90)
	turtle.fd(100)
	turtle.pendown()
	turtle.begin_fill()
	turtle.fillcolor('black')
	turtle.seth(45)
	turtle.fd(25)
	turtle.seth(135)
	turtle.circle(25, 95)
	turtle.seth(315)
	turtle.fd(25)
	turtle.end_fill()
复制代码

然后是画眼睛的函数:

# 画眼睛
def drawEyes(seth, fd, r):
	turtle.penup()
	turtle.seth(seth)
	turtle.fd(fd)
	turtle.pendown()
	turtle.begin_fill()
	turtle.fillcolor('black')
	turtle.circle(50)
	turtle.end_fill()
	turtle.penup()
	turtle.circle(50, r)
	turtle.pendown()
	turtle.begin_fill()
	turtle.fillcolor('white')
	turtle.circle(20)
	turtle.end_fill()
复制代码

然后是画脸:

# 画脸
def drawFace(seth, fd):
	turtle.penup()
	turtle.seth(seth)
	turtle.fd(fd)
	turtle.pendown()
	turtle.begin_fill()
	turtle.fillcolor('red')
	turtle.circle(70)
	turtle.end_fill()
复制代码

画嘴巴:

# 画嘴巴
def drawLip():
	turtle.penup()
	turtle.seth(135)
	turtle.fd(250)
	turtle.pendown()
	turtle.seth(-300)
	turtle.circle(30, -65)
	turtle.begin_fill()
	turtle.fillcolor('Firebrick')
	turtle.seth(165)
	turtle.fd(140)
	turtle.seth(195)
	turtle.fd(140)
	turtle.seth(-360)
	turtle.circle(30, -65)
	turtle.penup()
	turtle.seth(-60)
	turtle.circle(30, 65)
	turtle.pendown()
	turtle.seth(-70)
	turtle.fd(240)
	turtle.circle(55, 140)
	turtle.seth(70)
	turtle.fd(240)
	turtle.end_fill()
	turtle.seth(-110)
	turtle.fd(80)
	turtle.begin_fill()
	turtle.fillcolor('Firebrick')
	turtle.seth(120)
	turtle.circle(120, 123)
	turtle.seth(-70)
	turtle.fd(165)
	turtle.circle(55, 140)
	turtle.seth(72)
	turtle.fd(165)
	turtle.end_fill()
复制代码

最后在主函数里初始化后画就行了

文章到这里就结束了,感谢你的观看,Python画画,下篇文章分享画个五星红旗

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

以上是关于用Python的turtle模块画生日蛋糕的主要内容,如果未能解决你的问题,请参考以下文章

用Python画个生日蛋糕为朋友庆生

有大神可以用python的turtle模块画图吗,求解

python:小乌龟turtle

为啥用python turtle库画蟒蛇会出现这个错误?

Python用turtle模块画图

python的turtle模块画折线图