欢迎光临散文网 会员登陆 & 注册

S4E23 勾股定理欧氏证明:单滑杆控制多次变形

2022-02-27 10:02 作者:学用数学  | 我要投稿

在这节引用的例子是知名的勾股定理的动态证明,但这次的教学重点在于利用单个滑动条来呈现多次复合的移动操作,最主要的思维就是多层 If 的使用。


你将学会

  1. 使用滑动条,搭配旋转与平移的指令

  2. 利用 If 来实现单一滑动条控制多次移动

学习指引

这节课定位为中阶课程,以指令输入为主。若是新手可以先完成如下的基础课程:


操作步骤

1. 绘制直角三角形

问:几何原本证明勾股定理的图形结构是什么?

答:由一个直角三角形,从三边长出三个正方形。


问:如何绘制出一个直角三角形?

答:可用直径所对的圆周角是直角来绘制。另个方法是用三边长满足勾股定理关系来绘制。在这课件为了以两股长 a,b 为参数,先建滑动条 a,b 。再利用 c^2=a^2+b^2 的关系来确定这个直角三角形 。

# 建立滑动条 a,b 

a = 3

b = 4 

# 让 c 与 a,b 可构成直角三角形

c = (a^2+b^2)^0.5 

问:如何利用这 3 个参数来确定三个点的位置。

答:以 c 为斜边的边长并将 AB 两点水平摆置 。而 C 点的位置,利用的就是 SSS 构造全等,分别用 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 个交点

# 可对每个点的 [标题] 设置 $%n$ 来让标签以斜体显示

问:如何连接这三点构成直角三角形呢?

答:可以用 [线段] Segment 来完成,也可用 [多边形] Polygon 来标好三条边。而对于直角,可以用 [角] Angle 来标角。

# 建立三个边与标注直角

plABC = Polygon(A,B,C)

aACB = angle(A,C,B)

2. 长出三个正方形

完成直角三角形后,接着从这三边各长出一个正方形。并从 C 点来作正方形的垂线。


问:如何绘制正方形?是否要先找出四个顶点的位置。

答:仍可用 [多边形] Polygon 工具来达成。 当多边形工具的第 3 个参数为一个整数 n 时,就会以这两点为边绘制出一个正 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. 用滑动条控制图形的平推

在这小节主要使用滑动杆来控制图形的平推,平移的主要概念就是向量。


问:如何让图形可变动?

答:图形的变化决定于点的变化。因此,先决定点是如何移动的。

在此,利用向量的参数式,搭配滑动条参数参数 t ,来控制点的变化。例如:Ct = C+ t*(B-C) 标示由 C 往 CB 方向移动。完成 Ct,Ft, Gt 的设定后,可用[多边形] 来连接四个点。

# 由参数控制平推

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. 用单一滑动条控制图形多次的移动

下图让图形分三个阶段进行先平推、再旋转、再平推。其思维与分段函数类似。在实践这个的方法主要使用 If 这指令。


问:如何让图形平移后再转动?

答:利用 If 来区分成两个阶段。 以 Ct 为例,前半段 0<t< 1 时,平移 C+t(B-C)。后半段 1<t<2 时,旋转 Rotate(B, (t-1)*(-pi/2), A)。要特别主要就是旋转角的部分是(t-1)*(-pi/2) ,而不是 t*(-pi/2) 。

此外,对 Ft 来说,平移后的位置,并非原本图形上的点。这时在将这个中间点重新命名为 F1,方便作第二次的转动。

# 二阶段移动:平推再旋转

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))

问:如何让图形平移后再转动接着在平移?

答:这时就用三层的 If,而第三层操作的时间参数就要使用 (t-2) 来控制。

# 左侧三阶段移动:平推旋转再平推

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)))

# 三阶段移动:平推旋转再平推


问:对于右侧的移动,时间要如何设置呢?

答:若要让左右两侧比较一致,可以让右侧使用参数 s。而其中 s 定为 t-3 。

但为了让 t 值不为负数,则利用 If(t<3,0,t-3) 来达成此效果。

# 右侧三阶段移动:平推旋转再平推

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)))

小结

复合指令的使用场合很多,搭配 If 的控制可让几何变换有更多的形式。很多面积的等积变换的问题都很适合用这方法来实现。

相关连接

【Bili 】 https://www.bilibili.com/video/av87418730/

【GGB】https://www.geogebra.org/classic/frxv8dhn



S4E23 勾股定理欧氏证明:单滑杆控制多次变形的评论 (共 条)

分享到微博请遵守国家法律