佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Python使用turtle模塊繪制愛心圖案

Python使用turtle模塊繪制愛心圖案

熱門標(biāo)簽:銀行業(yè)務(wù) 檢查注冊表項 服務(wù)器配置 鐵路電話系統(tǒng) 美圖手機(jī) 呼叫中心市場需求 智能手機(jī) 網(wǎng)站文章發(fā)布

程序員的浪漫,你懂嗎?

今天使用python小海龜實(shí)現(xiàn)愛心圖案的繪制,代碼如下:

import turtle
import time
 
 
# 清屏函數(shù)
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)
 
 
# 重定位海龜?shù)奈恢?
def go_to(x, y, state):
    turtle.pendown() if state else turtle.penup()
    turtle.goto(x, y)
 
 
# 畫線
# state為真時海龜回到原點(diǎn),為假時不回到原來的出發(fā)點(diǎn)
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               # 羽毛的數(shù)量
    feather_length = size // 3          # 羽毛的長度
    feather_gap = size//10              # 羽毛的間隔
    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)
    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)
 
 
# 畫出發(fā)射愛心的小人
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()
    turtle.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('專屬于我們的情人節(jié)', font=('宋體', 60, 'normal'))
    time.sleep(3)
 
 
# 第二個畫面,顯示發(fā)射愛心的小人
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()

運(yùn)行截圖如下圖所示,其中的姓名縮寫可以自行修改。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • python使用Turtle庫畫畫寫名字
  • Python繪圖之turtle庫的基礎(chǔ)語法使用
  • Python turtle實(shí)現(xiàn)貪吃蛇游戲
  • python基于turtle繪制幾何圖形
  • python實(shí)例小練習(xí)之Turtle繪制南方的雪花

標(biāo)簽:新疆 上海 長治 滄州 沈陽 樂山 紅河 河南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python使用turtle模塊繪制愛心圖案》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    理塘县| 周口市| 东源县| 周至县| 鄂尔多斯市| 安泽县| 高青县| 徐州市| 高州市| 凯里市| 巴马| 广水市| 射洪县| 巴林右旗| 五河县| 罗城| 墨脱县| 静宁县| 兴仁县| 葫芦岛市| 轮台县| 甘谷县| 常宁市| 香河县| 汨罗市| 来安县| 昌都县| 丹巴县| 静宁县| 正定县| 永修县| 海淀区| 定远县| 沁水县| 将乐县| 铅山县| 滦平县| 稷山县| 武宁县| 大方县| 黄石市|