直角坐标系绘图工具

直角坐标系绘图工具
几何画板及绘图内容加载中,请稍等……
2020-09-01 14:57
该范例演示如何在 GeoGebra 中构建一个可自定义宽高、刻度与标签的直角坐标系绘图工具,用于展示坐标平面上的点、向量与图形。涉及解析几何、坐标几何、向量运算以及函数图像绘制等核心数学概念。作图要点:使用 Sequence 生成刻度列表与坐标标记,Text 与 DynamicCoordinates 实现动态坐标显示,Vector 绘制坐标轴与箭头,If 控制条件显示与标签切换;涉及对象包括 width、height、xaxis、yaxis、xlist、ylist、xmark、ymark 等。适合中学阶段(初中至高中)解析几何教学,以及教师制作坐标系课件、学生探究函数图像与向量几何意义的课堂示范。

GeoGebra 命令及参数

  1. Sequence(Segment[(width, (-i)), (0, (-i))], i, 0, height) → HL0
  2. Sequence(Segment[(i, (-height)), (i, 0)], i, 0, width) → VL0
  3. Sequence(Sequence[Segment[(i + (j * 1 / div), (-height)), (i + (j * 1 / div), 0)], j, 1, div - 1], i, 0, width - 1) → VL1
  4. Sequence(Sequence[Segment[(width, (-i) - (j * 1 / div)), (0, (-i) - (j * 1 / div), 0)], j, 1, div - 1], i, 0, height - 1) → VL2
  5. Text("Rectangular Coordinate System Drawing Tool") → text1
  6. Sequence((i, 0.5), i, 1, width - 1) → xlist
  7. Sequence((width + 0.5, (-i)), i, 1, height - 1) → ylist
  8. DynamicCoordinates(XX, x(ClosestPoint[xlist, XX]), 0.5) → X
  9. DynamicCoordinates(YY, width + 0.5, y(ClosestPoint[ylist, YY])) → Y
  10. Sequence(Segment[(i, y(Y)), (i, y(Y) - 0.2)], i, 1, width - 1) → xmark
  11. Sequence(Segment[(x(X), (-i)), (x(X) - 0.2, (-i))], i, 1, height - 1) → ymark
  12. Sequence(i - x(X), i, 1, width - 1) → xlab
  13. Sequence(i - height - y(Y), i, 1, height - 1) → ylab
  14. Sequence(If[xlab(i) ≤ -10, Element[xd, 3], If[xlab(i) < 0 ∨ xlab(i) ≥ 10, Element[xd, 2], Element[xd, 1]]], i, 1, width - 1) → xdlist
  15. Sequence(If[xlab(i) ≤ -10, Element[xd, 3], If[xlab(i) < 0 ∨ xlab(i) ≥ 10, Element[xd, 2], Element[xd, 1]]], i, 1, width - 1) → l1
  16. Sequence(If[ylab(i) ≤ -10, Element[yd, 3], If[ylab(i) < 0 ∨ ylab(i) ≥ 10, Element[yd, 2], Element[yd, 1]]], i, 1, height - 1) → ydlist
  17. Sequence(Text[xlab(i), (i - xdlist(i), y(Y) - 0.6), true], i, x(X) + 1, width - 1) → pxlabel
  18. Sequence(Text[xlab(i), (i - xdlist(i), y(Y) - 0.6), true], i, 1, x(X) - 1) → nxlabel
  19. Sequence(Text[ylab(height - i), (x(X) - ydlist(height - i), (-i) - 0.12), true], i, 1, (-y(Y)) - 1) → pylabel
  20. Sequence(Text[ylab(i), (x(X) - ydlist(i), (-height) + i - 0.12), true], i, 1, height + y(Y) - 1) → nylabel
  21. Vector((0, y(Y)), (width - 0.25, y(Y))) → xaxis
  22. Vector((x(X), (-height)), (x(X), -0.25)) → yaxis
  23. If(width > 2 ∧ height > 2, x(X) - 0.3, If[width > 2, x(X) - xd(1), x(X) - yd(1)]) → zx
  24. If(width > 2 ∧ height > 2, y(Y) - 0.4, If[width > 2, y(Y) - 0.6, y(Y) - 0.12]) → zy
  25. Text(0, (zx, zy)) → zero