<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Pythoner 的花式浪漫,你會嗎?

          共 821字,需瀏覽 2分鐘

           ·

          2020-12-24 02:41

          文 |?閑歡

          來源:Python 技術(shù)「ID: pythonall」

          一年一度的圣誕節(jié)又要到了,對于這個重大的節(jié)日,今年的外國人可能比較難,還處在水深火熱之中,希望他們一切都趕快好起來。在我們國內(nèi),我們還可以像往年一樣正常地過節(jié),雖然是一個外國人的節(jié)日,但是每年在這個日子里,還是成就了不少鴛鴦的,也不失是一件好事。作為 Python 程序員,你還在送花、送蘋果、送口紅嗎?有沒有想過程序猿式的浪漫?本文就拋磚引玉,為大家提供一種思路,希望大家喜歡。

          思路和實現(xiàn)

          本文想通過 turtle 動態(tài)畫圖,向觀看對象呈現(xiàn)一個動態(tài)繪制禮物的過程。一提到圣誕節(jié),大家映入腦海中的肯定就是郁郁蔥蔥的綠色圣誕樹,如果只是一棵圣誕樹,未免也太平平無奇了,所以我準(zhǔn)備在圣誕樹的頂部加一顆愛心,來起到畫龍點睛的作用。

          我們從上往下畫這個動圖,所以第一步要畫的是愛心。我將愛心分為兩個半圓與一個正方形的組合,并且用粉紅色來著色,我們來看看具體實現(xiàn):

          def?loving_heart(r):
          ????l?=?2?*?r
          ????tur.left(45)
          ????tur.forward(l)
          ????tur.circle(r,?180)
          ????tur.right(90)
          ????tur.circle(r,?180)
          ????tur.forward(l)

          愛心畫完了,就要開始畫圣誕樹了,我們知道,圣誕樹從樹頂往下是一個對稱的錐形,這么規(guī)則的形狀,正是我們想要的,它簡化了我們程序的邏輯。我們先畫樹的主干,然后再畫小樹枝,小樹枝采用從上到下一層一層畫的模式,每一層左右對稱,并且畫法相同,采用遞歸的方式來實現(xiàn):


          #?樹函數(shù)(遞歸)
          def?tree(d,?s):
          ????if?d?<=?0:
          ????????return
          ????tur.forward(s)
          ????tree(d?-?1,?s?*?.8)
          ????tur.right(120)
          ????tree(d?-?3,?s?*?.5)
          ????tur.right(120)
          ????tree(d?-?3,?s?*?.5)
          ????tur.right(120)
          ????#?回退函數(shù)
          ????tur.backward(s)

          畫完這兩部分之后,我們的愛心圣誕樹就畫好了,但是我們不能就這樣結(jié)束,我們還需要加一句表白的語句或者祝福語(這個大家自由發(fā)揮啦),我這里就寫了一句“Merry Christmas”作為示例。

          整個作畫的主程序是這樣的:


          #?畫愛心部分
          tur.penup()
          #?設(shè)置起點位置
          tur.goto(0,?200)
          tur.pendown()
          #?設(shè)置畫筆顏色
          tur.pencolor('pink')
          tur.color('pink')
          #?對圖形進(jìn)行填充
          tur.begin_fill()
          #?執(zhí)行畫愛心函數(shù)
          loving_heart(20)
          tur.end_fill()

          #?畫樹部分
          n?=?100
          tur.speed('fastest')
          tur.right(225)
          tur.color("dark?green")
          tur.backward(n?*?4.8)
          tree(15,?n)
          tur.backward(n?/?5)
          tur.penup()
          tur.Turtle().screen.delay(2)
          tur.goto(80,?0)
          tur.pendown()
          tur.color("gold")
          tur.write("Merry?Christmas!",?font=("Times",?32,?"bold"))
          tur.hideturtle()

          作畫的過程我錄制了一下,以便大家看看效果:

          作畫完成后,最終的效果是這樣子的:

          總結(jié)

          本文以動態(tài)畫一棵愛心圣誕樹為例,為大家展現(xiàn)了程序猿式的浪漫,這個禮物的重點是要動態(tài)畫,展現(xiàn)出畫的過程,讓非程序員女生能夠感受到程序的神奇,而不是把最后的成品給她。當(dāng)然啦,大家可以根據(jù)這個思路自由發(fā)揮,給自己心愛的她進(jìn)行定制。反正我寫程序的過程被女朋友看到了,然后她在一旁發(fā)出“哇哇,原來程序員還可以這樣浪漫”的叫聲。為了大家我也是拼了,提前泄露了天機,以至于我還需要再準(zhǔn)備一份禮物了,大家覺得這種無私奉獻(xiàn)的精神是不是值得點個“在看”呢?


          PS公號內(nèi)回復(fù)「Python」即可進(jìn)入Python 新手學(xué)習(xí)交流群,一起 100 天計劃!


          老規(guī)矩,兄弟們還記得么,右下角的 “在看” 點一下,如果感覺文章內(nèi)容不錯的話,記得分享朋友圈讓更多的人知道!

          代碼獲取方式

          識別文末二維碼,回復(fù):201222


          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产色情视频 | 天天干天天日夜夜操 | 九九激情网 | 高清激情视频在线看 | 视频偷拍网址大全 |