平行四边形面积 by Anthony OR 柯志明

平行四边形面积 by Anthony OR 柯志明
几何画板及绘图内容加载中,请稍等……
2018-11-19 23:02
① 该范例通过动态构图演示平行四边形面积的计算方法,直观展示底乘高的几何意义;② 核心数学概念涉及平行四边形面积公式、向量平移与基底高的关系;③ 构造过程中使用了If、Point、Intersect、Vector、Translate、Rotate、Midpoint等GeoGebra命令,并涉及顶点、向量、中点、射线等几何对象;④ 适合初中及高中几何教学,帮助学生从动态图中理解面积不变性与变换关系。

GeoGebra 命令及参数

  1. If(t ≥ 0 ∧ t ≤ 1, t, 1) → t1
  2. Point(xAxis) → I
  3. Point(Ray[(0, 0), (1, 0)]) → E
  4. Intersect(xAxis, yAxis) → B
  5. Point(Ray[(-1, 0), (-2, 0)]) → C
  6. Vector(B - (0, 1), E - (0, 1)) → w
  7. Point(Ray[(x(I), 0), (x(I), 1)]) → J
  8. Ray((-0.01, y(J)), (-1, y(J))) → k
  9. Point(k) → A
  10. Translate(A, Vector[C]) → D
  11. If(floor(abs(x(D)) / base) ≟ abs(x(D)) / base, false, true) → more
  12. If(more, n + 1, n) → n'
  13. Segment(A, B) → a
  14. Segment(B, C) → b
  15. Segment(C, D) → c
  16. Segment(D, A) → d
  17. Slope(a) → m
  18. Sequence((((i + 1) * x(C)), ((m * x(C)) * i)), i, 0, n) → list1
  19. Segment(E, F) → e
  20. Segment(F, G) → f
  21. Segment(G, H) → g
  22. Segment(H, E) → h
  23. Sequence(((i * x(C)), ((m * x(C)) * i)), i, 1, n) → list2
  24. Segment(J, A) → i
  25. Segment(I, B) → j
  26. Rotate(J, 90°, I) → J'
  27. Vector(I, J) → u
  28. Vector(J, I) → v
  29. Midpoint(I, J) → K
  30. Midpoint(b) → L
  31. Angle(J, I, Translate[I, Vector[If[x(I) > x(C), Vector[C], Vector[(-C)]]]]) → α
  32. Segment(I, J) → r
  33. Sequence(Polygon[Element[list1, i], Element[list2, i], Element[list2, i + 1], Element[list1, i + 1]], i, 1, n - 1) → l_{11}
  34. Vector(C - (0, 1), B - (0, 1)) → s
  35. Sequence(Polygon[D, A, Element[list2, i], Element[list1, i]], i, 1, n) → l1'
  36. If(t < 1, 0, If[t ≥ 1 ∧ t ≤ 2, t - 1, 1]) → t2
  37. If(t < 2, 0, If[t ≥ 2 ∧ t ≤ 3, t - 2, 1]) → t3
  38. If(t < 3, 0, If[t ≥ 3 ∧ t ≤ 4, t - 3, 1]) → t4
  39. If(t < 4, 0, If[t ≥ 4 ∧ t ≤ 5, t - 4, 1]) → t5
  40. Union(l_{11}, l_{12}) → l1
  41. RemoveUndefined(Union[l0, l1]) → listp
  42. Sequence(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]) → movedlistp
  43. Union(list1, {D}) → list1'
  44. Union(Sequence[((i * x(C)), ((m * x(C)) * i)), i, 0, n], {A}) → list2'
  45. Sequence(Segment[Element[list1', i], Element[list1', i + 1]], i, 1, n') → lists1
  46. Sequence(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]) → movedlists1
  47. Sequence(Segment[Element[list2', i], Element[list2', i + 1]], i, 1, n') → lists2
  48. Sequence(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]) → movedlists2
  49. Union(Sequence[(x(F), ((m * x(C)) * i)), i, 0, n], {G}) → list3
  50. Sequence(Segment[Element[list3, i], Element[list3, i + 1]], i, 1, n') → lists3
  51. Sequence(Translate[Element[lists3, i], Vector[(If[t ≤ i, 0, If[t ≥ i ∧ t < i + 1, t - i, 1]] * s)]], i, 1, n') → movedlists3
  52. Translate(D, Vector[(If[t < 1, t, 1] * w) + (If[t < 1, 0, t - 1] * s)]) → D'