Viviani定理的面积证明
几何画板及绘图内容加载中,请稍等……
①本范例通过面积法直观演示了Viviani定理:在任意三角形内一点到三边的距离之和等于该点为顶点的三个小三角形的面积之和;②涉及核心概念包括三角形面积、距离、向量、坐标几何;③构造要点:使用Line, Point, Circle, Polygon, Vector, Segment, Midpoint, Translate, Rotate等命令绘制图形并计算面积;④适合高中及以上学生及数学爱好者学习几何证明与可视化方法。
GeoGebra 命令及参数
Line(A, B) → mPoint(m) → IOrthogonalLine(I, m) → pCircle(A, B) → cLineBisector(A, B) → fIntersect(c, f) → C, DLine(D, m) → nPolygon(D, B, A) → t1, a, d, bPoint(d) → GOrthogonalLine(G, d) → gPoint(b) → FOrthogonalLine(F, b) → hIntersect(h, g) → PLine(P, n) → qIntersect(p, q) → KOrthogonalLine(P, a) → iIntersect(i, a) → HCircle(K, Distance[P, H]) → eIntersect(e, p) → L, MVector(P, M) → v_1Segment(H, P) → jSegment(F, P) → kSegment(P, G) → lIntersect(n, p) → JSegment(D, J) → rSegment(B, I) → sSegment(I, K) → tMidpoint(l) → EMidpoint(K, I) → NVector(E, N) → uVector(H, M) → vVector(P, K) → wVector(F, J) → u_1Segment(Translate[P, Vector[(Animation / 10 * u)]], Translate[G, Vector[(Animation / 10 * u)]]) → i'Translate(P, Vector[(Animation / 10 * w)]) → P'Translate(H, Vector[(Animation / 10 * v)]) → H'Translate(F, Vector[(Animation / 10 * u_1)]) → F'Translate(P, Vector[(Animation / 10 * v_1)]) → P'_1Segment(H', P') → g_1Segment(F', P'_1) → f_1Segment(J, I) → h_1Angle(A, F, P) → αAngle(P, H, B) → βAngle(P, G, A) → γPolygon(D, P, B) → t2, b_1, d_1, p_1Polygon(D, P, A) → t3, a_1, d_2, p_2Polygon(A, P, B) → t4, b_2, a_2, p_3Vector(A, O) → w_1Translate(D, Vector[(Animation / 10 * w_1)]) → D'Translate(B, Vector[(Animation / 10 * w_1)]) → B'Translate(A, Vector[(Animation / 10 * w_1)]) → A'Polygon(D', B', A') → t1', a', d', b'Translate(A, Vector[(Animation / 10 * w_1)]) → A'_1Translate(P, Vector[(Animation / 10 * w_1)]) → P'_2Vector(A, H_1) → c_1Translate(B, Vector[(Animation / 10 * w_1)]) → B'_1Translate(A, Vector[(Animation / 10 * c_1)]) → A'_2Translate(P, Vector[(Animation / 10 * c_1)]) → P'_3Translate(B, Vector[(Animation / 10 * c_1)]) → B'_2Polygon(A'_2, P'_3, B'_2) → t4', b'_2, a'_2, p'_3Segment(Translate[P, Vector[(Animation / 10 * c_1)]], Translate[G, Vector[(Animation / 10 * c_1)]]) → i_1Vector(D, B'_2) → e_1Translate(D, Vector[(Animation / 10 * e_1)]) → D'_1Translate(P, Vector[(Animation / 10 * e_1)]) → P'_4Translate(A, Vector[(Animation / 10 * e_1)]) → A'_3Rotate(D, Animation, D) → D'_2Rotate(P, Animation, D) → P'_5Rotate(A, Animation, D) → A'_4Rotate(D, If[Animation < 8.38, Animation / 10, 8.38], D) → D'_3Rotate(P, If[Animation < 8.38, Animation / 10, 8.38], D) → P'_6Rotate(A, If[Animation < 8.38, Animation / 10, 8.38], D) → A'_5Polygon(D'_3, P'_6, A'_5) → t3'_1, a'_5, d'_3, p'_6Translate(D'_3, Vector[(Animation / 10 * e_1)]) → QTranslate(P'_6, Vector[(Animation / 10 * e_1)]) → RTranslate(A'_5, Vector[(Animation / 10 * e_1)]) → SPolygon(Q, R, S) → t5, s_1, q_1, r_1Rotate(D, Animation, B) → D'_4Rotate(P, Animation, B) → P'_7Rotate(B, Animation, B) → B'_3Rotate(D, If[Animation < 4.18, Animation / 10, 4.18], B) → D'_5Rotate(P, If[Animation < 4.18, Animation / 10, 4.18], B) → P'_8Rotate(B, If[Animation < 4.18, Animation / 10, 4.18], B) → B'_4Polygon(D'_5, P'_8, B'_4) → t2', b'_4, d'_5, p'_8Vector(B, S) → j_1Translate(D'_5, Vector[(Animation / 10 * j_1)]) → TTranslate(P'_8, Vector[(Animation / 10 * j_1)]) → UTranslate(B'_4, Vector[(Animation / 10 * j_1)]) → VPolygon(T, U, V) → t2'', v_2, t_1, u_2OrthogonalLine(R, r_1) → k_1OrthogonalLine(U, u_2) → l_1Intersect(k_1, r_1) → WIntersect(l_1, u_2) → ZSegment(R, W) → m_1Segment(U, Z) → n_1OrthogonalLine(D', d') → f_2Intersect(f_2, d') → A_1Segment(D', A_1) → g_2Midpoint(g_2) → B_1Midpoint(i_1) → C_1Midpoint(m_1) → D_1Intersect(p'_3, i_1) → E_1Midpoint(U, Z) → F_1Segment(D, P) → h_2Segment(P, B) → i_2Segment(P, A) → j_2