天天看點

python3表白代碼_Pyhton表白代碼——浪漫聖誕節

聖誕節即将到了,是以這回通過turtle子產品來編寫一個表白的小程式

python3表白代碼_Pyhton表白代碼——浪漫聖誕節

開發時間:2019-12-15

開發工具:Sublime

開發子產品:turtle

這裡用到了turtle庫的相關知識,如果不熟悉可以看我之前的部落格:

首先,我們需要來建立一個函數來承載所有初始化資料,包括畫布的大小,畫筆的尺寸、顔色、還有畫筆的移動速度

以示範圖為例子,設定了一個800*600大小的畫布,紅色畫筆寬為5,速度為10

代碼如下所示:

definitdata():

t.setup(800,600)

t.pencolor('red')

t.pensize(5)

t.speed(10)

設定好相關屬性後,就可以開始作畫了

首先畫筆位于正中央,若想移動畫筆将會在畫布上留下痕迹,也就是畫上了線條,

但是有些線條,畫作本身并不需要,這就需要做到讓畫筆移動的同時,畫布不留痕迹

需要用到up()和down();兩個函數,如直譯一般作用為擡起畫筆和放下畫筆

是以操作為,擡起畫筆——移動到指定地方——放下畫筆

代碼如下所示:

python3表白代碼_Pyhton表白代碼——浪漫聖誕節

ef move_pen(x,y):

t.hideturtle()

t.up()

t.goto(x,y)

t.down()

t.showturtle()

python3表白代碼_Pyhton表白代碼——浪漫聖誕節

注意:hideturtle()和showturtle()為隐藏畫筆和顯示畫筆。對畫作本身毫無影響

繪制示範圖中,最難的部分在哪裡?

一定是愛心上半部分的兩個半圓,是以為友善,我們單獨講這一部分提出來做一個繪制半圓的函數

在turtle庫中并沒有繪制曲線的函數,最接近的也隻有畫圓了。

不過我們可以通過割圓法來繪制,也就是将這一段圓弧視為一個邊長很短的多邊形

是以我們通過for循環來繪制,通過不斷偏轉方向的小線段組成

代碼如下:

defhart_arc():for i in range(200):

t.right(1)

t.forward(2)

現在我們開始繪制圖形draw()

首先表白總要有表白者和被表白者吧,是以我們先建立name和sign來存儲名字

之後通過調用初始化函數來擷取相關資訊

最後就可以操縱畫筆開始繪制。

先将畫筆移動到(0,-180)的位置,也就是愛心的下部尖端,這就用到了剛剛建立的移動函數,

之後控制畫筆調整方向,移動224的距離繪制完成前面的愛心下部的右側邊

然後繪制愛心上半部分,調用hart_arc()繪制了愛心上半部分左側,

然後調整方向,畫筆向左偏轉120度,再繪制另一個半圓

最後畫筆傳回初始位置,畫好了第一個愛心,将其填充為粉色。

同理可畫第二個愛心,到最後來一個“一箭雙❤”就可以了

繪制完成之後,我們就要輸出剛剛記載的兩個人名了

這需要用到write()函數

代碼如下:

python3表白代碼_Pyhton表白代碼——浪漫聖誕節

defdraw():

name=input("請輸入表白姓名:")

sign=input("請輸入你的大名:")

initdata()

move_pen(0,-180)

t.left(140)

t.fillcolor("pink")

t.begin_fill()

t.forward(224)

hart_arc()

t.left(120)

hart_arc()

t.forward(224)

t.end_fill()

move_pen(x=70, y=160)

t.left(185)

t.circle(-110,185)

t.forward(50)

move_pen(-180,-180)

t.left(180)

t.forward(600)

move_pen(0,50)

t.hideturtle()

t.color('#CD5C5C', 'red')

t.write(name, font=('Arial', 20, 'bold'), align="center")

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

time.sleep(2)

move_pen(220, -180)

t.hideturtle()

t.write(sign, font=('Arial', 20), align="center")

python3表白代碼_Pyhton表白代碼——浪漫聖誕節

這樣表白的代碼就制作完成了

python3表白代碼_Pyhton表白代碼——浪漫聖誕節

感謝大家支援,總體代碼如下:

python3表白代碼_Pyhton表白代碼——浪漫聖誕節

importturtle as timporttimedefinitdata():

t.setup(800,600)

t.pencolor('red')

t.pensize(5)

t.speed(10)defmove_pen(x,y):

t.hideturtle()

t.up()

t.goto(x,y)

t.down()

t.showturtle()defhart_arc():for i in range(200):

t.right(1)

t.forward(2)defdraw():

name=input("請輸入表白姓名:")

sign=input("請輸入你的大名:")

initdata()

move_pen(0,-180)

t.left(140)

t.fillcolor("pink")

t.begin_fill()

t.forward(224)

hart_arc()

t.left(120)

hart_arc()

t.forward(224)

t.end_fill()

move_pen(x=70, y=160)

t.left(185)

t.circle(-110,185)

t.forward(50)

move_pen(-180,-180)

t.left(180)

t.forward(600)

move_pen(0,50)

t.hideturtle()

t.color('#CD5C5C', 'red')

t.write(name, font=('Arial', 20, 'bold'), align="center")

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

time.sleep(2)

move_pen(220, -180)

t.hideturtle()

t.write(sign, font=('Arial', 20), align="center")defmain():

draw()

time.sleep(5)if __name__ == '__main__':

main()

python3表白代碼_Pyhton表白代碼——浪漫聖誕節