Area of Parallelograms by Anthony OR 柯志明
Loading the math board and drawing, please wait…
This GeoGebra interactive example dynamically demonstrates the area calculation of parallelograms, visually illustrating the base × height formula through geometric transformation. Core mathematical concepts include parallelogram area, vector translation, and the relationship between base and height. Construction utilizes GeoGebra commands such as If, Point, Intersect, Vector, Translate, Rotate, Midpoint, and tools like Segment, Slope, and Sequence, involving objects such as vertices, vectors, midpoints, and rays. Suitable for middle and high school geometry education, it helps students understand area invariance and transformation effects through dynamic visualization.
GeoGebra Commands & Parameters
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'