Angle Between Two Planes in a Rectangular Block
Loading the math board and drawing, please wait…
This example demonstrates the calculation of the angle between two planes within a rectangular block. It involves core mathematical concepts such as vectors, dot product, plane equations, and the cosine theorem. Key GeoGebra commands and objects used in the construction include Polygon, Vector, Line, and Angle, as outlined in the construction summary. Suitable for high school solid geometry instruction and university calculus courses, it provides an intuitive understanding of spatial geometric problems.
GeoGebra Commands & Parameters
Polygon(Control1, Control2, 4) → poly2, i, j, k, l, R000, S000PointIn(poly2) → ControlRPolygon(Control1, Control2, 4) → controlpoly, a_1, b_1, d, e, Control3, Control4Vector(O000, K1) → k1Vector(O000, J1) → j1Vector(O000, I1) → i1Segment(A, B) → L01Segment(B, C) → L03Segment(C, D) → L05Segment(D, A) → L07Segment(A, E) → L02Segment(B, F) → L04Segment(F, G) → L10Segment(G, H) → L11Segment(E, H) → L12Segment(E, F) → L09Segment(C, G) → L06Segment(D, H) → L08Textfield(TTT10) → inputBox1Textfield(TTT20) → inputBox2TextToUnicode(TTT10) → TTT11Object(UnicodeToLetter[Element[TTT11, 1]]) → PP11Object(UnicodeToLetter[Element[TTT11, 2]]) → PP12TextToUnicode(TTT20) → TTT21Object(UnicodeToLetter[Element[TTT21, 1]]) → PP21Object(UnicodeToLetter[Element[TTT21, 2]]) → PP22Object(UnicodeToLetter[Element[TTT21, 3]]) → PP23Object(UnicodeToLetter[Element[TTT21, 4]]) → PP24Segment(PP11, PP12) → LL11_1Polygon(PP21, PP22, PP23, PP24) → plane11, pp21, pp22, pp23, pp24Intersect(pp22, pp23) → test13Intersect(pp21, pp24) → test14Intersect(pp21, pp23) → test11Intersect(pp22, pp24) → test12Polygon(PP21, PP22, PP23) → plane12, pp23_1, pp21_1, pp22_1Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT10], 1]])) → FFF11Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT10], 2]])) → FFF12Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT20], 1]])) → FFF21Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT20], 2]])) → FFF22Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT20], 3]])) → FFF23Element(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) → rSegment(PPP1, PPP2) → LL12_1Segment(PPP1, PPP3) → LL13Segment(PPP3, PP12) → LL11Segment(PP11, PPP2) → LL12Line(PPPP11, LL12_1) → lll11Line(PPPP12, LL12) → lll12Intersect(lll12, lll11) → I000Segment(I000, PPPP11) → lllll12Segment(I000, PPPP12) → lllll11Line(PPPP21, LL13) → lll21Line(PPPP22, LL11) → lll22Intersect(lll22, lll21) → PPPPP2Segment(PPPP22, PPPPP2) → lllll21Segment(PPPP21, PPPPP2) → lllll22Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT20], 4]])) → FFF24If(FFFFF1 ≟ 0, FFFF12, FFFF13) → FFFFFF2If(FFFFFFF2 > 90°, FFFFFFF2 - 90°, 90° - FFFFFFF2) → FFFFFFF3Polygon(Control1, Control2, 4) → poly1, c, f, g, h, P000, Q000Textfield(TTT30) → inputBox3TextToUnicode(TTT30) → TTT31Object(UnicodeToLetter[Element[TTT31, 1]]) → PP31Object(UnicodeToLetter[Element[TTT31, 2]]) → PP32Object(UnicodeToLetter[Element[TTT31, 3]]) → PP33Object(UnicodeToLetter[Element[TTT31, 4]]) → PP34Object(UnicodeToLetter[Element[TTT41, 1]]) → PPP41Object(UnicodeToLetter[Element[TTT41, 2]]) → PPP42Object(UnicodeToLetter[Element[TTT51, 1]]) → PPP51Object(UnicodeToLetter[Element[TTT51, 2]]) → PPP52Intersection(TTT21, TTT31) → TTT61Object(UnicodeToLetter[Element[TTT61, 1]]) → PPP61Object(UnicodeToLetter[Element[TTT61, 2]]) → PPP62Object("F" + (UnicodeToLetter[Element[TTT41, 1]])) → FFF41Object("F" + (UnicodeToLetter[Element[TTT41, 2]])) → FFF42Object("F" + (UnicodeToLetter[Element[TTT51, 1]])) → FFF51Object("F" + (UnicodeToLetter[Element[TTT51, 2]])) → FFF52Object("F" + (UnicodeToLetter[Element[TTT61, 1]])) → FFF61Object("F" + (UnicodeToLetter[Element[TTT61, 2]])) → FFF62Polygon(PP31, PP32, PP33, PP34) → poly3, pp31, pp32, pp33, pp34Segment(PPP61, PPP62) → line6162Length(TTT21) → length21Length(TTT31) → length31If(length21 ≤ length31, TTT21, TTT31) → TTT71Object("F" + (UnicodeToLetter[Element[TTT71, 1]])) → FFF71Object("F" + (UnicodeToLetter[Element[TTT71, 2]])) → FFF72Polygon(PP31, PP32, PP33) → poly4, m, n, pAngle(PPP41, HHH41, PPP51) → line41Angle(PPP42, HHH42, PPP52) → line52Angle(PPP42, HHH42, PPP51) → line42Angle(PPP41, HHH41, PPP52) → line51Angle(PPP41, HHH41, PPP51) → lline41Angle(PPP42, HHH42, PPP51) → lline42Angle(PPP41, HHH41, PPP52) → lline51Unique(RemoveUndefined[{GGG41, GGG42, GGG51, GGG52}]) → aaaaaaaaaaaaaaaaaaaaaaaaaa_3Frequency(RemoveUndefined[{GGG41, GGG42, GGG51, GGG52}]) → aaaaaaaaaaaaaaaaaaaaaaaaaa_2Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT30], 1]])) → FFF31Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT30], 2]])) → FFF32Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT30], 3]])) → FFF33Object("F" + (UnicodeToLetter[Element[TextToUnicode[TTT30], 4]])) → FFF34Determinant({{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]}}) → aangle21Determinant({{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]}}) → aangle11Determinant({{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]}}) → aangle13Determinant({{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]}}) → aangle23Segment(PPP41, HHH41) → angle411Segment(HHH41, PPP51) → angle412Segment(PPP42, HHH42) → angle421Segment(HHH42, PPP51) → angle422Segment(PPP41, HHH41) → angle511Segment(HHH41, PPP52) → angle512Segment(PPP42, HHH42) → angle521Segment(HHH42, PPP52) → angle522Segment(PPP41, HHH41) → anglea411Segment(HHH41, PPP51) → anglea412Segment(PPP42, HHH42) → anglea421Segment(HHH42, PPP51) → anglea422Segment(PPP41, HHH41) → anglea511Segment(HHH41, PPP52) → anglea512If(length21 ≤ length31, TTT31, TTT21) → TTT81Object("F" + (UnicodeToLetter[Element[TTT71, 3]])) → FFF73Object("F" + (UnicodeToLetter[Element[TTT71, 4]])) → FFF74Object("F" + (UnicodeToLetter[Element[TTT81, 1]])) → FFF81Object("F" + (UnicodeToLetter[Element[TTT81, 2]])) → FFF82Object("F" + (UnicodeToLetter[Element[TTT81, 3]])) → FFF83Object("F" + (UnicodeToLetter[Element[TTT81, 4]])) → FFF84Element(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) → r712Element(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) → r723Element(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) → r734Element(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) → r741Segment(B, G) → LLL111Segment(C, F) → LLL112Segment(A, H) → LLL121Segment(D, E) → LLL122Intersect(LLL111, LLL112) → LLL131Intersect(LLL121, LLL122) → LLL132Angle(B, LLL131, C) → LLL141Angle(F, LLL131, G) → LLL142Angle(B, LLL131, F) → LLL143Angle(C, LLL131, G) → LLL144Angle(A, LLL132, D) → LLL151Angle(E, LLL132, H) → LLL152Angle(A, LLL132, E) → LLL153Angle(D, LLL132, H) → LLL154Segment(A, F) → LLL211Segment(B, E) → LLL212Segment(D, G) → LLL221Segment(C, H) → LLL222Intersect(LLL211, LLL212) → LLL231Intersect(LLL221, LLL222) → LLL232Angle(A, LLL231, B) → LLL241Angle(E, LLL231, F) → LLL242Angle(E, LLL231, A) → LLL243Angle(B, LLL231, F) → LLL244Angle(D, LLL232, C) → LLL251Angle(G, LLL232, H) → LLL252Angle(D, LLL232, H) → LLL253Angle(C, LLL232, G) → LLL254Segment(A, C) → LLL311Segment(B, D) → LLL312Segment(E, G) → LLL321Segment(F, H) → LLL322Intersect(LLL311, LLL312) → LLL331Intersect(LLL321, LLL322) → LLL332Angle(A, LLL331, B) → LLL341Angle(C, LLL331, D) → LLL342Angle(A, LLL331, D) → LLL343Angle(B, LLL331, C) → LLL344Angle(E, LLL332, F) → LLL351Angle(G, LLL332, H) → LLL352Angle(E, LLL332, H) → LLL353Angle(F, LLL332, G) → LLL354Intersect(pp31, pp33) → test21Intersect(pp32, pp34) → test22Intersect(pp32, pp33) → test23Intersect(pp31, pp34) → test24Segment(LLL131, LLL132) → LLL6Segment(LLL231, LLL232) → LLL62Segment(LLL331, LLL332) → LLL63
AI Drawing Prompt Reference
Draw a rectangular block and two intersecting planes within it to calculate the angle between them. First, draw the six faces of the rectangular block. Then, select two adjacent faces as planes and calculate the angle using their normal vectors. Finally, input the definition of the planes through the text fields to generate the planes and calculate the angle.
The prompt above was compiled from the original drawing commands and is for reference only.