Any Prism's Base Cannot Be a Crossed Polygon, but Can Be Concave

Any Prism's Base Cannot Be a Crossed Polygon, but Can Be Concave
Loading the math board and drawing, please wait…
2015-05-17 01:52
In collections Nets of Solids
This example demonstrates how to construct an arbitrary prism's base, emphasizing that the base cannot be a crossed polygon but can be concave. The key mathematical concepts involve polygon geometry, solid geometry, and geometric construction. The construction involves GeoGebra commands such as First, Append, Sequence, Rotate, Element, Last, Translate, Polygon, Prism, etc. to create the base and prism. Suitable for middle or high school students learning geometric construction and solid geometry concepts.

GeoGebra Commands & Parameters

  1. First({A, B, C, D, E, F, G, H, I, J, K, L}, n) → P_0
  2. Append(Append[P_0, A], B) → P
  3. Sequence(Distance[Element[P, i], Element[P, i + 1]], i, 1, n) → Long
  4. Sequence((0, Sum[First[Long, i]]), i, 1, n) → FL_1
  5. Sequence((0, y(Element[P, i]), (-x(Element[P, i]))), i, 1, n + 1) → P_1
  6. Sequence(If[p < i - 1, 0, If[p < i, p - floor(p), 1]], i, 1, n + 1) → Lp
  7. Rotate(P_1, ((-Element[Lp, 2]) * (π - Angle[Element[P, 1], Element[P, 2], Element[P, 3], xOyPlane])), Line[Element[FL_1, 1], xAxis]) → P_2
  8. Rotate(P_2, ((-Element[Lp, 3]) * (π - Angle[Element[P, 2], Element[P, 3], Element[P, 4], xOyPlane])), Line[Element[FL_1, 2], xAxis]) → P_3
  9. Rotate(P_3, ((-Element[Lp, 4]) * (π - Angle[Element[P, 3], Element[P, 4], Element[P, 5], xOyPlane])), Line[Element[FL_1, 3], xAxis]) → P_4
  10. Rotate(P_4, ((-Element[Lp, 5]) * (π - Angle[Element[P, 4], Element[P, 5], Element[P, 6], xOyPlane])), Line[Element[FL_1, 4], xAxis]) → P_5
  11. Rotate(P_5, ((-Element[Lp, 6]) * (π - Angle[Element[P, 5], Element[P, 6], Element[P, 7], xOyPlane])), Line[Element[FL_1, 5], xAxis]) → P_6
  12. Rotate(P_6, ((-Element[Lp, 7]) * (π - Angle[Element[P, 6], Element[P, 7], Element[P, 8], xOyPlane])), Line[Element[FL_1, 6], xAxis]) → P_7
  13. Rotate(P_7, ((-Element[Lp, 8]) * (π - Angle[Element[P, 7], Element[P, 8], Element[P, 9], xOyPlane])), Line[Element[FL_1, 7], xAxis]) → P_8
  14. Rotate(P_8, ((-Element[Lp, 9]) * (π - Angle[Element[P, 8], Element[P, 9], Element[P, 10], xOyPlane])), Line[Element[FL_1, 8], xAxis]) → P_9
  15. Rotate(P_9, ((-Element[Lp, 10]) * (π - Angle[Element[P, 9], Element[P, 10], Element[P, 11], xOyPlane])), Line[Element[FL_1, 9], xAxis]) → P_10
  16. Rotate(P_10, ((-Element[Lp, 11]) * (π - Angle[Element[P, 10], Element[P, 11], Element[P, 12], xOyPlane])), Line[Element[FL_1, 10], xAxis]) → P_11
  17. Rotate(P_11, ((-Element[Lp, 12]) * (π - Angle[Element[P, 11], Element[P, 12], Element[P, 13], xOyPlane])), Line[Element[FL_1, 11], xAxis]) → P_12
  18. Element(LR, n) → PP
  19. Last(PP, n + 1 - floor(p)) → PR
  20. Translate(PR, Vector[(h, 0, 0)]) → Q
  21. Sequence(Polygon[Element[PR, i], Element[Q, i], Element[Q, i + 1], Element[PR, i + 1]], i, 1, Length[PR] - 1) → faceMob
  22. Append(A, First[FL_1, floor(p)]) → FL_2
  23. Translate(FL_2, Vector[(h, 0, 0)]) → FL_3
  24. Sequence(Polygon[Element[FL_2, i], Element[FL_2, i + 1], Element[FL_3, i + 1], Element[FL_3, i]], i, 2, Length[FL_2] - 1) → faceFix
  25. Polygon((0, 0, 0), Element[FL_2, 2], Element[FL_3, 2], (h, 0, 0)) → poly1, c, d, e, f
  26. Polygon(Sequence[(x(Element[P_0, i]), y(Element[P_0, i])), i, 1, n]) → poly2
  27. Prism(poly2, h) → pri, M, Z, A_1, B_1, face1, face3, face4, face5, face6, face7, face8, N, face9, face10, face11, face12, face2, face13, arête1, arête2, arête3, arête4, O, arête5, arête6, arête7, arête8, arête9, arête10, arête11, arête12, arêteMN, arêteNO, R, arêteOR, arêteRS, arêteST, arêteTU, arêteUV, arêteVW, arêteWZ, arête14, arête15, arête13, S, T, U, V, W
  28. Rotate(pri, (Element[Lp, 1] * π / 2), yAxis) → pri'
  29. Rotate(face13, (Element[Lp, 1] * π / 2), yAxis) → face13'
  30. Rotate(face13', (Element[Lp, 2] * π / 2), Line[(h, 0, 0), yAxis]) → face13''
  31. Textfield(n) → ChampTexte1