Angle Between Planes by TKH

Angle Between Planes by TKH
Loading the math board and drawing, please wait…
2019-01-30 09:02
This example demonstrates the calculation and visualization of the angle between two planes in 3D space. It involves core mathematical concepts such as vector cross product, spatial geometry, and angle measurement. Key GeoGebra commands and objects used in the construction include Polygon, Vector, Line, and Angle, as outlined in the construction summary. It is suitable for high school and above, particularly for teaching and exploring applications of vectors and spatial angles in solid geometry.

GeoGebra Commands & Parameters

  1. Polygon(Control1, Control2, 4) → poly2, i, j, k, l, R000, S000
  2. PointIn(poly2) → ControlR
  3. Polygon(Control1, Control2, 4) → controlpoly, a_1, b_1, d, e, Control3, Control4
  4. Vector(O000, K1) → k1
  5. Vector(O000, J1) → j1
  6. Vector(O000, I1) → i1
  7. Segment(A, B) → L01
  8. Segment(B, C) → L03
  9. Segment(C, D) → L05
  10. Segment(D, A) → L07
  11. Segment(A, E) → L02
  12. Segment(B, F) → L04
  13. Segment(F, G) → L10
  14. Segment(G, H) → L11
  15. Segment(E, H) → L12
  16. Segment(E, F) → L09
  17. Segment(C, G) → L06
  18. Segment(D, H) → L08
  19. Textfield(TTT10) → inputBox1
  20. Textfield(TTT20) → inputBox2
  21. TextToUnicode(TTT10) → TTT11
  22. Object(UnicodeToLetter[Element[TTT11, 1]]) → PP11
  23. Object(UnicodeToLetter[Element[TTT11, 2]]) → PP12
  24. TextToUnicode(TTT20) → TTT21
  25. Object(UnicodeToLetter[Element[TTT21, 1]]) → PP21
  26. Object(UnicodeToLetter[Element[TTT21, 2]]) → PP22
  27. Object(UnicodeToLetter[Element[TTT21, 3]]) → PP23
  28. Object(UnicodeToLetter[Element[TTT21, 4]]) → PP24
  29. Segment(PP11, PP12) → LL11_1
  30. Polygon(PP21, PP22, PP23, PP24) → plane11, pp21, pp22, pp23, pp24
  31. Intersect(pp22, pp23) → test13
  32. Intersect(pp21, pp24) → test14
  33. Intersect(pp21, pp23) → test11
  34. Intersect(pp22, pp24) → test12
  35. Polygon(PP21, PP22, PP23) → plane12, pp23_1, pp21_1, pp22_1
  36. Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT10], 1]])) → FFF11
  37. Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT10], 2]])) → FFF12
  38. Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT20], 1]])) → FFF21
  39. Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT20], 2]])) → FFF22
  40. Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT20], 3]])) → FFF23
  41. Element((Invert[{{Element[FFF22, 1, 1] - Element[FFF21, 1, 1], Element[FFF23, 1, 1] - Element[FFF21, 1, 1], Element[FFF11, 1, 1] - Element[FFF12, 1, 1]}, {Element[FFF22, 2, 1] - Element[FFF21, 2, 1], Element[FFF23, 2, 1] - Element[FFF21, 2, 1], Element[FFF11, 2, 1] - Element[FFF12, 2, 1]}, {Element[FFF22, 3, 1] - Element[FFF21, 3, 1], Element[FFF23, 3, 1] - Element[FFF21, 3, 1], Element[FFF11, 3, 1] - Element[FFF12, 3, 1]}}] * (FFF11 - FFF21)), 3, 1) → r
  42. Segment(PPP1, PPP2) → LL12_1
  43. Segment(PPP1, PPP3) → LL13
  44. Segment(PPP3, PP12) → LL11
  45. Segment(PP11, PPP2) → LL12
  46. Line(PPPP11, LL12_1) → lll11
  47. Line(PPPP12, LL12) → lll12
  48. Intersect(lll12, lll11) → I000
  49. Segment(I000, PPPP11) → lllll12
  50. Segment(I000, PPPP12) → lllll11
  51. Line(PPPP21, LL13) → lll21
  52. Line(PPPP22, LL11) → lll22
  53. Intersect(lll22, lll21) → PPPPP2
  54. Segment(PPPP22, PPPPP2) → lllll21
  55. Segment(PPPP21, PPPPP2) → lllll22
  56. Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT20], 4]])) → FFF24
  57. If(FFFFF1 ≟ 0, FFFF12, FFFF13) → FFFFFF2
  58. If(FFFFFFF2 > 90°, FFFFFFF2 - 90°, 90° - FFFFFFF2) → FFFFFFF3
  59. Polygon(Control1, Control2, 4) → poly1, c, f, g, h, P000, Q000
  60. Textfield(TTT30) → inputBox3
  61. TextToUnicode(TTT30) → TTT31
  62. Object(UnicodeToLetter[Element[TTT31, 1]]) → PP31
  63. Object(UnicodeToLetter[Element[TTT31, 2]]) → PP32
  64. Object(UnicodeToLetter[Element[TTT31, 3]]) → PP33
  65. Object(UnicodeToLetter[Element[TTT31, 4]]) → PP34
  66. Object(UnicodeToLetter[Element[TTT41, 1]]) → PPP41
  67. Object(UnicodeToLetter[Element[TTT41, 2]]) → PPP42
  68. Object(UnicodeToLetter[Element[TTT51, 1]]) → PPP51
  69. Object(UnicodeToLetter[Element[TTT51, 2]]) → PPP52
  70. Intersection(TTT21, TTT31) → TTT61
  71. Object(UnicodeToLetter[Element[TTT61, 1]]) → PPP61
  72. Object(UnicodeToLetter[Element[TTT61, 2]]) → PPP62
  73. Object("F" + (UnicodeToLetter[Element[TTT41, 1]])) → FFF41
  74. Object("F" + (UnicodeToLetter[Element[TTT41, 2]])) → FFF42
  75. Object("F" + (UnicodeToLetter[Element[TTT51, 1]])) → FFF51
  76. Object("F" + (UnicodeToLetter[Element[TTT51, 2]])) → FFF52
  77. Object("F" + (UnicodeToLetter[Element[TTT61, 1]])) → FFF61
  78. Object("F" + (UnicodeToLetter[Element[TTT61, 2]])) → FFF62
  79. Polygon(PP31, PP32, PP33, PP34) → poly3, pp31, pp32, pp33, pp34
  80. Segment(PPP61, PPP62) → line6162
  81. Length(TTT21) → length21
  82. Length(TTT31) → length31
  83. If(length21 ≤ length31, TTT21, TTT31) → TTT71
  84. Object("F" + (UnicodeToLetter[Element[TTT71, 1]])) → FFF71
  85. Object("F" + (UnicodeToLetter[Element[TTT71, 2]])) → FFF72
  86. Polygon(PP31, PP32, PP33) → poly4, m, n, p
  87. Angle(PPP41, HHH41, PPP51) → line41
  88. Angle(PPP42, HHH42, PPP52) → line52
  89. Angle(PPP42, HHH42, PPP51) → line42
  90. Angle(PPP41, HHH41, PPP52) → line51
  91. Angle(PPP41, HHH41, PPP51) → lline41
  92. Angle(PPP42, HHH42, PPP51) → lline42
  93. Angle(PPP41, HHH41, PPP52) → lline51
  94. Unique(RemoveUndefined[{GGG41, GGG42, GGG51, GGG52}]) → aaaaaaaaaaaaaaaaaaaaaaaaaa_3
  95. Frequency(RemoveUndefined[{GGG41, GGG42, GGG51, GGG52}]) → aaaaaaaaaaaaaaaaaaaaaaaaaa_2
  96. Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT30], 1]])) → FFF31
  97. Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT30], 2]])) → FFF32
  98. Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT30], 3]])) → FFF33
  99. Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT30], 4]])) → FFF34
  100. Determinant({{Element[FFF31, 2, 1] - Element[FFF32, 2, 1], Element[FFF31, 3, 1] - Element[FFF32, 3, 1]}, {Element[FFF32, 2, 1] - Element[FFF33, 2, 1], Element[FFF32, 3, 1] - Element[FFF33, 3, 1]}}) → aangle21
  101. Determinant({{Element[FFF21, 2, 1] - Element[FFF22, 2, 1], Element[FFF21, 3, 1] - Element[FFF22, 3, 1]}, {Element[FFF22, 2, 1] - Element[FFF23, 2, 1], Element[FFF22, 3, 1] - Element[FFF23, 3, 1]}}) → aangle11
  102. Determinant({{Element[FFF21, 1, 1] - Element[FFF22, 1, 1], Element[FFF21, 2, 1] - Element[FFF22, 2, 1]}, {Element[FFF22, 1, 1] - Element[FFF23, 1, 1], Element[FFF22, 2, 1] - Element[FFF23, 2, 1]}}) → aangle13
  103. Determinant({{Element[FFF31, 1, 1] - Element[FFF32, 1, 1], Element[FFF31, 2, 1] - Element[FFF32, 2, 1]}, {Element[FFF32, 1, 1] - Element[FFF33, 1, 1], Element[FFF32, 2, 1] - Element[FFF33, 2, 1]}}) → aangle23
  104. Segment(PPP41, HHH41) → angle411
  105. Segment(HHH41, PPP51) → angle412
  106. Segment(PPP42, HHH42) → angle421
  107. Segment(HHH42, PPP51) → angle422
  108. Segment(PPP41, HHH41) → angle511
  109. Segment(HHH41, PPP52) → angle512
  110. Segment(PPP42, HHH42) → angle521
  111. Segment(HHH42, PPP52) → angle522
  112. Segment(PPP41, HHH41) → anglea411
  113. Segment(HHH41, PPP51) → anglea412
  114. Segment(PPP42, HHH42) → anglea421
  115. Segment(HHH42, PPP51) → anglea422
  116. Segment(PPP41, HHH41) → anglea511
  117. Segment(HHH41, PPP52) → anglea512
  118. If(length21 ≤ length31, TTT31, TTT21) → TTT81
  119. Object("F" + (UnicodeToLetter[Element[TTT71, 3]])) → FFF73
  120. Object("F" + (UnicodeToLetter[Element[TTT71, 4]])) → FFF74
  121. Object("F" + (UnicodeToLetter[Element[TTT81, 1]])) → FFF81
  122. Object("F" + (UnicodeToLetter[Element[TTT81, 2]])) → FFF82
  123. Object("F" + (UnicodeToLetter[Element[TTT81, 3]])) → FFF83
  124. Object("F" + (UnicodeToLetter[Element[TTT81, 4]])) → FFF84
  125. Element((Invert[{{Element[FFF82, 1, 1] - Element[FFF81, 1, 1], Element[FFF83, 1, 1] - Element[FFF81, 1, 1], Element[FFF71, 1, 1] - Element[FFF72, 1, 1]}, {Element[FFF82, 2, 1] - Element[FFF81, 2, 1], Element[FFF83, 2, 1] - Element[FFF81, 2, 1], Element[FFF71, 2, 1] - Element[FFF72, 2, 1]}, {Element[FFF82, 3, 1] - Element[FFF81, 3, 1], Element[FFF83, 3, 1] - Element[FFF81, 3, 1], Element[FFF71, 3, 1] - Element[FFF72, 3, 1]}}] * (FFF71 - FFF81)), 3, 1) → r712
  126. Element((Invert[{{Element[FFF82, 1, 1] - Element[FFF81, 1, 1], Element[FFF83, 1, 1] - Element[FFF81, 1, 1], Element[FFF72, 1, 1] - Element[FFF73, 1, 1]}, {Element[FFF82, 2, 1] - Element[FFF81, 2, 1], Element[FFF83, 2, 1] - Element[FFF81, 2, 1], Element[FFF72, 2, 1] - Element[FFF73, 2, 1]}, {Element[FFF82, 3, 1] - Element[FFF81, 3, 1], Element[FFF83, 3, 1] - Element[FFF81, 3, 1], Element[FFF72, 3, 1] - Element[FFF73, 3, 1]}}] * (FFF72 - FFF81)), 3, 1) → r723
  127. Element((Invert[{{Element[FFF82, 1, 1] - Element[FFF81, 1, 1], Element[FFF83, 1, 1] - Element[FFF81, 1, 1], Element[FFF73, 1, 1] - Element[FFF74, 1, 1]}, {Element[FFF82, 2, 1] - Element[FFF81, 2, 1], Element[FFF83, 2, 1] - Element[FFF81, 2, 1], Element[FFF73, 2, 1] - Element[FFF74, 2, 1]}, {Element[FFF82, 3, 1] - Element[FFF81, 3, 1], Element[FFF83, 3, 1] - Element[FFF81, 3, 1], Element[FFF73, 3, 1] - Element[FFF74, 3, 1]}}] * (FFF73 - FFF81)), 3, 1) → r734
  128. Element((Invert[{{Element[FFF82, 1, 1] - Element[FFF81, 1, 1], Element[FFF83, 1, 1] - Element[FFF81, 1, 1], Element[FFF74, 1, 1] - Element[FFF71, 1, 1]}, {Element[FFF82, 2, 1] - Element[FFF81, 2, 1], Element[FFF83, 2, 1] - Element[FFF81, 2, 1], Element[FFF74, 2, 1] - Element[FFF71, 2, 1]}, {Element[FFF82, 3, 1] - Element[FFF81, 3, 1], Element[FFF83, 3, 1] - Element[FFF81, 3, 1], Element[FFF74, 3, 1] - Element[FFF71, 3, 1]}}] * (FFF74 - FFF81)), 3, 1) → r741
  129. Segment(B, G) → LLL111
  130. Segment(C, F) → LLL112
  131. Segment(A, H) → LLL121
  132. Segment(D, E) → LLL122
  133. Intersect(LLL111, LLL112) → LLL131
  134. Intersect(LLL121, LLL122) → LLL132
  135. Angle(B, LLL131, C) → LLL141
  136. Angle(F, LLL131, G) → LLL142
  137. Angle(B, LLL131, F) → LLL143
  138. Angle(C, LLL131, G) → LLL144
  139. Angle(A, LLL132, D) → LLL151
  140. Angle(E, LLL132, H) → LLL152
  141. Angle(A, LLL132, E) → LLL153
  142. Angle(D, LLL132, H) → LLL154
  143. Segment(A, F) → LLL211
  144. Segment(B, E) → LLL212
  145. Segment(D, G) → LLL221
  146. Segment(C, H) → LLL222
  147. Intersect(LLL211, LLL212) → LLL231
  148. Intersect(LLL221, LLL222) → LLL232
  149. Angle(A, LLL231, B) → LLL241
  150. Angle(E, LLL231, F) → LLL242
  151. Angle(E, LLL231, A) → LLL243
  152. Angle(B, LLL231, F) → LLL244
  153. Angle(D, LLL232, C) → LLL251
  154. Angle(G, LLL232, H) → LLL252
  155. Angle(D, LLL232, H) → LLL253
  156. Angle(C, LLL232, G) → LLL254
  157. Segment(A, C) → LLL311
  158. Segment(B, D) → LLL312
  159. Segment(E, G) → LLL321
  160. Segment(F, H) → LLL322
  161. Intersect(LLL311, LLL312) → LLL331
  162. Intersect(LLL321, LLL322) → LLL332
  163. Angle(A, LLL331, B) → LLL341
  164. Angle(C, LLL331, D) → LLL342
  165. Angle(A, LLL331, D) → LLL343
  166. Angle(B, LLL331, C) → LLL344
  167. Angle(E, LLL332, F) → LLL351
  168. Angle(G, LLL332, H) → LLL352
  169. Angle(E, LLL332, H) → LLL353
  170. Angle(F, LLL332, G) → LLL354
  171. Intersect(pp31, pp33) → test21
  172. Intersect(pp32, pp34) → test22
  173. Intersect(pp32, pp33) → test23
  174. Intersect(pp31, pp34) → test24
  175. Segment(LLL131, LLL132) → LLL6
  176. Segment(LLL231, LLL232) → LLL62
  177. Segment(LLL331, LLL332) → LLL63

AI Drawing Prompt Reference

Draw two intersecting planes, one defined by points F11 and F12, and the other by points F21, F22, and F23. Calculate the angle between the two planes using the cross product of vectors, and find the intersection line of the two planes with point I000. First, create four points F11, F12, F21, F22, and F23, then create two planes, calculate the angle between them, and finally find the intersection line and mark the intersection point I000.
The prompt above was compiled from the original drawing commands and is for reference only.