平行四边形面积 by Anthony OR 柯志明
几何画板及绘图内容加载中,请稍等……
① 该范例通过动态构图演示平行四边形面积的计算方法,直观展示底乘高的几何意义;② 核心数学概念涉及平行四边形面积公式、向量平移与基底高的关系;③ 构造过程中使用了If、Point、Intersect、Vector、Translate、Rotate、Midpoint等GeoGebra命令,并涉及顶点、向量、中点、射线等几何对象;④ 适合初中及高中几何教学,帮助学生从动态图中理解面积不变性与变换关系。
GeoGebra 命令及参数
If(t ≥ 0 ∧ t ≤ 1, t, 1) → t1Point(xAxis) → IPoint(Ray[(0, 0), (1, 0)]) → EIntersect(xAxis, yAxis) → BPoint(Ray[(-1, 0), (-2, 0)]) → CVector(B - (0, 1), E - (0, 1)) → wPoint(Ray[(x(I), 0), (x(I), 1)]) → JRay((-0.01, y(J)), (-1, y(J))) → kPoint(k) → ATranslate(A, Vector[C]) → DIf(floor(abs(x(D)) / base) ≟ abs(x(D)) / base, false, true) → moreIf(more, n + 1, n) → n'Segment(A, B) → aSegment(B, C) → bSegment(C, D) → cSegment(D, A) → dSlope(a) → mSequence((((i + 1) * x(C)), ((m * x(C)) * i)), i, 0, n) → list1Segment(E, F) → eSegment(F, G) → fSegment(G, H) → gSegment(H, E) → hSequence(((i * x(C)), ((m * x(C)) * i)), i, 1, n) → list2Segment(J, A) → iSegment(I, B) → jRotate(J, 90°, I) → J'Vector(I, J) → uVector(J, I) → vMidpoint(I, J) → KMidpoint(b) → LAngle(J, I, Translate[I, Vector[If[x(I) > x(C), Vector[C], Vector[(-C)]]]]) → αSegment(I, J) → rSequence(Polygon[Element[list1, i], Element[list2, i], Element[list2, i + 1], Element[list1, i + 1]], i, 1, n - 1) → l_{11}Vector(C - (0, 1), B - (0, 1)) → sSequence(Polygon[D, A, Element[list2, i], Element[list1, i]], i, 1, n) → l1'If(t < 1, 0, If[t ≥ 1 ∧ t ≤ 2, t - 1, 1]) → t2If(t < 2, 0, If[t ≥ 2 ∧ t ≤ 3, t - 2, 1]) → t3If(t < 3, 0, If[t ≥ 3 ∧ t ≤ 4, t - 3, 1]) → t4If(t < 4, 0, If[t ≥ 4 ∧ t ≤ 5, t - 4, 1]) → t5Union(l_{11}, l_{12}) → l1RemoveUndefined(Union[l0, l1]) → listpSequence(Translate[Element[listp, i], Vector[(If[t ≥ 0 ∧ t ≤ 1, t, 1] * w) + (If[t ≤ 1, 0, t > 1 ∧ t ≤ i, t - 1, i - 1] * s)]], i, 1, n' + If[¬more, 1, 0]) → movedlistpUnion(list1, {D}) → list1'Union(Sequence[((i * x(C)), ((m * x(C)) * i)), i, 0, n], {A}) → list2'Sequence(Segment[Element[list1', i], Element[list1', i + 1]], i, 1, n') → lists1Sequence(Translate[Element[lists1, i], Vector[(If[t ≥ 0 ∧ t ≤ 1, t, 1] * w) + (If[t ≤ 1, 0, t > 1 ∧ t ≤ i + 1, t - 1, i] * s)]], i, 1, n' + If[¬more, 1, 0]) → movedlists1Sequence(Segment[Element[list2', i], Element[list2', i + 1]], i, 1, n') → lists2Sequence(Translate[Element[lists2, i], Vector[(If[t ≥ 0 ∧ t ≤ 1, t, 1] * w) + (If[t ≤ 1, 0, t > 1 ∧ t ≤ i, t - 1, i - 1] * s)]], i, 1, n' + If[¬more, 1, 0]) → movedlists2Union(Sequence[(x(F), ((m * x(C)) * i)), i, 0, n], {G}) → list3Sequence(Segment[Element[list3, i], Element[list3, i + 1]], i, 1, n') → lists3Sequence(Translate[Element[lists3, i], Vector[(If[t ≤ i, 0, If[t ≥ i ∧ t < i + 1, t - i, 1]] * s)]], i, 1, n') → movedlists3Translate(D, Vector[(If[t < 1, t, 1] * w) + (If[t < 1, 0, t - 1] * s)]) → D'