开发者

Python使用turtle模块绘制爱心图案

开发者 https://www.devze.com 2022-11-30 11:32 出处:网络 作者: toMontain
程序员的浪漫,你懂吗?今天使用python小海龟实现爱心图案的绘制,代码如下:importturtleimporttime#清屏函数defclear_all():turtle.pe...

程序员的浪漫,你懂吗?

今天使用python小海龟实现爱心图案的绘制,代码如下:

import turtle
import time
 
 
# 清屏函数
def clear_all():
    turtle.penup()
    turtle.goto(0, 0)
    turtle.color('white')
    turtle.pensize(800)
    turtle.pendown()
    turtle.setheading(0)
    turtle.fd(300)
    turtle.bk(600)
 
 
# 重定位海龟的位置
def go_to(x, y, state):
    turtle.pendown() if编程客栈 state else turtle.penup()
    turtle.goto(x, y)
 
 
# 画线
# state为真时海龟回到原点,为假时不回到原来的出发点
def draw_line(length, angle, state):
    turtle.pensize(1)
    turtle.pendown()
    turtle.setheading(angle)
    turtle.fd(length)
    turtle.bk(length) if state else turtle.penup()
    turtle.penup()
 
 
# 画箭羽
def draw_feather(size):
    angle = 30                          # 箭的倾角
    feather_num = size//6               # 羽毛的数量
    feather_length = size // 3          # 羽毛的长度
    feather_gap = size//10              # 羽毛的间隔
    for i in range(feather_num):
        draw_line(feather_gap, angle

LHKoApHzKf

+180, False) # 箭柄,不折返 draw_line(feather_length, angle + 145, True) # 羽翼,要折返 draw_line(feather_length, angle + 145, False) draw_line(feather_num*feather_gap, angle, False) draw_line(feather_length, angle + 145 + 180, False) for i in range(feather_num): draw_line(feather_gap, angle+180, False) # 箭柄,不折返 draw_line(feather_length, angle - 145, True) # 羽翼,要折返 draw_line(feather_length, angle - 145, False) draw_line(feather_num*feather_gap, angle, False) draw_line(feather_length, angle - 145 + 180, False) # 画爱心 def draw_heart(size): turtle.color('red', 'pink') turtle.pensize(2) turtle.pendown() turtle.setheading(150) turtle.begin_fill() turtle.fd(size) turtle.circle(size * -3.745, 45) turtle.circle(size * -1.431, 165) turtle.left(120) turtle.circle(size * -1.431, 165) turtle.circle(size * -3.745, 45) turtle.fd(size) turtle.end_fill() # 画箭 def draw_arrow(size): angle = 30 turtle.color('black') draw_feather(size) turtle.pensize(4) turtle.setheading(angle) turtle.pendown() turtle.fd(size*2) # 一箭穿心 # 箭的头没有画出来,而是用海龟来代替 def arrow_heart(x, y, size): go_to(x, y, False) draw_heart(size*1.15) turtle.setheading(-150) turtle.penup() turtle.fd(size*2.2) draw_heart(size) turtle.penup() turtle.setheading(150) turtle.fd(size * 2.2) draw_arrow(size) # 画出发射爱心的小人 def draw_people(x, y): turtle.penup() turtle.goto(x, y) turtle.pendown() turtle.pensize(2) turtle.color('black') turtle.setheading(0) turtle.circle(60, 360) turtle.penup() turtle.setheading(90) turtle.fd(75) turtle.setheading(180) turtle.fd(20) turtle.pensize(编程客栈4) turtle.pendown() turtle.circle(2, 360) turtle.setheading(0) turtle.penup() turtle.fd(40) turtle.pensize(4) turtle.pendown() turt编程客栈le.circle(-2, 360) turtle.penup() turtle.goto(x, y) turtle.setheading(-90) turtle.pendown() turtle.fd(20) turtle.setheading(0) turtle.fd(35) turtle.setheading(60) turtle.fd(10) turtle.penup() turtle.goto(x, y) turtle.setheading(-90) turtle.pendown() turtle.fd(40) turtle.setheading(0) turtle.fd(35) turtle.setheading(-60) turtle.fd(10) turtle.penup() turtle.goto(x, y) turtle.setheading(-90) turtle.pendown() turtle.fd(60) turtle.setheading(-135) turtle.fd(60) turtle.bk(60) turtle.setheading(-45) turtle.fd(30) turtle.setheading(-135) turtle.fd(35) turtle.penup() # 第一个画面,显示文字 def page0(): turtle.penup() turtle.goto(-350, 0) turtle.color('black') turtle.write('专属于我们的情人节', font=('宋体', 60, 'normal')) time.sleep(3) # 第二个画面,显示发射爱心的小人 def page1(): turtle.speed(10) draw_people(-250, 20) turtle.penup() turtle.goto(-150, -30) draw_heart(14) turtle.penup() turtle.goto(-20, -60) draw_heart(25) 编程客栈turtle.penup() turtle.goto(250, -100) draw_heart(45) turtle.hideturtle() time.sleep(3) # 最后一个画面,一箭穿心 def page2(): turtle.speed(1) turtle.penup() turtle.goto(-200, -200) turtle.color('blue') turtle.pendown() turtle.write('ZBT CJH', font=('wisdom', 50, 'normal')) turtle.penup() turtle.goto(0, -180) draw_heart(10) arrow_heart(20, -60, 51) turtle.showturtle() def main(): turtle.setup(900, 500) page0() clear_all() page1() clear_all() page2() turtle.done() main()

运行截图如下图所示,其中的姓名缩写可以自行修改。

Python使用turtle模块绘制爱心图案

Python使用turtle模块绘制爱心图案

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

0

精彩评论

暂无评论...
验证码 换一张
取 消