亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        用遞歸畫出美麗的勾股樹

        2020-06-24 12:52:16Intoweb
        電腦報 2020年23期

        Intoweb

        我們上期已經(jīng)知道了勾股數(shù)——符合勾股定理(a2+b2=c2)的一組數(shù)字,將它圖形化表達如圖1所示。

        以勾股定理圖為基礎(chǔ),以兩個較小的正方形(a和b)為基礎(chǔ),繼續(xù)按勾股定理生長,又能畫出下一代的勾股定理圖,如此循環(huán)畫下去,最終得到一棵完全由勾股定理圖組成的樹狀圖形,稱之為“勾股樹”,再恰當不過(如圖2)。

        由于圖中的一個部分和它的整體或者其他部分都十分相似,因而被稱為分形圖,分形圖內(nèi)任何一個相對獨立的部分,在一定程度上都是整體的再現(xiàn)和縮影。這就是分形圖的自相似的特性。所以我們以前繪制過的謝爾賓斯基三角形也是一種分形圖(如圖3)。

        用Scratch畫勾股樹

        我們用Scratch來畫勾股樹。

        1. 定義自制積木“勾股樹(邊長)”(圖4)。

        2. 以正方形的左下角為起點開始畫出一個大正方形c,并多畫一條邊,循環(huán)次數(shù)從普通方形的4次變?yōu)?次,在方形的左上角終止,作為下一個正方形b的起點。

        3. 左轉(zhuǎn)120°,并用勾股樹積木畫出正方形b,此處使用了遞歸——循環(huán)中引用了自身。根據(jù)勾股定理計算,b的邊長以大正方形邊長c作為三角形的斜邊(b=c×cos30°)(如圖5)。

        4. 移動到正方形b的右下角,右轉(zhuǎn)90°。以此為起點用勾股樹積木繪制正方形a,根據(jù)勾股定理計算,a的邊長以大正方形邊長c作為三角形的斜邊,(a=c×cos60°)(如圖6)。

        5. 移動到正方形b的左上角,以正方形b為大正方形開始繪制出下一代3個正方形。

        6. 由于用到了遞歸,為了程序的正常運行,必須給循環(huán)一個出口。以最小正方形的邊長作為判斷條件,當邊長小于5時跳出循環(huán)。用“如果…那么”積木和“停止這個腳本”組合完成條件判斷和終止循環(huán)。

        7. 自定義積木程序(如圖7)。

        8. 引用自定義積木,設(shè)定開始位置和第一個正方形邊長(如圖8)。

        9. 程序運行結(jié)果如圖9,點擊“編輯—打開加速模式”,可以快速畫完圖形(如圖9)。

        10. 圖9繪制的圖形是30度60度角的直角三角形。想要繪制等腰直角三角形的勾股樹只要改變小正方形邊長為(b=c×cos45°),旋轉(zhuǎn)角度變?yōu)?35°和45°(如圖10)。你也可以通過改變勾股定理圖中直角三角形兩個銳角大小構(gòu)建不同形狀的勾股樹(詳細代碼可掃碼下載)。

        用Python畫勾股樹

        Scratch的畫筆沒有填色功能,所以看起來比較簡陋,使用Python的turtle小海龜庫繪制圖形可以填色,繪制出來的勾股樹更好看(如圖2)。但是繪制速度遠不及使用加速模式的Scratch。

        1. 本例用到了turtle的繪圖和填色功能;math的cos函數(shù)和 radians函數(shù)(角度轉(zhuǎn)弧度);用random產(chǎn)生隨機數(shù),用于方塊的隨機顏色。

        2. 具體算法原理與Scratch方法一致。

        3. 定義繪制勾股樹的函數(shù)“draw(a):”。

        4. 定義出口條件“if a > 5:”。

        5. 設(shè)置隨機的rgb顏色。

        6. 繪圖使用填充狀態(tài)“begin_fill()”。

        7. 和剛才繪制正方形一樣需要循環(huán)5次“for i in range(5):”。

        8. 由于Python的math庫的cos(X)函數(shù)是以弧度制求X的余弦。我們在Scratch中的(a×cos30°)需要用radians將30度轉(zhuǎn)化為30弧度代入計算才能獲得正確結(jié)果。

        所以繪制方形語句為“draw(a * cos(radians(30)))”。

        9. 小烏龜?shù)木唧w繪制路徑和Scratch相同。

        10. mode(‘logo),表示初始方向是向上(北)。將logo改為standard則是向右(東)。

        11. speed(0),設(shè)定移動速度,0-10。0已經(jīng)是最快了,但是還是挺慢的。

        12. done(),寫在程序最后一行,避免畫完圖形就自動關(guān)閉(如圖11)。

        欧美牲交a欧美牲交aⅴ免费下载 | 69精品丰满人妻无码视频a片| 亚洲一级电影在线观看| 少妇极品熟妇人妻高清| 亚洲一二三四区免费视频| 亚洲一区二区三区四区五区六| 国产美女在线精品免费观看网址| 欧美高h视频| 永久中文字幕av在线免费| 欧洲多毛裸体xxxxx| 精品人人妻人人澡人人爽牛牛| 天堂在线观看av一区二区三区| 国产激情视频高清在线免费观看| 性欧美丰满熟妇xxxx性久久久| 久久九九国产精品怡红院| 在线精品日韩一区二区三区| 长腿丝袜在线观看国产| 无码少妇丰满熟妇一区二区| 国产熟妇高潮呻吟喷水| 久久男人av资源网站无码| 白色白在线观看免费2| 国产成人综合美国十次| 亚洲av成人综合网| 午夜国产精品视频免费看电影 | 精品国产一区二区三区色搞| 国产麻豆md传媒视频 | 午夜精品久久久久久久久久久久| 国产精品综合久久久久久久免费| 亚洲国产精品av麻豆一区| 亚洲av男人电影天堂热app| 国产超碰人人模人人爽人人喊| 亚洲中文无码精品久久不卡| 日本一区二区三区清视频| 国内精品久久久久久久97牛牛 | 久久久久久久97| 日韩爱爱网站| 中文字幕一区二区三区精品在线 | 青草福利在线| 日美韩精品一区二区三区| 妺妺窝人体色www在线| 国产午夜精品久久久久免费视 |