立体几何的正投影

立体几何的正投影
几何画板及绘图内容加载中,请稍等……
2022-06-28 10:54
这个范例演示了立体几何中正投影的概念。通过构造立方体及其正投影,展示了如何从三维空间到二维平面的投影过程。使用了点、立方体、平移向量等GeoGebra命令。适合初中及以上学生学习立体几何和投影变换。

GeoGebra 命令及参数

  1. Point(Circle[B, Distance[A, B], Segment[A, B]]) → C
  2. Point(Circle[J, Distance[I, J], Segment[I, J]]) → K
  3. Point(Circle[R, Distance[Q, R], Segment[Q, R]]) → S
  4. Point(Circle[H_1, Distance[G_1, H_1], Segment[G_1, H_1]]) → I_1
  5. Cube(G_1, H_1, I_1) → e_1, J_1, face11, facez, edge13, edge12, edge15, edge17, edge14, edge19, edge21, edge20, K_1, edge16, edge22, edge18, edge23, L_1, M_1, N_1, face7, face9, facey, facex
  6. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(0, 0), (2, 1)]) → f
  7. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(0, 0), (1, 0)]) → g
  8. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(0, 0), (1, 1, 1)]) → h
  9. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(0, 0), (1, 1)]) → e
  10. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(0, 0), (1, 1)]) → e'
  11. Translate(facex, Vector[(0, 0, 0), (0, -1, 0)]) → facex010
  12. Translate(facey, Vector[(0, 0), (1, 0, 0)]) → facey100
  13. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, 0)]) → a
  14. Translate(facez, Vector[(0, 0, 0), (0, -1, 0)]) → facez010
  15. Translate(facey, Vector[(0, 0, 1)]) → facey001
  16. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(1, 0, 1)]) → b
  17. Translate(facey, Vector[(0, -1, 0)]) → facey010
  18. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(1, -1)]) → c
  19. Translate(facey, Vector[(1, -1, 0)]) → facey110
  20. Translate(facex, Vector[(0, -2, 0)]) → facex020
  21. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, -1)]) → d
  22. Translate(facey, Vector[(0, -2, 0)]) → facey020
  23. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(1, -2)]) → i
  24. Translate(facey, Vector[(1, -2, 0)]) → facey120
  25. Translate(facex, Vector[(0, -3, 0)]) → facex030
  26. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, -2)]) → j
  27. Translate(facex, Vector[(1, 0, 0)]) → facex100
  28. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, 1)]) → k
  29. Translate(facex, Vector[(1, -1, 0)]) → facex110
  30. Translate(facey, Vector[(2, 0, 0)]) → facey200
  31. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, 0)]) → l
  32. Translate(facey, Vector[(2, -1, 0)]) → facey210
  33. Translate(facex, Vector[(1, -2, 0)]) → facex120
  34. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, -1)]) → m
  35. Translate(facey, Vector[(2, -2, 0)]) → facey220
  36. Translate(facex, Vector[(1, -3, 0)]) → facex130
  37. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, -2)]) → n
  38. Translate(facey, Vector[(0, -1, 1)]) → facey011
  39. Translate(facez, Vector[(0, -2, 0)]) → facez020
  40. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(1, -1, 1)]) → o
  41. Translate(facez, Vector[(0, -3, 0)]) → facez030
  42. Translate(facey, Vector[(0, -2, 1)]) → facey021
  43. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(1, -2, 1)]) → p
  44. Translate(facex, Vector[(0, 0, 1)]) → facex001
  45. Translate(facez, Vector[(1, 0, 0)]) → facez100
  46. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, 1, 1)]) → q
  47. Translate(facex, Vector[(0, -1, 1)]) → facex011
  48. Translate(facey, Vector[(1, 0, 1)]) → facey101
  49. Translate(facez, Vector[(1, -1, 0)]) → facez110
  50. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, 0, 1)]) → r
  51. Translate(facex, Vector[(0, -2, 1)]) → facex021
  52. Translate(facey, Vector[(1, -1, 1)]) → facey111
  53. Translate(facez, Vector[(1, -2, 0)]) → facez120
  54. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, -1, 1)]) → s
  55. Translate(facex, Vector[(0, -3, 1)]) → facex031
  56. Translate(facey, Vector[(1, -2, 1)]) → facey121
  57. Translate(facez, Vector[(1, -3, 0)]) → facez130
  58. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, -2, 1)]) → t
  59. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(0, 0), (2, 1)]) → f'
  60. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, 0)]) → a'
  61. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(0, 0), (1, 0)]) → g'
  62. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(1, -1)]) → c'
  63. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(1, -2)]) → i'
  64. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, -1)]) → d'
  65. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, -2)]) → j'
  66. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(0, 0), (1, 1, 1)]) → h'
  67. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(1, 0, 1)]) → b'
  68. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(1, -1, 1)]) → o'
  69. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(1, -2, 1)]) → p'
  70. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[D]) → b_1
  71. Translate(facez, Vector[(2, 0, 0)]) → facez200
  72. Translate(facex, Vector[(1, 0, 1)]) → facex101
  73. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, 1, 1)]) → u
  74. Translate(facez, Vector[(2, -1, 0)]) → facez210
  75. Translate(facex, Vector[(1, -1, 1)]) → facex111
  76. Translate(facey, Vector[(2, 0, 1)]) → facey201
  77. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, 0, 1)]) → v
  78. Translate(facez, Vector[(2, -2, 0)]) → facez220
  79. Translate(facex, Vector[(1, -2, 1)]) → facex121
  80. Translate(facey, Vector[(2, -1, 1)]) → facey211
  81. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, -1, 1)]) → w
  82. Translate(facez, Vector[(2, -3, 0)]) → facez230
  83. Translate(facex, Vector[(1, -3, 1)]) → facex131
  84. Translate(facey, Vector[(2, -2, 1)]) → facey221
  85. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, -2, 1)]) → a_1
  86. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, 1, 1)]) → q'
  87. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, 0, 1)]) → r'
  88. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, -1, 1)]) → s'
  89. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(2, -2, 1)]) → t'
  90. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, 1, 1)]) → u'
  91. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, 0, 1)]) → v'
  92. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, -1, 1)]) → w'
  93. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, -2, 1)]) → a_1'
  94. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, 1)]) → k'
  95. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, 0)]) → l'
  96. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, -1)]) → m'
  97. Translate(Cube[(0, 0), (1, 0), Point[Circle[(1, 0), Distance[(0, 0), (1, 0)], Segment[(0, 0), (1, 0)]]]], Vector[(3, -2)]) → n'
  98. Translate(Prism[Polygon[(-5, 2, 0), (-5, -2, 0), (-2, -2, 0), (-2, 2, 0)], (-5, 2, 2)], Vector[(0, 0)]) → c_1
  99. Translate(Prism[Polygon[(-5, 2, 0), (-5, -2, 0), (-2, -2, 0), (-2, 2, 0)], (-5, 2, 2)], Vector[(0, 0)]) → d_1
  100. Translate(Polygon[(-5, 1, 0), (-2, 1, 0), (-2, 1, 2), (-5, 1, 2)], Vector[(0, 0)]) → poly1
  101. Translate(Polygon[(-5, 0, 0), (-2, 0, 0), (-2, 0, 2), (-5, 0, 2)], Vector[(0, 0)]) → poly2
  102. Translate(Polygon[(-5, -1, 0), (-2, -1, 0), (-2, -1, 2), (-5, -1, 2)], Vector[(0, 0)]) → poly3
  103. Translate(Polygon[(-4, 2, 0), (-4, -2, 0), (-4, -2, 2), (-4, 2, 2)], Vector[(0, 0)]) → poly4
  104. Translate(Polygon[(-3, 2, 0), (-3, -2, 0), (-3, -2, 2), (-3, 2, 2)], Vector[(0, 0)]) → poly5
  105. Translate(Polygon[(-5, -2, 1), (-2, -2, 1), (-2, 2, 1), (-5, 2, 1)], Vector[(0, 0)]) → poly6
  106. Vector((1, -4, 0), (1, -3, 0)) → u_1
  107. Vector((7, 2, 0), (6, 2, 0)) → v_1
  108. Vector((1, 2, 3.5), (1, 2, 2.5)) → w_1
  109. Segment((1, -3, 0), (1, -4, 0)) → f_1
  110. Segment((6, 2, 0), (7, 2, 0)) → g_1
  111. Segment((1, 2, 2.5), (1, 2, 3.5)) → h_1

AI 绘图提示语参考

在三维坐标系中先构造一个立方体,并保留其若干面与棱作为可投影的对象。以该立方体为基础,依次得到同尺寸立方体在不同平移位置处的多组面(例如把立方体沿不同方向平移到若干层),同时在画面中显示这些被移动得到的面片之间的对应关系。重点呈现从三维到二维平面的正交投影效果:让立方体的各个面在不同平移位置形成清晰的投影示意,从而直观看到各方向上的投影关系与几何关系。
以上提示语为根据原始绘图命令整理而来,仅供参考。