The Great Illumination of the Hexagon
Loading the math board and drawing, please wait…
In collections
geometriadinamica.es
This example demonstrates the illumination phenomenon of a hexagon. The core mathematical concepts involved are geometry and geometric construction. The construction points include using GeoGebra commands: Midpoint, Line, AngularBisector, Mirror, OrthogonalLine, Intersect, Polygon, LineBisector, Conic, Focus, FirstAxisLength, Hyperbola, Segment, Axes, Slope, Center, Vector, Ray, Circle, CircumcircleSector, Area, If, Angle. Suitable for middle school mathematics and geometry.
GeoGebra Commands & Parameters
Midpoint(C, B) → M1Line(A, M1) → mediana1AngularBisector(C, A, B) → bisectrizV1Mirror(mediana1, bisectrizV1) → simediana1OrthogonalLine(A, bisectrizV1) → jAngularBisector(A, C, B) → bisectrizV2Intersect(bisectrizV1, bisectrizV2) → IOrthogonalLine(C, bisectrizV2) → iIntersect(i, j) → E_BIntersect(bisectrizV1, i) → E_APolygon(A, C, B) → isleta, v3, v1, v2LineBisector(v2) → mediatriz1LineBisector(v1) → mediatriz2Intersect(mediatriz2, mediatriz1) → OMidpoint(A, B) → M2Line(C, M2) → mediana2Mirror(mediana2, bisectrizV2) → simediana2Intersect(simediana1, simediana2) → LemoineConic(Lemoine, I, E_B, E_A, O) → h1Focus(h1) → Foco2, Foco1FirstAxisLength(h1) → semiejeHyperbola(Foco1, Foco2, semieje) → hSegment(O, B) → ROrthogonalLine(I, v1) → ortoIIntersect(v1, ortoI) → IbaseSegment(I, Ibase) → rAxes(h1) → eje2, eje1Slope(eje2) → mCenter(h1) → X110OrthogonalLine(G, v3) → g3Intersect(v3, g3) → G3Vector(G, G3) → u3Ray(P, R312) → s312Intersect(v3, s312) → S312Circle(P, d) → circuloPIntersect(circuloP, v3, 1) → P31Intersect(circuloP, v3, 2) → P32Midpoint(P31, P32) → PM3Ray(P, PM3) → sM3Intersect(circuloP, sM3) → PCM3,CircumcircleSector(P31, PCM3, P32) → sector2cEPolygon(P, P31, P32) → tri2c, z2c2, z2c3, z2c1Area(A, C, B) → areaiIntersect(circuloP, v1, 1) → P11If(P11 ≟ P11, true, false) → p11Intersect(circuloP, v1, 2) → P12If(P12 ≟ P12, true, false) → p12Midpoint(P11, P12) → PM1Ray(P, PM1) → sM1Intersect(circuloP, sM1) → PCM1,CircumcircleSector(P11, PCM1, P12) → sector2aEPolygon(P, P11, P12) → tri2a, z2a2, z2a3, z2a1OrthogonalLine(G, v1) → g1Intersect(v1, g1) → G1Vector(G, G1) → u1Ray(P, R112) → s112Intersect(circuloP, s112) → P112, Cir1CircumcircleSector(P11, P112, P12) → sector2aIntersect(v1, s112) → S112If(S112 ≟ S112, sector2a - tri2a, sector2a + tri2a) → area2aIntersect(circuloP, v2, 1) → P22If(P22 ≟ P22, true, false) → p22Intersect(circuloP, v2, 2) → P21If(P21 ≟ P21, true, false) → p21Midpoint(P21, P22) → PM2Ray(P, PM2) → sM2Intersect(circuloP, sM2) → PCM2, Cir2CircumcircleSector(P21, PCM2, P22) → sector2bEPolygon(P, P21, P22) → tri2b, z2b2, z2b3, z2b1OrthogonalLine(G, v2) → g2Intersect(v2, g2) → G2Vector(G, G2) → u2Ray(P, R212) → s212Intersect(circuloP, s212) → P212, Cir3CircumcircleSector(P21, P212, P22) → sector2bIntersect(v2, s212) → S212If(S212 ≟ S212, sector2b - tri2b, sector2b + tri2b) → area2bIf(P32 ≟ P32, true, false) → p32If(P31 ≟ P31, true, false) → p31If(p11 ∧ p12 ∧ p21 ∧ p22 ∧ p31 ∧ p32, true, false) → pos2EIntersect(circuloP, s312) → P312, Cir4CircumcircleSector(P31, P312, P32) → sector2cIf(S312 ≟ S312, sector2c - tri2c, sector2c + tri2c) → area2cIf(pos2E, aread - area2aE - area2bE - area2cE, area2) → area2ESegment(P, A) → dV1Segment(P, C) → dV2Midpoint(A, C) → M3Ray(P, M3) → fuera3Segment(P, B) → dV3If(dV1 ≤ d ∧ dV2 ≤ d ∧ dV3 ≤ d, true, false) → pos5If(pos5, areai, 0) → area5If(area5 < areai, area5, areai) → area5TIntersect(v2, fuera3) → Corte32Intersect(v1, fuera3) → Corte31If(p12 ∧ (¬p11), P12, P11) → P1If(P1 ≟ P1, true, false) → p1If(Distance[P21, P1] > Distance[P22, P1], P22, P21) → P21'Polygon(P, P1, P21') → tri621, ztri621c, ztri621b, ztri621aIf(Distance[P21, P1] > Distance[P22, P1], P21, P22) → P22'If(p22 ∧ (¬p21), P22, P21) → P2Midpoint(P2, P1) → V3bRay(P, V3b) → sV3Intersect(circuloP, sV3, 1) → V3cCircumcircleSector(P2, V3c, P1) → sector1cPolygon(B, P1, P2) → tri1c, z1c2, z1c3, z1c1Polygon(P, P1, P2) → tri01c, z01c2, z01c3, z01c1If(Distance[V3b, B] < dV3 ∧ Distance[A, P] < d, aread - sector1c + tri1c + tri01c, tri1c + sector1c - tri01c) → area1cPolygon(C, A, P2, P1) → cuadri3, zcuadri3a, zcuadri3b, zcuadri3c, zcuadri3dIf(Distance[P11, P2] > Distance[P12, P2], P12, P11) → P11'Polygon(P, P2, P11') → tri611, ztri611b, ztri611a, ztri611cIf(Distance[P11, P2] > Distance[P12, P2], P11, P12) → P12'If(P2 ≟ P2, true, false) → p2If(Distance[P31, P2] > Distance[P32, P2], P32, P31) → P31'Polygon(P, P2, P31') → tri632, ztri632a, ztri632c, ztri632bIf(Distance[P31, P2] > Distance[P32, P2], P31, P32) → P32'Polygon(B, P1, P32', P31', P2) → penta3, zpenta3e, zpenta3d, zpenta3c, zpenta3b, zpenta3aPolygon(P, P1, P32') → tri631, ztri631b, ztri631c, ztri631aIf(p31 ∧ p32 ∧ p1 ∧ p2 ∧ ((¬p11) ∨ (¬p12)) ∧ ((¬p21) ∨ (¬p22)), true, false) → pos6cIf(p11 ∧ p12 ∧ p21 ∧ p22 ∨ p11 ∧ p12 ∧ p31 ∧ p32 ∨ p21 ∧ p22 ∧ p31 ∧ p32, true, false) → pos2If(p32 ∧ (¬p31), P32, P31) → P3Polygon(C, P1, P21', P22', P3) → penta2, zpenta2c, zpenta2b, zpenta2a, zpenta2e, zpenta2dPolygon(P, P3, P22') → tri622, ztri622c, ztri622a, ztri622bMidpoint(P1, P3) → V2bRay(P, V2b) → sV2Intersect(circuloP, sV2, 1) → V2cCircumcircleSector(P1, V2c, P3) → sector1bPolygon(C, P1, P3) → tri1b, z1b2, z1b3, z1b1Polygon(P, P1, P3) → tri01b, z01b2, z01b3, z01b1If(Distance[V2b, C] < dV2 ∧ Distance[A, P] < d, aread - sector1b + tri1b + tri01b, tri1b + sector1b - tri01b) → area1bPolygon(A, B, P1, P3) → cuadri2, zcuadri2a, zcuadri2b, zcuadri2c, zcuadri2dPolygon(A, P2, P11', P12', P3) → penta1, zpenta1a, zpenta1b, zpenta1c, zpenta1d, zpenta1ePolygon(P, P3, P12') → tri612, ztri612c, ztri612b, ztri612aMidpoint(P2, P3) → V1bRay(P, V1b) → sV1Intersect(circuloP, sV1, 1) → V1cCircumcircleSector(P2, V1c, P3) → sector1aPolygon(P, P2, P3) → tri01a, z01a2, z01a3, z01a1Polygon(A, P2, P3) → tri1a, z1a2, tri1a3, z1a1If(Distance[V1b, A] < dV1 ∧ Distance[B, P] < d, aread - sector1a + tri1a + tri01a, tri1a + sector1a - tri01a) → area1aIf(area1a ≟ area1a, area1a, If[area1b ≟ area1b, area1b, area1c]) → area1If(area1 < areai, area1, areai) → area1TPolygon(C, B, P2, P3) → cuadri1, zcuadri1a, zcuadri1b, zcuadri1c, zcuadri1dIf(area4 < areai, area4, areai) → area4TIf(P3 ≟ P3, true, false) → p3If(p21 ∧ p22 ∧ p1 ∧ p3 ∧ ((¬p11) ∨ (¬p12)) ∧ ((¬p31) ∨ (¬p32)), true, false) → pos6bIf((¬p3) ∧ p1 ∧ ((¬p11) ∨ (¬p12)) ∧ p2 ∧ ((¬p21) ∨ (¬p22)), true, false) → pos1cIf((¬p2) ∧ p1 ∧ ((¬p11) ∨ (¬p12)) ∧ p3 ∧ ((¬p31) ∨ (¬p32)), true, false) → pos1bIf((¬p1) ∧ p2 ∧ ((¬p21) ∨ (¬p22)) ∧ p3 ∧ ((¬p31) ∨ (¬p32)), true, false) → pos1aIf(pos1a ∨ pos1b ∨ pos1c, true, false) → pos1If(pos1 ∧ dV2 ≤ d ∧ dV3 ≤ d, true, false) → pos4cIf(pos1 ∧ dV1 ≤ d ∧ dV3 ≤ d, true, false) → pos4bIf(pos1 ∧ dV1 ≤ d ∧ dV2 ≤ d, true, false) → pos4aIf(pos4a ∨ pos4b ∨ pos4c, true, false) → pos4If(p1 ∧ (¬p2) ∧ (¬p3) ∨ (¬p1) ∧ p2 ∧ (¬p3) ∨ (¬p1) ∧ (¬p2) ∧ p3, true, false) → pos3If(p11 ∧ p12 ∧ p2 ∧ p3 ∧ ((¬p21) ∨ (¬p22)) ∧ ((¬p31) ∨ (¬p32)), true, false) → pos6aIf(pos6a ∨ pos6b ∨ pos6c, true, false) → pos6CircumcircleSector(P2, P312, P1) → sector6cIf(pos6c, penta3 + sector6c - sector2c - tri631 - tri632, 0) → area6cCircumcircleSector(P1, P212, P3) → sector6bIf(pos6b, penta2 + sector6b - sector2b - tri621 - tri622, 0) → area6bCircumcircleSector(P2, P112, P3) → sector6aIf(pos6a, penta1 + sector6a - sector2a - tri611 - tri612, 0) → area6aIf(area2E < areai, area2E, areai) → area2TIf(area6 < areai, area6, areai) → area6TRay(P, M2) → fuera2Intersect(v1, fuera2) → Corte21Intersect(v3, fuera2) → Corte23Ray(P, M1) → fuera1Intersect(v3, fuera1) → Corte13Intersect(v2, fuera1) → Corte12Line(B, Lemoine) → simediana3Angle(B, A, C) → αAngle(A, C, B) → βAngle(C, B, A) → γIf(δ ≟ α, M1, If[δ ≟ β, M2, M3]) → MLine(M, Lemoine) → eIf(sector2c > aread / 2, sector2c + tri2c, sector2c) → sector2CIf(areaT > 0 ∨ Corte12 ≟ Corte12 ∨ Corte13 ≟ Corte13 ∨ Corte21 ≟ Corte21 ∨ Corte23 ≟ Corte23 ∨ Corte31 ≟ Corte31 ∨ Corte32 ≟ Corte32, areaT, aread) → areaAngle(isleta) → ε, ζ, ηLine(B, M3) → mediana3Intersect(bisectrizV2, j) → E_CCircle(O, R) → circunscritaLine(G, O) → eulerMirror(euler, v2) → euler2Mirror(euler, v1) → euler1Intersect(h1, e, 2) → HIntersect(h1, euler, 1) → JSegment(J, I) → aIntersect(euler, euler1) → EESegment(O, B) → bCircle(I, Ibase) → fLine(I, B) → cOrthogonalLine(B, c) → gLine(C, A) → kLine(A, B) → lLine(B, C) → nOrthogonalLine(E_A, l) → pIntersect(l, p) → DCircle(E_A, D) → qOrthogonalLine(E_C, n) → sIntersect(n, s) → ECircle(E_C, E) → tOrthogonalLine(E_B, n) → a_1Intersect(n, a_1) → KCircle(E_B, K) → c_1
AI Drawing Prompt Reference
Draw a hexagon and demonstrate its geometric construction, including medians, angle bisectors, mirror lines, conic sections, foci, and hyperbolas. Start by drawing the hexagon, then construct medians and angle bisectors, followed by mirror lines and their intersections. Further construct the hyperbola and related geometric elements, and finally draw the circle and intersections with the hyperbola to showcase the hexagon's geometric properties.
The prompt above was compiled from the original drawing commands and is for reference only.