首页 > 分享 > 我利用Python画了这十个图,收到了公司小姐姐20封情书!

我利用Python画了这十个图,收到了公司小姐姐20封情书!

有趣的turtle库

1、彩色螺旋线2、太阳花3、国旗4、玫瑰花5、彩色树6、随机樱花树7、表白树8、圆舞曲9、哆啦A梦10、时钟1、彩色螺旋线

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:701698587

from turtle import *

speed(9)            # 画笔速度

pensize(2)            # 画笔的宽度

bgcolor("black")        # 画布背景色

colors = ["red","yellow","purple","blue"]    # 定义画笔线色

for x in range(400):        # 循环一次 画一条线 

    forward(2*x)             # 向当前方向前进n像素

    color(colors[x % 4])    # 根据求余 调整画笔线色

left(91)                # 向左旋转91度

mainloop()

2、太阳花

import turtle

turtle=turtle.Turtle()

screen=turtle.getscreen()

turtle.color('red', 'yellow')

turtle.begin_fill()

for i in range(50):

    turtle.forward(200)

    turtle.left(170)

turtle.end_fill()

turtle.done()

在这里插入图片描述

3、国旗

from turtle import *

screensize(2000, 2000, 'white')  # 设置画布大小

speed(9)

# 绘制旗面

pencolor('red')

# pu()

goto(-300, -200)

pd()

fillcolor('red')

begin_fill()

for i in range(0, 2):

fd(600)

    lt(90)

fd(400)

    lt(90)

end_fill()

# 绘制大五角星

pu()

pencolor('yellow')

goto(-260, 120)

pd()

fillcolor('yellow')

begin_fill()

for i in range(0, 5):

fd(113.137)  # 大星一划的边长

    rt(144)

end_fill()

# 绘制四个小五角星

list1 = [(-100, 160), (-60, 120), (-60, 60), (-100, 20)]  # 四个五角星的中心坐标

list2 = [31.98, 8.13, -15.59, -38.66]  # 相对角度0的后退1.111需要左转的角度

for j in range(0, 4):

    seth(0)  # 这是龟头角度为0

    pu()

    goto(list1[j])  # 定位到五角星中心

    lt(list2[j])  # 旋转角度,以背向指向大五角星的角尖

    bk(20)  # 从五角星中心到指向大五角星的角尖(龟倒着爬)退一个小圆半径

    lt(18)  # 五角星的半角角度

    pd()

    begin_fill()

for i in range(0, 5):

fd(113.137 / 3)  # 小星一划的边长

        rt(144)

end_fill()

pu()

ht()

done()

4、玫瑰花

import turtle

import time

turtle.speed(5)

# 设置初始位置  

turtle.penup()  

turtle.left(90)  

turtle.fd(200)  

turtle.pendown()  

turtle.right(90)

# 花蕊 

turtle.fillcolor("red")  

turtle.begin_fill()  

turtle.circle(10,180)  

turtle.circle(25,110)  

turtle.left(50)  

turtle.circle(60,45)  

turtle.circle(20,170)  

turtle.right(24)  

turtle.fd(30)  

turtle.left(10)  

turtle.circle(30,110)  

turtle.fd(20)  

turtle.left(40)  

turtle.circle(90,70)  

turtle.circle(30,150)  

turtle.right(30)  

turtle.fd(15)  

turtle.circle(80,90)  

turtle.left(15)  

turtle.fd(45)  

turtle.right(165)  

turtle.fd(20)  

turtle.left(155)  

turtle.circle(150,80)  

turtle.left(50)  

turtle.circle(150,90)  

turtle.end_fill()  

# 花瓣1  

turtle.left(150)  

turtle.circle(-90,70)  

turtle.left(20)  

turtle.circle(75,105)  

turtle.setheading(60)  

turtle.circle(80,98)  

turtle.circle(-90,40)  

# 花瓣2  

turtle.left(180)  

turtle.circle(90,40)  

turtle.circle(-80,98)  

turtle.setheading(-83)  

# 叶子1  

turtle.fd(30)  

turtle.left(90)  

turtle.fd(25)  

turtle.left(45)  

turtle.fillcolor("green")  

turtle.begin_fill()  

turtle.circle(-80,90)  

turtle.right(90)  

turtle.circle(-80,90)  

turtle.end_fill()  

turtle.right(135)  

turtle.fd(60)  

turtle.left(180)  

turtle.fd(85)  

turtle.left(90)  

turtle.fd(80)  

# 叶子2  

turtle.right(90)  

turtle.right(45)  

turtle.fillcolor("green")  

turtle.begin_fill()  

turtle.circle(80,90)  

turtle.left(90)  

turtle.circle(80,90)  

turtle.end_fill()  

turtle.left(135)  

turtle.fd(60)  

turtle.left(180)  

turtle.fd(60)  

turtle.right(90)  

turtle.circle(200,60) 

turtle.done()

5、彩色树

# 这个比较复杂,画的时间较长

from turtle import *

# 设置色彩模式是RGB:

colormode(255)

lt(90)

lv = 14

l = 120

s = 45

width(lv)

# 初始化RGB颜色:

r = 0

g = 0

b = 0

pencolor(r, g, b)

penup()

bk(l)

pendown()

fd(l)

def draw_tree(l, level):

global r, g, b

    # save the current pen width

    w = width()

    # narrow the pen width

    width(w * 3.0 / 4.0)

    # set color:

    r = r + 1

    g = g + 2

    b = b + 3

    pencolor(r % 200, g % 200, b % 200)

    l = 3.0 / 4.0 * l

    lt(s)

fd(l)

if level < lv:

        draw_tree(l, level + 1)

    bk(l)

    rt(2 * s)

fd(l)

if level < lv:

        draw_tree(l, level + 1)

    bk(l)

    lt(s)

    # restore the previous pen width

    width(w)

speed("fastest")

draw_tree(l, 4)

done()

在这里插入图片描述

6、随机樱花树

# 每次运行 树的形状是随机的

import turtle as T

import random

import time

# 画樱花的躯干(60,t)

def Tree(branch, t):

time.sleep(0.0005)

if branch > 3:

if 8 <= branch <= 12:

if random.randint(0, 2) == 0:

                t.color('snow')  # 白

else:

                t.color('lightcoral')  # 淡珊瑚色

            t.pensize(branch / 3)

        elif branch < 8:

if random.randint(0, 1) == 0:

                t.color('snow')

else:

                t.color('lightcoral')  # 淡珊瑚色

            t.pensize(branch / 2)

else:

            t.color('sienna')  # 赭(zhě)色

            t.pensize(branch / 10)  # 6

        t.forward(branch)

        a = 1.5 * random.random()

        t.right(20 * a)

        b = 1.5 * random.random()

        Tree(branch - 10 * b, t)

        t.left(40 * a)

        Tree(branch - 10 * b, t)

        t.right(20 * a)

        t.up()

        t.backward(branch)

        t.down()

# 掉落的花瓣

def Petal(m, t):

for i in range(m):

        a = 200 - 400 * random.random()

        b = 10 - 20 * random.random()

        t.up()

        t.forward(b)

        t.left(90)

        t.forward(a)

        t.down()

        t.color('lightcoral')  # 淡珊瑚色

        t.circle(1)

        t.up()

        t.backward(a)

        t.right(90)

        t.backward(b)

# 绘图区域

t = T.Turtle()

# 画布大小

w = T.Screen()

t.hideturtle()  # 隐藏画笔

t.getscreen().tracer(5, 0)

w.screensize(bg='wheat')  # wheat小麦

t.left(90)

t.up()

t.backward(150)

t.down()

t.color('sienna')

# 画樱花的躯干

Tree(60, t)

# 掉落的花瓣

Petal(200, t)

w.exitonclick()

T.done()

在这里插入图片描述

7、表白树

import random

import turtle

def love(x, y):  # 在(x,y)处画爱心lalala

    lv = turtle.Turtle()

    lv.hideturtle()

    lv.up()

    lv.goto(x, y)  # 定位到(x,y)

    def curvemove():  # 画圆弧

for i in range(20):

            lv.right(10)

            lv.forward(2)

    lv.color('red', 'pink')

    lv.speed(0)

    lv.pensize(1)

    # 开始画爱心lalala

    lv.down()

    lv.begin_fill()

    lv.left(140)

    lv.forward(22)

    curvemove()

    lv.left(120)

    curvemove()

    lv.forward(22)

    lv.write("{}".format("他-她"), font=("Arial", 10, "normal"), align="center")

    lv.left(140)  # 画完复位

    lv.end_fill()

def tree(branchLen, t):

if branchLen > 5:  # 剩余树枝太少要结束递归

if branchLen < 20:  # 如果树枝剩余长度较短则变绿

            t.color("green")

            t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))

            t.down()

            t.forward(branchLen)

            love(t.xcor(), t.ycor())  # 传输现在turtle的坐标

            t.up()

            t.backward(branchLen)

            t.color("brown")

return

        t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))

        t.down()

        t.forward(branchLen)

        # 以下递归

        ang = random.uniform(15, 45)

        t.right(ang)

        tree(branchLen - random.uniform(12, 16), t)  # 随机决定减小长度

        t.left(2 * ang)

        tree(branchLen - random.uniform(12, 16), t)  # 随机决定减小长度

        t.right(ang)

        t.up()

        t.backward(branchLen)

def Fonts():

    t.penup()

    t.goto(-500, -300)

    t.pencolor('black')

    t.write("余生的快乐希望与你一起!^_^", font=('方正行黑简体', 30, 'normal'))

myWin = turtle.Screen()

t = turtle.Turtle()

t.hideturtle()

t.speed(0)

t.left(90)

t.up()

t.backward(200)

t.down()

t.color("brown")

t.pensize(32)

t.forward(60)

tree(100, t)

Fonts()

myWin.exitonclick()

8、圆舞曲

from turtle import *

def stop():

global running

    running = False

def main():

global running

    clearscreen()

    bgcolor("gray10")

    tracer(False)

    shape("triangle")

    f =   0.793402

    phi = 9.064678

    s = 5

    c = 1

    # create compound shape

    sh = Shape("compound")

for i in range(10):

        shapesize(s)

        p =get_shapepoly()

        s *= f

        c *= f

        tilt(-phi)

        sh.addcomponent(p, (c, 0.25, 1-c), "black")

    register_shape("multitri", sh)

    # create dancers

    shapesize(1)

    shape("multitri")

    pu()

    setpos(0, -200)

    dancers = []

for i in range(180):

fd(7)

        tilt(-4)

        lt(2)

        update()

if i % 12 == 0:

            dancers.append(clone())

    home()

    # dance

    running = True

    onkeypress(stop)

    listen()

    cs = 1

    while running:

        ta = -4

for dancer in dancers:

            dancer.fd(7)

            dancer.lt(2)

            dancer.tilt(ta)

            ta = -4 if ta > 0 else 2

if cs < 180:

right(4)

            shapesize(cs)

            cs *= 1.005

        update()

return "DONE!"

if __name__=='__main__':

    print(main())

    mainloop()


在这里插入图片描述
9、哆啦A梦

import turtle

def flyTo(x, y):

    turtle.penup()

    turtle.goto(x, y)

    turtle.pendown()

def drawEye():

    turtle.tracer(False)

    a = 2.5

for i in range(120):

if 0 <= i < 30 or 60 <= i < 90:

            a -= 0.05

else:

            a += 0.05

        turtle.left(3)

        turtle.fd(a)

    turtle.tracer(True)

def beard():

""" 画胡子, 一共六根

    """

    # 左边第一根胡子

    flyTo(-37, 135)

    turtle.seth(165)

    turtle.fd(60)

    # 左边第二根胡子

    flyTo(-37, 125)

    turtle.seth(180)

    turtle.fd(60)

    # 左边第三根胡子

    flyTo(-37, 115)

    turtle.seth(193)

    turtle.fd(60)

    # 右边第一根胡子

    flyTo(37, 135)

    turtle.seth(15)

    turtle.fd(60)

    # 右边第二根胡子

    flyTo(37, 125)

    turtle.seth(0)

    turtle.fd(60)

    # 右边第三根胡子

    flyTo(37, 115)

    turtle.seth(-13)

    turtle.fd(60)

def drawRedScarf():

""" 画围巾

    """

    turtle.fillcolor("red")  # 填充颜色

    turtle.begin_fill()

    turtle.seth(0)  # 朝向右

    turtle.fd(200)  # 前进10个单位

    turtle.circle(-5, 90)

    turtle.fd(10)

    turtle.circle(-5, 90)

    turtle.fd(207)

    turtle.circle(-5, 90)

    turtle.fd(10)

    turtle.circle(-5, 90)

    turtle.end_fill()

def drawMouse():

    flyTo(5, 148)

    turtle.seth(270)

    turtle.fd(100)

    turtle.seth(0)

    turtle.circle(120, 50)

    turtle.seth(230)

    turtle.circle(-120, 100)

def drawRedNose():

    flyTo(-10, 158)

    turtle.fillcolor("red")  # 填充颜色

    turtle.begin_fill()

    turtle.circle(20)

    turtle.end_fill()

def drawBlackdrawEye():

    turtle.seth(0)

    flyTo(-20, 195)

    turtle.fillcolor("#000000")  # 填充颜色

    turtle.begin_fill()

    turtle.circle(13)

    turtle.end_fill()

    turtle.pensize(6)

    flyTo(20, 205)

    turtle.seth(75)

    turtle.circle(-10, 150)

    turtle.pensize(3)

    flyTo(-17, 200)

    turtle.seth(0)

    turtle.fillcolor("#ffffff")

    turtle.begin_fill()

    turtle.circle(5)

    turtle.end_fill()

    flyTo(0, 0)

def drawFace():

    turtle.forward(183)  # 前行183个单位

    turtle.fillcolor("white")  # 填充颜色为白色

    turtle.begin_fill()  # 开始填充

    turtle.left(45)  # 左转45度

    turtle.circle(120, 100)  # 右边那半边脸

    turtle.seth(90)  # 朝向向上

    drawEye()  # 画右眼睛

    turtle.seth(180)  # 朝向左

    turtle.penup()  # 抬笔

    turtle.fd(60)  # 前行60

    turtle.pendown()  # 落笔

    turtle.seth(90)  # 朝向上

    drawEye()  # 画左眼睛

    turtle.penup()  # 抬笔

    turtle.seth(180)  # 朝向左

    turtle.fd(64)  # 前进64

    turtle.pendown()  # 落笔

    turtle.seth(215)  # 修改朝向

    turtle.circle(120, 100)  # 左边那半边脸

    turtle.end_fill()  #

def drawHead():

""" 画了一个被切掉下半部分的圆

    """

    turtle.penup()  # 抬笔

    turtle.circle(150, 40)  # 画圆, 半径150,圆周角40

    turtle.pendown()  # 落笔

    turtle.fillcolor("#00a0de")  # 填充色

    turtle.begin_fill()  # 开始填充

    turtle.circle(150, 280)  # 画圆,半径150, 圆周角280

    turtle.end_fill()

def drawAll():

    drawHead()

    drawRedScarf()

    drawFace()

    drawRedNose()

    drawMouse()

    beard()

    flyTo(0, 0)

    turtle.seth(0)

    turtle.penup()

    turtle.circle(150, 50)

    turtle.pendown()

    turtle.seth(30)

    turtle.fd(40)

    turtle.seth(70)

    turtle.circle(-30, 270)

    turtle.fillcolor("#00a0de")

    turtle.begin_fill()

    turtle.seth(230)

    turtle.fd(80)

    turtle.seth(90)

    turtle.circle(1000, 1)

    turtle.seth(-89)

    turtle.circle(-1000, 10)

    turtle.seth(180)

    turtle.fd(70)

    turtle.seth(90)

    turtle.circle(30, 180)

    turtle.seth(180)

    turtle.fd(70)

    turtle.seth(100)

    turtle.circle(-1000, 9)

    turtle.seth(-86)

    turtle.circle(1000, 2)

    turtle.seth(230)

    turtle.fd(40)

    turtle.circle(-30, 230)

    turtle.seth(45)

    turtle.fd(81)

    turtle.seth(0)

    turtle.fd(203)

    turtle.circle(5, 90)

    turtle.fd(10)

    turtle.circle(5, 90)

    turtle.fd(7)

    turtle.seth(40)

    turtle.circle(150, 10)

    turtle.seth(30)

    turtle.fd(40)

    turtle.end_fill()

    # 左手

    turtle.seth(70)

    turtle.fillcolor("#FFFFFF")

    turtle.begin_fill()

    turtle.circle(-30)

    turtle.end_fill()

    # 脚

    flyTo(103.74, -182.59)

    turtle.seth(0)

    turtle.fillcolor("#FFFFFF")

    turtle.begin_fill()

    turtle.fd(15)

    turtle.circle(-15, 180)

    turtle.fd(90)

    turtle.circle(-15, 180)

    turtle.fd(10)

    turtle.end_fill()

    flyTo(-96.26, -182.59)

    turtle.seth(180)

    turtle.fillcolor("#FFFFFF")

    turtle.begin_fill()

    turtle.fd(15)

    turtle.circle(15, 180)

    turtle.fd(90)

    turtle.circle(15, 180)

    turtle.fd(10)

    turtle.end_fill()

    # 右手

    flyTo(-133.97, -91.81)

    turtle.seth(50)

    turtle.fillcolor("#FFFFFF")

    turtle.begin_fill()

    turtle.circle(30)

    turtle.end_fill()

    # 口袋

    flyTo(-103.42, 15.09)

    turtle.seth(0)

    turtle.fd(38)

    turtle.seth(230)

    turtle.begin_fill()

    turtle.circle(90, 260)

    turtle.end_fill()

    flyTo(5, -40)

    turtle.seth(0)

    turtle.fd(70)

    turtle.seth(-90)

    turtle.circle(-70, 180)

    turtle.seth(0)

    turtle.fd(70)

    # 铃铛

    flyTo(-103.42, 15.09)

    turtle.fd(90)

    turtle.seth(70)

    turtle.fillcolor("#ffd200")

    turtle.begin_fill()

    turtle.circle(-20)

    turtle.end_fill()

    turtle.seth(170)

    turtle.fillcolor("#ffd200")

    turtle.begin_fill()

    turtle.circle(-2, 180)

    turtle.seth(10)

    turtle.circle(-100, 22)

    turtle.circle(-2, 180)

    turtle.seth(180 - 10)

    turtle.circle(100, 22)

    turtle.end_fill()

    flyTo(-13.42, 15.09)

    turtle.seth(250)

    turtle.circle(20, 110)

    turtle.seth(90)

    turtle.fd(15)

    turtle.dot(10)

    flyTo(0, -150)

    drawBlackdrawEye()

def main():

    turtle.screensize(800, 6000, "#F0F0F0")

    turtle.pensize(3)

    turtle.speed(9)

    drawAll()

if __name__ == "__main__":

    main()

    turtle.mainloop()

在这里插入图片描述

10、时钟

import turtle

from datetime import *

# 抬起画笔,向前运动一段距离放下

def Skip(step):

    turtle.penup()

    turtle.forward(step)

    turtle.pendown()

def mkHand(name, length):

    # 注册Turtle形状,建立表针Turtle

    turtle.reset()

    Skip(-length * 0.1)

    # 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。

    turtle.begin_poly()

    turtle.forward(length * 1.1)

    # 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。

    turtle.end_poly()

    # 返回最后记录的多边形。

    handForm = turtle.get_poly()

    turtle.register_shape(name, handForm)

def Init():

global secHand, minHand, hurHand, printer

    # 重置Turtle指向北

    turtle.mode("logo")

    # 建立三个表针Turtle并初始化

    mkHand("secHand", 135)

    mkHand("minHand", 125)

    mkHand("hurHand", 90)

    secHand = turtle.Turtle()

    secHand.shape("secHand")

    minHand = turtle.Turtle()

    minHand.shape("minHand")

    hurHand = turtle.Turtle()

    hurHand.shape("hurHand")

for hand in secHand, minHand, hurHand:

        hand.shapesize(1, 1, 3)

        hand.speed(0)

    # 建立输出文字Turtle

    printer = turtle.Turtle()

    # 隐藏画笔的turtle形状

    printer.hideturtle()

    printer.penup()

def SetupClock(radius):

    # 建立表的外框

    turtle.reset()

    turtle.pensize(7)

for i in range(60):

        Skip(radius)

if i % 5 == 0:

            turtle.forward(20)

            Skip(-radius - 20)

            Skip(radius + 20)

if i == 0:

                turtle.write(int(12), align="center", font=("Courier", 14, "bold"))

            elif i == 30:

                Skip(25)

                turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))

                Skip(-25)

            elif (i == 25 or i == 35):

                Skip(20)

                turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))

                Skip(-20)

else:

                turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))

            Skip(-radius - 20)

else:

            turtle.dot(5)

            Skip(-radius)

        turtle.right(6)

def Week(t):

    week = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]

return week[t.weekday()]

def Date(t):

    y = t.year

    m = t.month

    d = t.day

return "%s-%d-%d" % (y, m, d)

def Tick():

    # 绘制表针的动态显示

    t = datetime.today()

    second = t.second + t.microsecond * 0.000001

    minute = t.minute + second / 60.0

    hour = t.hour + minute / 60.0

    secHand.setheading(6 * second)

    minHand.setheading(6 * minute)

    hurHand.setheading(30 * hour)

    turtle.tracer(False)

    printer.forward(65)

    printer.write(Week(t), align="center", font=("Courier", 14, "bold"))

    printer.back(130)

    printer.write(Date(t), align="center", font=("Courier", 14, "bold"))

    printer.home()

    turtle.tracer(True)

    # 100ms后继续调用tick

    turtle.ontimer(Tick, 100)

def main():

    # 打开/关闭龟动画,并为更新图纸设置延迟。

    turtle.tracer(False)

    Init()

    SetupClock(160)

    turtle.tracer(True)

    Tick()

    turtle.done()

if __name__ == "__main__":

    main()

在这里插入图片描述

相关知识

三行代码情书(1)
python 绘制一个四瓣花图
七夕七夕我要情书!甜蜜鲜花时光!
用python画花瓣
这个好玩!用Python识别花卉种类,并自动整理分类!
利用Python制作旋转花灯,祝大家元宵节快乐
被我找到了❗蕞美花店
小姐姐分享15道精致美食菜谱,收藏好,每天换着花样做!
七夕情人节情书(通用30篇)
姐姐结婚,弟弟当花童,撒花动作流露内心想法:我不同意这门婚事

网址: 我利用Python画了这十个图,收到了公司小姐姐20封情书! https://m.huajiangbk.com/newsview777954.html

所属分类:花卉
上一篇: 樱花的制作方法 樱花的制作方法用
下一篇: 花瓣飘落效果