S4E23 勾股定理歐氏證明:單滑桿控制多次變形
在這節(jié)引用的例子是知名的勾股定理的動態(tài)證明,但這次的教學(xué)重點在于利用單個滑動條來呈現(xiàn)多次復(fù)合的移動操作,最主要的思維就是多層 If 的使用。

你將學(xué)會
使用滑動條,搭配旋轉(zhuǎn)與平移的指令
利用 If 來實現(xiàn)單一滑動條控制多次移動
學(xué)習指引
這節(jié)課定位為中階課程,以指令輸入為主。若是新手可以先完成如下的基礎(chǔ)課程:


操作步驟
1. 繪制直角三角形
問:幾何原本證明勾股定理的圖形結(jié)構(gòu)是什么?
答:由一個直角三角形,從三邊長出三個正方形。

問:如何繪制出一個直角三角形?
答:可用直徑所對的圓周角是直角來繪制。另個方法是用三邊長滿足勾股定理關(guān)系來繪制。在這課件為了以兩股長 a,b 為參數(shù),先建滑動條 a,b 。再利用 c^2=a^2+b^2 的關(guān)系來確定這個直角三角形?。
#?建立滑動條 a,b?
a = 3
b = 4?
#?讓?c?與?a,b?可構(gòu)成直角三角形
c?= (a^2+b^2)^0.5?
問:如何利用這 3 個參數(shù)來確定三個點的位置。
答:以 c 為斜邊的邊長并將 AB 兩點水平擺置?。而 C 點的位置,利用的就是 SSS 構(gòu)造全等,分別用 A, B 為圓心,繪制兩圓,取其交點的方式來得到 C 的位置。
#?利用?a,b,c?來建立三個點
A?=?(0,0)
B?=?A?+?(c,0)?
# 思考:為何要寫 B = A+(c,0)?而不寫 B=?(c,0)
C?=?Intersect(Circle(A,b),Circle(B,a),1)??
?
# intersect(?物件1, 物件2, 次序 k )?:取得兩個物件的第 k 個交點
#?可對每個點的?[標題]?設(shè)置?$%n$?來讓標簽以斜體顯示
問:如何連接這三點構(gòu)成直角三角形呢?
答:可以用 [線段] Segment 來完成,也可用 [多邊形] Polygon 來標好三條邊。而對于直角,可以用 [角] Angle 來標角。
#?建立三個邊與標注直角
plABC?=?Polygon(A,B,C)
aACB = angle(A,C,B)
2. 長出三個正方形
完成直角三角形后,接著從這三邊各長出一個正方形。并從 C 點來作正方形的垂線。

問:如何繪制正方形?是否要先找出四個頂點的位置。
答:仍可用?[多邊形] Polygon 工具來達成。?當多邊形工具的第 3 個參數(shù)為一個整數(shù) n 時,就會以這兩點為邊繪制出一個正 n 邊形。注意:其方向為逆時針方向來呈現(xiàn)。
plAB?=?Polygon(B,A,4)
plAC?=?Polygon(A,C,4)
plCB?=?Polygon(C,B,4)
問:如何做垂線找出垂足?
答:可以利用 [垂線] 工具,在利用 [交點] 工具取得垂足。在這介紹另個指令?[最近點] ClosestPoint ,來取得垂足的點。
C_1?=?ClosestPoint(line(A,B),C)
C_2?=?ClosestPoint(line(A,B),C)
SCC_2?=?Segment(C,C_2)
3. 用滑動條控制圖形的平推
在這小節(jié)主要使用滑動桿來控制圖形的平推,平移的主要概念就是向量。

問:如何讓圖形可變動?
答:圖形的變化決定于點的變化。因此,先決定點是如何移動的。
在此,利用向量的參數(shù)式,搭配滑動條參數(shù)參數(shù) t ,來控制點的變化。例如:Ct = C+ t*(B-C) 標示由 C 往 CB 方向移動。完成 Ct,F(xiàn)t, Gt 的設(shè)定后,可用[多邊形] 來連接四個點。
#?由參數(shù)控制平推
t?=?Slide(0,1,0.1)
Ct?=?C?+?t(B-C)
Ft?=?F?+?t(B-C)
Gt?=?G?+?t(G-G)
plACFGt?=?Polygon(A,Ct,Ft,Gt)
4. 用單一滑動條控制圖形多次的移動
下圖讓圖形分三個階段進行先平推、再旋轉(zhuǎn)、再平推。其思維與分段函數(shù)類似。在實踐這個的方法主要使用 If 這指令。

問:如何讓圖形平移后再轉(zhuǎn)動?
答:利用 If 來區(qū)分成兩個階段。?以 Ct 為例,前半段 0<t< 1 時,平移 C+t(B-C)。后半段 1<t<2 時,旋轉(zhuǎn) Rotate(B, (t-1)*(-pi/2), A)。要特別主要就是旋轉(zhuǎn)角的部分是(t-1)*(-pi/2)?,而不是?t*(-pi/2) 。
此外,對 Ft 來說,平移后的位置,并非原本圖形上的點。這時在將這個中間點重新命名為 F1,方便作第二次的轉(zhuǎn)動。
#?二階段移動:平推再旋轉(zhuǎn)
Ct?=?If(t<=1,?C+t(B-C),?If(t<=2,Rotate(B,?(t-1)(-pi/2),?A),D))
F1?=?F?+?(B-C)
Ft?=?If(t<=1,?F+t(B-C), If(t<=2,Rotate(F1,?(t-1)(-pi/2),?A),C_2))
Gt?=?If(t<=1,?G+t(G-G),?If(t<=2,Rotate(G,?(t-1)(-pi/2),?A),C_1))
問:如何讓圖形平移后再轉(zhuǎn)動接著在平移?
答:這時就用三層的 If,而第三層操作的時間參數(shù)就要使用 (t-2) 來控制。
#?左側(cè)三階段移動:平推旋轉(zhuǎn)再平推
Ct?=?If(t<=1,?C+t(B-C),?If(t<=2,Rotate(B,?(t-1)(-pi/2),?A),D))
F1 = F + (B-C)
F2 = Rotate(F1, -pi/2,A)
Ft?=?If(t<=1,?F+t(B-C),?If(t<=2,Rotate(F1,?(t-1)(-pi/2),?A),If(t<=3,F2+(t-2)*(C_2-F2),C_2)))
Gt?=?If(t<=1,?G+t(G-G),?If(t<=2,Rotate(G,?(t-1)(-pi/2),?A),If(t<=3,C+(t-2)*(C_1-C),C_1)))
# 三階段移動:平推旋轉(zhuǎn)再平推

問:對于右側(cè)的移動,時間要如何設(shè)置呢?
答:若要讓左右兩側(cè)比較一致,可以讓右側(cè)使用參數(shù) s。而其中 s 定為 t-3 。
但為了讓 t 值不為負數(shù),則利用 If(t<3,0,t-3) 來達成此效果。
#?右側(cè)三階段移動:平推旋轉(zhuǎn)再平推
s?=?If(t<3,0,t-3)
Cs?=?If(s<=1,?C+s(A-C),?If(s<=2,Rotate(A,?(s-1)(pi/2),?B),E))
I1?=?I?+?(A-C)
I2?=?Rotate(I1,?pi/2,A)
Is?=?If(s<=1,?F+s(A-C),?If(s<=2,Rotate(I1,?(s-1)(-pi/2),?B),If(s<=3,I2+(s-2)*(C_2-I2),C_2)))
Hs?=?If(s<=1,?H+s(H-H),?If(s<=2,Rotate(H,?(s-1)(-pi/2),?B),If(s<=3,C+(s-2)*(C_1-C),C_1)))
小結(jié)
復(fù)合指令的使用場合很多,搭配 If 的控制可讓幾何變換有更多的形式。很多面積的等積變換的問題都很適合用這方法來實現(xiàn)。
相關(guān)連接
【Bili 】?https://www.bilibili.com/video/av87418730/
【GGB】https://www.geogebra.org/classic/frxv8dhn