成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

除了畫佩奇我們還要玩點更高級的

Dean / 3208人閱讀

摘要:啥是佩奇已不重要。佩奇是他用搜集的所有信息,一點一滴的用心創(chuàng)造編織愛的過程。畫佩奇的代碼已經(jīng)上傳到后臺,公眾號后臺回復(fù)社會人即可獲取。

“你告訴爺爺你需要什么東西呀,爺爺給你準(zhǔn)備,佩奇,什么是佩奇呀?”...

這是一個發(fā)生在大山里的故事,但故事的情節(jié)所有人都不會陌生??爝^年了,在農(nóng)村爺爺給城里的孫子打電話,孫子說想要“佩奇”,為了滿足孩子的心愿,爺爺開始滿村子找佩奇…

當(dāng)除夕夜家人團聚,爺爺開始展示愛心禮物,“硬核佩奇”的出現(xiàn),驚呆眾人高能反轉(zhuǎn),別出心裁的愛跨越了隔代距離,成功博得孫子歡心。

啥是佩奇?已不重要。佩奇是他用搜集的所有信息,一點一滴的用心創(chuàng)造、編織愛的過程。佩奇是對孫子的關(guān)愛、佩奇是對團圓的企盼。

看著爺爺滿村子找佩奇,鼻子有點酸,作為程序猿我想用Python來告訴爺爺,啥是佩奇?用python做一個社會人,這是很久之前的一篇文章,Turtle是自己接觸python之后用到的第一個庫,Trutle這個庫很有意思,很容易得到滿足感,學(xué)習(xí)完以后自己隨手畫了一個佩奇,佩奇當(dāng)時沒火沒想到今天火了。畫佩奇的代碼已經(jīng)上傳到后臺,公眾號后臺回復(fù)【社會人】即可獲取。今天的文章再次給大家介紹一下Turtle,用它來畫高級一點的東西,話不多說我們開始吧。
程序介紹

在Python中有很多編寫圖形程序的方法,一個簡單的啟動圖形化程序設(shè)計的方法是使用Python內(nèi)嵌的Turtle模塊。Turtle是Python內(nèi)嵌的繪制線、圓以及其他形狀(包括文本)的圖形模塊。它很容易學(xué)習(xí)并且使用簡單。

一個Turtle實際上是一個對象,在導(dǎo)入Turtle模塊時,就創(chuàng)建了對象,然后,可以調(diào)用Turtle對象的各種方法完成不同的操作。

當(dāng)創(chuàng)建一個Turtle對象時,它的位置被設(shè)定在(0,0)處——窗口的中心,而且它的方向被設(shè)置為向右。Turtle模塊用筆來繪制圖形。默認情況下,筆是向下的(就像真實的筆尖觸碰著一張紙)。如果筆是向下的,那么當(dāng)移動Turtle的時候,它就會繪制出一條從當(dāng)前位置到新位置的線。

今天我們要畫的是一個可以獲取當(dāng)前時間的鐘表。
具體實現(xiàn)

因為鐘表輪廓中是有幾個小黑點的,那么我們首先需要設(shè)置畫筆的動作,抬起畫筆向前一段距離以后再放下

1def Skip(step):
2 turtle.penup()
3 turtle.forward(step)
4 turtle.pendown()

注冊Turtle的形狀,建立一個表針Turtle,同時記錄多邊形起點和終點。(當(dāng)前的烏龜位置是多邊形的第一個頂點,多邊形的最后一個頂點將與第一個頂點相連)返回最后記錄的多邊形。

1def mkHand(name, length):
2 turtle.reset()
3 Skip(-length * 0.1)
4 turtle.begin_poly()
5 turtle.forward(length * 1.1)
6 turtle.end_poly()
7 handForm = turtle.get_poly()
8 turtle.register_shape(name, handForm)

因為鐘表有三個指針,現(xiàn)在需要建立三個表針Turtle并初始化,同時還需要建立一個輸出文字的Turtle

1def Init():
2 global secHand, minHand, hurHand, printer
3 turtle.mode("logo")
4 mkHand("secHand", 135)
5 mkHand("minHand", 125)
6 mkHand("hurHand", 90)
7 secHand = turtle.Turtle()
8 secHand.shape("secHand")
9 minHand = turtle.Turtle()
10 minHand.shape("minHand")
11 hurHand = turtle.Turtle()
12 hurHand.shape("hurHand")
13
14 for hand in secHand, minHand, hurHand:
15 hand.shapesize(1, 1, 3)
16 hand.speed(10)
17
18
19 printer = turtle.Turtle()
20 printer.hideturtle()
21 printer.penup()

現(xiàn)在需要定義時間格式

1def Week(t):
2 week = ["星期一", "星期二", "星期三",
3 "星期四", "星期五", "星期六", "星期日"]
4 return week[t.weekday()]
5
6
7def Date(t):
8 y = t.year
9 m = t.month
10 d = t.day
11 return "%s %d%d" % (y, m, d)

繪制指針的動態(tài)顯示

1def Tick():
2
3 t = datetime.today()
4 second = t.second + t.microsecond * 0.000001
5 minute = t.minute + second / 60.0
6 hour = t.hour + minute / 60.0
7 secHand.setheading(6 * second)
8 minHand.setheading(6 * minute)
9 hurHand.setheading(30 * hour)
10
11 turtle.tracer(False)
12 printer.forward(65)
13 printer.write(Week(t), align="center",
14 font=("Courier", 14, "bold"))
15 printer.back(130)
16 printer.write(Date(t), align="center",
17 font=("Courier", 14, "bold"))
18 printer.home()
19 turtle.tracer(True)
20
21 # 100ms后繼續(xù)調(diào)用tick
22 turtle.ontimer(Tick, 100)

現(xiàn)在是重頭戲了,繪制鐘表的輪廓,這的主要邏輯就是一個循環(huán),不難于理解。

1def SetupClock(radius):
2 turtle.reset()
3 turtle.pensize(7)
4 for i in range(60):
5 Skip(radius)
6 if i % 5 == 0:
7 turtle.forward(20)
8 Skip(-radius - 20)
9
10 Skip(radius + 20)
11 if i == 0:
12 turtle.write(int(12), align="center", font=("Courier", 14, "bold"))
13 elif i == 30:
14 Skip(25)
15 turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))
16 Skip(-25)
17 elif (i == 25 or i == 35):
18 Skip(20)
19 turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))
20 Skip(-20)
21 else:
22 turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))
23 Skip(-radius - 20)
24 else:
25 turtle.dot(5)
26 Skip(-radius)
27 turtle.right(6)

寫在最后

學(xué)習(xí)就是舉一反三,希望你可以用turtle畫出更有意思的東西來。
鐘表的完整代碼需要后臺回復(fù)【鐘表】獲取

【推薦閱讀】

致青春--Python實現(xiàn)俄羅斯方塊

【Python爬蟲】Urllib的使用(2)

【LeetCode】貪心算法--劃分字母區(qū)間(763)

機器學(xué)習(xí)實戰(zhàn)--住房月租金預(yù)測(3)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73077.html

相關(guān)文章

  • 除了佩奇我們還要點更高級

    摘要:啥是佩奇已不重要。佩奇是他用搜集的所有信息,一點一滴的用心創(chuàng)造編織愛的過程。畫佩奇的代碼已經(jīng)上傳到后臺,公眾號后臺回復(fù)社會人即可獲取。 你告訴爺爺你需要什么東西呀,爺爺給你準(zhǔn)備,佩奇,什么是佩奇呀?... 這是一個發(fā)生在大山里的故事,但故事的情節(jié)所有人都不會陌生??爝^年了,在農(nóng)村爺爺給城里的孫子打電話,孫子說想要佩奇,為了滿足孩子的心愿,爺爺開始滿村子找佩奇… 當(dāng)除夕夜家人團聚,爺爺開...

    tomener 評論0 收藏0
  • 用CSS小豬佩奇,你就是下一個社會人!

    摘要:所以一開始讓我看小豬佩奇的時候我是拒絕的,因為你不能讓我看,我就馬上去看,第一我要試一下。其實這道題對于真正看了小豬佩奇的人來說是送分題,就看是不是真的看了。這里說的都是類,這也正是小豬佩奇的構(gòu)圖精髓,一種手繪風(fēng)格,而不是標(biāo)準(zhǔn)刻板的線條。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實踐干貨哦~ 作者:江志耿 | 騰訊TEG網(wǎng)絡(luò)工程師 我是佩奇,哼,這是我的弟弟喬治,呱呱,這是我的媽...

    Snailclimb 評論0 收藏0
  • 小豬喬治和border-radius

    摘要:主要有以下幾個步驟找一張小豬喬治的圖片參考對圖片中的部分進行分解,并逐一實現(xiàn)廢話其實掌握了后,這些步驟都不難了,細心繪制就可以完成啦。我繪制的小豬喬治如圖參考資料用畫小豬佩奇,你就是下一個社會人 概述 之前看了一篇關(guān)于用CSS來畫小豬佩奇的文章,抱著鍛煉自己的心態(tài)造了個輪子,畫了個佩奇的小弟喬治,效果可以看這里,源碼在這里。 開發(fā)過程中也讓我對border-radius這個屬性有了更深...

    guqiu 評論0 收藏0
  • JustDoIt:立刻開始你編程之旅

    摘要:于是乎,我建立了這個項目,收錄一些有趣的小程序,便于閱讀和思考。下面是一些列舉一些有趣的內(nèi)容這是來自編程從入門到實踐中的一個小游戲。用語言實現(xiàn)的編譯器。做的小博客,持續(xù)開發(fā)中這個項目還在不斷豐富中,如果你有什么有趣的分享,歡迎聯(lián)系我。 紙上得來終覺淺,絕知此事要躬行。 這本書或這個視頻看完了,我可以做點什么?編程難道只是命令行打印些東西?該找點什么適合練手的項目來練習(xí)練習(xí)呢? 我想可能...

    arashicage 評論0 收藏0
  • 每天堅持一個CSS——社會人

    摘要:每天一個社會人實現(xiàn)效果想法之前看到一篇博客,使用繪制出了小豬佩奇,所以自己想試一試,采用純繪制出低配版的小豬佩奇。在布局上,沒有堅持嵌套,導(dǎo)致縮放時位置錯位,如果想實行縮放一致,可采用小豬的頭部嵌套布局實現(xiàn)。 每天一個CSS-社會人 實現(xiàn)效果 showImg(https://segmentfault.com/img/remote/1460000016461611?w=667&h=620...

    Eidesen 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<