我們先來簡單回顧一下圖形之美1.0——從“試錯法”到“向錯誤學習”的内容。
我們從繪制一條邊開始 → 繪制正四邊形、正三邊形、正六邊形 → 猜測正多邊形外角和等于360度 → 驗證猜測 → 繪制其他的正多邊形 → 找到圓的繪制方法;
接着,我們繪制了正五角星 → 通過試錯法找到了144°這個度數 → 也找到了145°為什麼不正确的理由 → 追問自己,145°既然不是五角星所對應的外角,那麼它是哪個圖形的外角?
回歸到試錯法,嘗試調整邊的數目,第一次意外的收獲 → 分析這個意外的收獲 → 人為将誤差放置于邊長這個參數上 → 将邊長與旋轉度數同時進行誤差積累,第二次意外的收獲 → 得到彩色螺旋線的繪制方法;
最後,将放大與縮小的方法進行遷移,解決了兩道數學題目。
但是,“145°對應哪個圖形的外角”依然是遺留問題。
在《圖形之美1.0》中,我們建構了一條新的理解路徑,更加強調基本方法的梳理與應用,更加強調“可理解性”的概念,同時強調了能力的遷移。通過這種方式,對《彩色螺旋線》這節經典的編程案例課進行了重構。在《圖形之美2.0》中,我們将在此基礎之上繼續探究。
一、繪制正七角星
那麼,如何繪制一個正七角星呢?
思路:我們已經比較熟悉正五角星的繪制流程了,通過同樣的方法可以尋找到正七角星的外角度數。如果你認為沒有參照物就無法分析的話,那麼建議你可以先閱讀第二部分的内容,然後再回到第一部分來。
重複執行中的次數,表示圖形的邊數;
移動的步數,表示邊長,控制圖形的大小;
旋轉的度數,其實控制的是圖形的樣子;
不斷嘗試旋轉度數,直到102度。
102度有點小了,圖形尚未閉合,試試103度。
仔細分辨,103度又有點過了。也就是說,真正的外角度數應該介乎于102度與103度之間。那麼,我們該如何進一步修正,從而找到那個準确的度數呢?遇到困難先别着急,一定要記得回憶我們之前是否曾遇到過類似的問題,以及當時是如何解決的。
回憶一下,我們在繪制正多邊形的時候,通過“身體共鳴”的方式,猜測出對于任意一個正多邊形而言,從開始繪制到結束繪制,身體始終恰好旋轉了一圈,也就是360度,然後我們得出“旋轉度數等于360除以邊數”這個公式。
同樣的思路,我們也可以用類似身體共鳴的方式,找到正七角星的外角和度數。但是很快,我們就會發現,身體共鳴的方式似乎走不通,存在一個小小的困難(你可以嘗試用身體走出一個七角星,就會發現問題所在)。
這裡我們将提供兩種不同形式的理解思路,來尋找正七角星的外角和。
第一種,還記得我們在《圖形之美1.0》中,如何将繪制直線的過程可視化嗎?
同樣的道理,我們能否将旋轉的過程可視化?
相信你一定已經想到了,隻需要做出如下圖所示的調整即可。
為了解決我們在“身體共鳴”時所遇到的困難,我們不妨派一個角色出場替我們完成“共鳴”(将隐藏的角色顯示出來即可),我們看看效果:
怎麼樣,旋轉的度數數清楚了嗎?似乎有點混亂,又是移動又是旋轉的。如果能把移動和旋轉分開,不移動隻旋轉就好了。再一次回憶模型中三個參數的意義,我們可以嘗試将移動的步數改為“0”步再試試看。
怎麼樣,是不是清晰多了(這其實就是單變量控制法)!呆鯉魚一共旋轉了差不多兩圈。
如果一圈是360度的話,那麼兩圈應該是多少度呢?沒錯,是720度。我們嘗試一下這個度數,它一共有相等的七個外角,因此外角的度數為"720/7"度。重新嘗試。
完美。
在第一種方法中,我們實際上是派出一個角色替我們完成“身體共鳴”,從而達到觀察的目的。
我們接着來看第二種方法,它非常簡單直接。我們已經知道當外角等于103度時,得到的圖形雖然并不是正七角星,但是也非常接近了。
那麼,此時,這個非常接近正七角星的圖形一共旋轉了多少度呢?每次旋轉103度,共旋轉了7次,因此一共旋轉了103*7=721度。
想一想,旋轉一圈是360度,那721度旋轉了幾圈呢?應該是2圈多一點點,恰好多了1度。此時圖形稍微過了一點,如果要修正的話,你願意嘗試多少度呢?當然是720度啦。驗證過程同第一種情況,不再贅述。
這樣我們就完成了正七角星的繪制。正當我們開始準備換新任務的時候,有一個同學發現了一件有趣的事情。他說他發現了另外一個正七角星。我們看看他那裡究竟發生了什麼?
旋轉度數為154度時,
旋轉度數為155度時,
的确,這個正七角星不同于之前那個正七角星,但同樣出現了要麼差一點要麼過一點的情形。
我們趕緊試試剛才學過的那兩種方法,先把這個正七角星“修複”一下。這裡用第二種方法進行修複:155*7=1085,最接近的圈數是三圈,而三圈等于1080度,因此将旋轉度數修正為"1080/7"度。
完美!
可是,這是怎麼回事呢?為什麼會有兩個不同的正七角星呢?按照自然的想法,是否還存在第三個不同樣子的正七角星呢?似乎很難回答的樣子。
我們重新回到繪制正七角星的過程上面來。在《圖形之美1.0》的時候,所有的圖形繪制任務,都是先有圖形,然後再進行模仿繪制。因此,我們可以采用“先分析再繪制”的方法。但在這裡,并沒有給出具體的樣子,而是通過“試錯法”找到的。
那,正七角星有沒有辦法先在紙上畫出來,然後進行直觀地分析呢?
二、紙上繪制正多角星
重新描述前面的問題,如何把沒有見過的正多角星在紙上先畫出來呢?要回答這個問題,我們不得不回到五角星中進行分析。
注意,這個時候你還沒有見過正七角星!
思考,正五角星與正五邊形的關系是什麼?
所謂關系,就是能否通過其中一個“抵達”另外一個?比如從一個正五角星出發,如何得到一個正五邊形呢?我們很容易發現該五角星的内部其實就是一個正五邊形。如果剛才的發現是通過觀察“内部”得到的,那麼如何通過“外部”獲得一個新的正五邊形呢?
如上圖所示,隻需要将五角星的頂點依次連線即可得到一個正五邊形。這說明什麼?
這說明了,我們可以通過繪制正五角星的方式間接得到一個正五邊形。我們找到了一條從正五角星到正五邊形的路。那麼,反過來,能不能通過正五邊形得到一個正五角星呢?
如上圖所示,隻需要把正五邊形的每條邊分别向兩端延長,直至與另一條邊的延長線相交,即可得到一個正五角星。
這樣,我們就可以通過五邊形來繪制正五角星。換句話說,我們找到了一個方法,這個方法能夠通過正多邊形繪制出正多角星。我們驗證一下這個方法。
從正六邊形到正六角星,
似乎這并不是我們期望的六角星的樣子,因為這個圖形是由兩個三角形組成的,不能一筆畫。
沒錯,這個圖形正是前面我們通過試錯法找到那個正七角星。
我們按照之前的思路,用這種方法去分别嘗試繪制n=8、9、10、12、20、36……的情形,就能得到相應的正多角星。等等,正三十六邊形,用手畫的話,太費勁了。正六、正七邊形已經畫的是歪歪扭扭的了,正三十六邊形,想想都想放棄了。怎麼辦?
怎麼辦?先别着急。還記得在《圖形之美1.0》中,随着邊數的增大,正多邊形越來越像什麼嗎?
對了,正多邊形會越來越像一個圓。我們剛才已經學會通過正五邊形與正五角星的關系來理解它們了,那正多邊形和圓的關系又是什麼呢?
上圖揭示了正多邊形與圓(實際上是它的外接圓)的關系,我們将從兩個方面考察這一點。
一方面是從正多邊形到圓,我們隻需要把每一條邊替換為圓弧,就能得到圓。
另一方面是從圓到正多邊形,正多邊形的頂點實際上恰好就是整個圓周的等分點。也就是說,假設n=5,我們可以先畫一個完整的圓,然後将圓周進行五等分得到五個點,然後依次連接這五個點,就能得到正五邊形。
我們再次以正七角星為例。
我們可以通過這樣的方式在紙上畫出正多角星了!
三、探究正多角星數目
在第一部分中,我們發現了兩個不同的正七角星;在第二部分中,我們找到了“圓→正多邊形→正多角星”的繪制路線;我們将圓、正七邊形、正七角星放在一起觀察一下。
對于同樣的7個點,按照1-2-3-4-5-6-7-1的順序畫弧,得到的就是一個圓(黑色);按照1-2-3-4-5-6-7-1的順序連線,得到的就是一個正多邊形(藍色);按照1-3-5-7-2-4-6-1的順序連線,得到的就是我們之前找到的正七角星(紅色)。
我們找到了比剛才更加優化的一個做圖方法:先描點再連線,不同的連線順序就能得到不同的圖形。
那麼,另外一個正七角星也能通過這樣的方式繪制出來嗎?驗證一下。
果然可以,是1-4-7-3-6-2-5-1的順序,和之前的順序不同。也恰恰是因為連點的順序不同,所以最終得到了不同的圖形。
因此,我們找到了一個方式,而這種方式可以解釋之前那兩個不同的正七角星的來源問題,因此這種方式更具有解釋力。
我們按照逆時針的順序對圓周上的點按自然順序(1、2、3……)進行标号。從标号為“1”的點開始,
接下來,很自然的一個問題,如果分别與“ 4”的點、“ 5”的點、“ 6”的點相連會得到什麼樣的圖形呢?
注意:這裡不能與“ 7”的點相連,因為從标号為“1”的點開始數,“ 7”就會回到自身;且這裡默認為取餘運算,也就是說8和1關于7是同餘的,所謂關于7同餘指的是1除以7的餘數與8除以7的餘數是相同。
我們按照這種方式,重新驗證n=5、6、8、9、10、11的情形,結果如下圖所示。
這樣,即便是面對任意一個正多角形,我們也有自信将其畫出來了!
我們仔細觀察這張圖,将注意力聚焦在畫橫線的那些圖上,也就是不能一筆畫出的正多角星。其實,“正多角星”這個名稱已經不準确了,因為它表示的圖形并不唯一,我們需要構建一個新的名字來描述它們。
不難發現,所有無法一筆畫出的構圖方式與n的取值之間都存在着某種聯系。當構圖方式( 2)恰好能被n(=6)整除的時候,是無法繪制的,此時恰好是2個3(=6/2)角形。
猜想:對于任意的n,分别考察1/n、2/n、3/n……。當k/n無法約分的時候,存在相應的正多角星;否則,當k/n可以約分的時候,不存在能夠一筆畫出的正多角星。
鑒于正多角星無法唯一的表示圖形,且正多角星本身也是正多邊形。不妨給出如下的新定義。
第k型正多邊形:當k/n無法約分時,我們将通過“ k”連邊方式得到的圖形稱為第k型正多邊形。
例如,第1型正多邊形就是我們很熟悉的正多邊形,而第2型正五邊形其實就是正五角星。
至此,我們雖然尚未能找到一個準确的計數公式,去計算對于任意的n,不同類型的正多邊形的數目。但是,我們卻能夠通過這種方式繪制出所有類型的正多邊形。
想一想,你能編寫一個程序完成這個繪制任務嗎?
四、145度的正多邊形?
既然已經找到了各個正多角星,接下來就需要通過編程逐一繪制了。
先使用“試錯法”找到各個圖形大概旋轉的角度,然後通過“直接計算法”或者“(等價)身體共鳴”的方式進行優化調整,直至找到各個圖形旋轉度數的準确值,然後将各個圖形對應的外角和并填入下方的表格中。
在上表中,我們很容易看到,
第1型正多邊形的外角和總是等于360度;
第2型正多邊形(如果存在的話)的外角和總是等于720度,而720恰好等于360*2;
第3型正多邊形(如果存在的話)的外角和總是等于1080度,而1080恰好等于360*3;
第4型正多邊形(如果存在的話)的外角和總是等于1440度,而1440恰好等于360*4……
猜想:如果k/n是最簡分數,那麼第k型正n邊形的外角和等于360*k度。
最後,我們回到上節課遺留的問題,145度對應的正多邊形是?如果第k型正n邊形對應的外角度數恰好為145度,根據上述猜想,我們應該嘗試使等式145*n=360*k成立的n和k。
因此,k=145*n/360,換句話說,我們隻需要找到使得“145*n/360”為整數的最小整數n即可。
不論是手算還是通過編程來計算,我們都能得到當n=72時,145*72/360=29,這說明了,第29型正72邊形對應的外角恰好是145度。
小結
上述過程其實是一個由好奇心出發,通過“關系”的角度提出關鍵問題,用已有的方法進行類比探究,最後通過結構化框架進行知識梳理與總結的過程。
我們不妨重新梳理一下,學生在上述過程中可能獲得的:
1、找到了“身體共鳴”的一種等價方式;
2、将旋轉的過程進行可視化;
3、單變量控制法;
4、對于360的整數倍的敏感程度(這其實就是一種數感,例如熟記π、2π、3π……);
5、新問題與舊問題進行關聯的方法(這其實就是模式匹配,是計算思維的重要内容之一);
6、從正五角星與正五邊形的相互關系出發進行提問和學習的方法;
7、從圓到正多邊形,再到正多角星的作圖方法;
8、通過n等分一個圓周得到n個點,按照固定次序連點的作圖方法;
9、通過分析n=5、6、7、8、9、10、11這些具體的案例,再用表格的形式進行歸納整理,從而提取關鍵信息的方法;
10、提出猜想、并進行驗證的方法;
11、創造概念的方法(描述);
最後,留兩個思考題:
1、正五角星的外角和是720度,那麼在圓周上任意找五個點作五角星,它的外角和還是720度嗎?進一步,任意大小的五角星外角和還是720度嗎?
2、通過五邊形可以畫五角星,通過五角星可以畫新的五邊形,通過新的五邊形可以再過一個新的五角星……這個過程可以一直重複下去。那麼,這種不斷叠代的圖形長什麼樣子呢?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!