Cut-The-Knot 动作 19:动态四边形与二次方程的可视化探索
几何画板及绘图内容加载中,请稍等……
① 本范例是一个动态且可修改的几何演示,源自 Alexander Bogomolny 在 Twitter 上发布的一道数学问题,通过交互操作展示一般四边形(含风筝形)中隐藏的几何关系。② 核心数学概念涉及一般四边形、风筝形、二次方程、标准差、割线以及角度与线段之间的约束关系,体现了代数与几何的交叉。③ 作图要点:从构造摘要可见,使用了 Segment、Rotate、Ray、Point、Line、Angle、Intersect、OrthogonalLine、Polygon、Min、Circle、CircleSector、Dilate、Vector、Translate 等 GeoGebra 命令,构建了多个点(如 A、B、C、D、E、F、G)、线段、圆、扇形、向量及平移对象,并利用滑块或动态点实现实时变化。④ 适合高中及以上学段的学生或数学爱好者,用于探究四边形性质、二次方程与几何约束的关联,也可作为教师课堂演示或学生自主探索的素材。
GeoGebra 命令及参数
Segment(A, B) → fRotate(A, (a * π / 180), B) → A'Ray(B, A') → gPoint(g) → CLine(C, A) → n_2Segment(C, A) → iAngle(B, C, A) → γRotate(B, γ / 2, C) → B'Ray(C, B') → kIntersect(f, k) → IAngle(C, A, B) → βRotate(C, β / 2, A) → C'Ray(A, C') → jSegment(B, C) → hIntersect(h, j) → JSegment(J, I) → lPoint(l) → KOrthogonalLine(K, i) → h_1Line(C, B) → m_2OrthogonalLine(K, h) → g_2Line(B, A) → l_2OrthogonalLine(K, f) → nAngle(A, B, A') → αPolygon(B, A, C) → t1, c, b, a_1Angle(C, A, C') → δAngle(B, C, B') → εIntersect(j, k) → DMin({f, i, h}) → dCircle(B, (0.15 * d)) → eCircle(A, (0.15 * d)) → pCircle(C, (0.15 * d)) → qIntersect(q, h, 1) → EIntersect(p, i) → F,Intersect(e, f) → G,Intersect(e, h, 1) → HCircleSector(B, G, H) → rOrthogonalLine(K, l) → mOrthogonalLine(K, h) → sIntersect(s, h) → NIntersect(n, l_2) → MSegment(K, M) → tSegment(K, N) → f_1Angle(K, N, C) → ζAngle(A, M, K) → ηOrthogonalLine(D, i) → g_1Circle(K, f_1) → c_1Intersect(n_2, h_1) → LAngle(K, L, A) → θRay(K, L) → i_1Circle(K, f_1) → d_1Intersect(d_1, i_1, 1) → ODilate(A, If[0 < u ≤ 1, 1 - u, 0], D) → A'_1Dilate(C, If[0 < u ≤ 1, 1 - u, 0], D) → C'_1Segment(A, A'_1) → j_1Segment(C, C'_1) → k_1Dilate(D, If[1 < u ≤ 2, 2 - u, 0], J) → D'Dilate(D, If[1 < u ≤ 2, 2 - u, 0], I) → D'_1Segment(D, D') → l_1Segment(D, D'_1) → m_1Rotate(F, If[1 < u ≤ 2, ((u - 1) * δ), δ], A) → F'Rotate(E, If[1 < u ≤ 2, ((u - 1) * ε), ε], C) → E'CircleSector(A, F, F') → e_1CircleSector(C, E, E') → p_1Rotate(p_1, If[3 < u ≤ 4, ((u - 3) * ε), ε], C) → q_1Rotate(e_1, If[3 < u ≤ 4, ((u - 3) * δ), δ], A) → r_1Dilate(J, If[4 < u ≤ 5, 5 - u, 0], I) → J'Segment(J, J') → n_1Dilate(K, If[7 < u ≤ 8, 8 - u, 0], M) → K'Dilate(K, If[7 < u ≤ 8, 8 - u, 0], N) → K'_1Segment(K, K') → s_1Segment(K, K'_1) → t_1Dilate(K, If[7 < u ≤ 8, 8 - u, 0], O) → K'_2Segment(K, K'_2) → b_1Dilate(O, If[8 < u ≤ 9, 9 - u, 0], L) → O'Segment(O, O') → f_2Intersect(g_2, m_2) → PAngle(L, K, P) → κRotate(K, If[10 < u ≤ 11, ((-(u - 10)) * κ), (-κ)], K) → K'_3Rotate(K'_1, If[10 < u ≤ 11, ((-(u - 10)) * κ), (-κ)], K) → QSegment(K'_3, Q) → h_2Line(O, s_1) → i_2Point(i_2) → RAngle(R, O, L) → λDilate(K, If[11 < u ≤ 12, 12 - u, 0], O) → K'_4Vector(K, K'_4) → vTranslate(K, v) → K'_5Translate(K', v) → K''Segment(K'_5, K'') → j_2Rotate(K'_5, If[12 < u ≤ 13, ((u - 12) * λ), λ], O) → SRotate(K'', If[12 < u ≤ 13, ((u - 12) * λ), λ], O) → K'''Segment(S, K''') → k_2