Muqarnas Geometric Shapes
Loading the math board and drawing, please wait…
This example illustrates the geometric principles of Muqarnas, a form of Islamic architectural decoration. Muqarnas creates unique three-dimensional effects through the combination of geometric shapes. Key mathematical concepts include solid geometry, symmetry, and vectors. Using GeoGebra commands such as Rotate, Intersect, and Segment, complex geometric shapes can be constructed. Suitable for high school or university solid geometry and architectural art courses.
GeoGebra Commands & Parameters
Rotate(A + (1 / sin(67.5°) * (B - A)), 22.5°, A) → BARBRotate(B, 135°, A) → BBARotate(B, 45°, A) → ABRRotate(B, 45°, A) → ABSMRotate(A + (sin(45°) / sin(112.5°) * (B - A)), 22.5°, A) → ABTRotate(A, -90°, B) → ABRotate(B, -135°, A) → ABARotate(A + (sin(45°) / sin(22.5°) * (B - A)), 112.5°, A) → ABABIntersect(Line[A, Rotate[B, 45°, A]], Line[B, Rotate[A, -45°, B]]) → ABHIntersect(Line[A, Rotate[B, 67.5°, A]], Line[B, Rotate[A, -67.5°, B]]) → ABHRRotate(B, 90°, A) → BARotate(B, 135°, A) → BARIntersect(OrthogonalLine[B, Line[A, B]], OrthogonalLine[BBA, Line[BBA, A]]) → BBABSegment(A, ABT) → t9pijl1Segment(A, B) → t9pijl2Segment(A, ABR) → t9pijl3Segment(A, BBAB) → t3pijl1Segment(B, BBAB) → t3pijl2Segment(BBA, BBAB) → t3pijl3Segment(BBA, A) → t3vet1Segment(A, B) → t3vet2Intersect(Line[C, Rotate[DB, 45°, Line[C, C + (0, 0, 1)]]], Line[E, Rotate[DB, -45°, Line[E, E + (0, 0, 1)]]]) → CESBIntersect(Line[C, Rotate[DB, 22.5°, Line[C, C + (0, 0, 1)]]], Line[E, Rotate[DB, -22.5°, Line[E, E + (0, 0, 1)]]]) → CELBIntersect(Line[C, Rotate[DB, 90°, Line[C, C + (0, 0, 1)]]], Line[E, Rotate[DB, -90°, Line[E, E + (0, 0, 1)]]]) → CEAPolygon(A, B, ABT, ABR) → SmBiped9, smb92, smb91, smb94, smb93Dilate(A, 0.75, Centroid[SmBiped9]) → A'Dilate(B, 0.75, Centroid[SmBiped9]) → B'Dilate(ABT, 0.75, Centroid[SmBiped9]) → ABT'Dilate(ABR, 0.75, Centroid[SmBiped9]) → ABR'Polygon(A, B, BARB, BBA) → Almond3, alm31, alm32, alm33, alm34Polygon(A', B', ABT', ABR') → SmBiped9', a', b', abt', abr'Dilate(A, 0.75, Centroid[Almond3]) → A'_1Dilate(B, 0.75, Centroid[Almond3]) → B'_1Dilate(BBAB, 0.75, Centroid[Almond3]) → BBAB'Dilate(BBA, 0.75, Centroid[Almond3]) → BBA'Polygon(A'_1, B'_1, BBAB', BBA') → Almond3', a'_1, b'_1, bbab', bba'Polygon(D, E, EE, DD) → achter1, d, e, ee, ddPolygon(C, CC, DD, D) → achter2, c, cc, f, d_1Polygon(EE, ECA, DD) → EAlmond3boven1, g, i, ecaPolygon(CC, ECA, DD) → EAlmond3boven2, j, k, lRotate(A + (sin(22.5°) / sin(112.5°) * (B - A)), 45°, A) → ABLPolygon(A, B, AB, BA) → Square1, sq11, sq13, sq12, sq14Dilate(A, 0.75, Centroid[Square1]) → A'_2Dilate(B, 0.75, Centroid[Square1]) → B'_2Dilate(AB, 0.75, Centroid[Square1]) → AB'Dilate(BA, 0.75, Centroid[Square1]) → BA'Polygon(A'_2, B'_2, AB', BA') → Square1', a'_2, b'_2, ab', ba'Rotate(A, -45°, B) → ABRHPolygon(A, B, ABRH, BAR) → Rhombus2, rh21, rh23, rh22, rh24Dilate(A, 0.75, Centroid[Rhombus2]) → A'_3Dilate(B, 0.75, Centroid[Rhombus2]) → B'_3Dilate(ABRH, 0.75, Centroid[Rhombus2]) → ABRH'Dilate(BAR, 0.75, Centroid[Rhombus2]) → BAR'Polygon(A'_3, B'_3, ABRH', BAR') → Rhombus2', a'_3, b'_3, abrh', bar'Rotate(A + (sin(67.5°) / sin(45°) * (B - A)), 67.5°, A) → BAJPolygon(A, B, BAJ, BBA) → Jug4, jug41, jug42, jug43, jug44Dilate(A, 0.75, Centroid[Jug4]) → A'_4Dilate(B, 0.75, Centroid[Jug4]) → B'_4Dilate(BAJ, 0.75, Centroid[Jug4]) → BAJ'Dilate(BBA, 0.75, Centroid[Jug4]) → BBA'_1Polygon(A'_4, B'_4, BAJ', BBA'_1) → Jug4', a'_4, b'_4, baj', bba'_1Polygon(A, B, ABH) → HSquare5, hsq52, hsq51, hsq53Dilate(A, 0.75, Centroid[HSquare5]) → A'_5Dilate(B, 0.75, Centroid[HSquare5]) → B'_5Dilate(ABH, 0.75, Centroid[HSquare5]) → ABH'Polygon(A'_5, B'_5, ABH') → HSquare5', abh', a'_5, b'_5Polygon(A, B, ABHR) → HRhombus6, hrh62, hrh61, hrh63Dilate(A, 0.75, Centroid[HRhombus6]) → A'_6Dilate(B, 0.75, Centroid[HRhombus6]) → B'_6Dilate(ABHR, 0.75, Centroid[HRhombus6]) → ABHR'Polygon(A'_6, B'_6, ABHR') → HRhombus6', abhr', a'_6, b'_6Polygon(A, B, ABL, BA) → LBiped10, lb101, lb103, lb102, lb104Dilate(A, 0.75, Centroid[LBiped10]) → A'_7Dilate(B, 0.75, Centroid[LBiped10]) → B'_7Dilate(ABL, 0.75, Centroid[LBiped10]) → ABL'Dilate(BA, 0.75, Centroid[LBiped10]) → BA'_1Polygon(A'_7, B'_7, ABL', BA'_1) → LBiped10', a'_7, b'_7, abl', ba'_1Polygon(A, B, BA) → HSquare11, hsq113, hsq111, hsq112Dilate(A, 0.75, Centroid[HSquare11]) → A'_8Dilate(B, 0.75, Centroid[HSquare11]) → B'_8Dilate(BA, 0.75, Centroid[HSquare11]) → BA'_2Polygon(A'_8, B'_8, BA'_2) → HSquare11', ba'_2, a'_8, b'_8Polygon(A, B, ABR) → HRhombus12, hrh121, hrh123, hrh122Dilate(A, 0.75, Centroid[HRhombus12]) → A'_9Dilate(B, 0.75, Centroid[HRhombus12]) → B'_9Dilate(ABR, 0.75, Centroid[HRhombus12]) → ABR'_1Polygon(A'_9, B'_9, ABR'_1) → HRhombus12', abr'_1, a'_9, b'_9Polygon(ABA, A, B, ABAB) → SmBiped13, smb132, smb131, smb134, smb133Dilate(ABA, 0.75, Centroid[SmBiped13]) → ABA'Dilate(A, 0.75, Centroid[SmBiped13]) → A'_{10}Dilate(B, 0.75, Centroid[SmBiped13]) → B'_{10}Dilate(ABAB, 0.75, Centroid[SmBiped13]) → ABAB'Polygon(ABA', A'_{10}, B'_{10}, ABAB') → SmBiped13', aba', a'_{10}, b'_{10}, abab'Polygon(A, B, BARB, ABR) → Almond14, m, n, p, qDilate(A, 0.75, Centroid[Almond14]) → A'_{11}Dilate(B, 0.75, Centroid[Almond14]) → B'_{11}Dilate(BARB, 0.75, Centroid[Almond14]) → BARB'Dilate(BAR, 0.75, Centroid[Almond14]) → BAR'_1Segment(A, AB) → sq1pijl1Segment(B, AB) → sq1pijl2Segment(A, B) → sqvet1Segment(A, BA) → sqvet2Segment(BA, AB) → sq1pijl3Segment(A, B) → sq7pijl3Segment(A, BA) → sq7pijl2Segment(A, ABRH) → rh2pijl1Segment(B, ABRH) → rh2pijl2Segment(BAR, ABRH) → rh2pijl3Segment(A, B) → rh2vet1Segment(A, BAR) → rh2vet2Segment(A, B) → rh8pijl2Segment(A, BAR) → rh8pijl3Segment(A, BARB) → alm3pijl1Segment(B, BARB) → alm3pijl2Segment(BBA, BARB) → alm3pijl3Segment(A, B) → alm3vet1Segment(A, BBA) → alm3vet2Segment(A, BAJ) → jug4pijl1Segment(B, BAJ) → jug4pijl2Segment(BBA, BAJ) → jug4pijl3Segment(A, B) → jug4vet1Segment(A, BBA) → jug4vet2Segment(Midpoint[A, B], ABH) → hsq5pijl1Segment(A, ABH) → hsq5pijl2Segment(B, ABH) → hsq5pijl3Segment(A, B) → hsq5vet1Segment(Midpoint[A, B], ABHR) → hrh6pijl1Segment(A, ABHR) → hrh6pijl2Segment(B, ABHR) → hrh6pijl3Segment(A, B) → hrh6vet1Segment(A, ABT) → smb9pijl1Segment(A, B) → smb9pijl2Segment(A, ABR) → smb9pijl3Segment(A, ABL) → lb10pijl1Segment(A, B) → lb10pijl2Segment(A, BA) → lb10pijl3Segment(A, Midpoint[BA, B]) → hsq11pijl1Segment(A, B) → hsq11pijl2Segment(A, BA) → hsq11pijl3Segment(A, Midpoint[ABR, B]) → hrh12pijl1Segment(A, ABR) → hrh12pijl2Segment(A, B) → hrh12pijl3Segment(A, ABAB) → smb13pijl1Segment(B, ABAB) → smb13pijl2Segment(ABA, ABAB) → smb13pijl3Segment(A, B) → smb13vet1Segment(A, ABA) → smb13vet2Segment(A, BARB) → alm14pijl1Polygon(EE, EC, DD) → ESquare1boven1, i_1, j_1, ecPolygon(CC, EC, DD) → ESquare1boven2, k_1, l_1, m_1Intersect(Line[C, Line[DB, E]], Line[E, Line[DB, C]]) → CEPolygon(DO, E, CE) → ESquare7boven1, r, s, tPolygon(DO, CE, C) → ESquare7boven2, a, b, f_1Polygon(EE, ECJ, DD) → EJug4boven1, q_1, r_1, ecjPolygon(CC, ECJ, DD) → EJug4boven2, s_1, t_1, f_2Polygon(CC, DD, CDHS) → EHSquare5boven, cdhs, g_2, h_2Polygon(CC, DD, CDHR) → EHRhombus6boven, cdhr, i_2, j_2Polygon(DO, E, CESB) → ESmBiped9boven1, g_1, h_1, n_1Polygon(DO, CESB, C) → ESmBiped9boven2, p_1, a_1, b_1Polygon(DO, E, CELB) → ELBiped10boven1, c_1, e_1, k_2Polygon(DO, CELB, C) → ELBiped10boven2, l_2, m_2, n_2Polygon(C, DO, E) → EHSquare11boven11, p_2, q_2, r_2Polygon(EE, ECSB, DD) → ESmbiped13boven1, s_2, t_2, ecsbPolygon(DD, ECSB, CC) → ESmbiped13boven2, d_2, f_3, g_3Polygon(DO, E, CEA) → EAlmond14onder1, a_2, b_2, c_2Polygon(DO, CEA, C) → EAlmond14onder2, e_2, h_3, i_3Dilate(A, 0.75, Centroid[Almond14]) → A'_{12}Dilate(B, 0.75, Centroid[Almond14]) → B'_{12}Dilate(BARB, 0.75, Centroid[Almond14]) → BARB'_1Dilate(ABR, 0.75, Centroid[Almond14]) → ABR'_2Polygon(A'_{12}, B'_{12}, BARB'_1, ABR'_2) → Almond14', a'_{12}, b'_{12}, barb'_1, abr'_2Segment(A, B) → alm14pijl2Segment(A, ABR) → alm14pijl3Point(xAxis) → FPoint(xAxis) → GHSquare5(F, G) → H, driehoek1, driehoek2, j_3, k_3, l_3, m_3HSquare5(G, I) → J, driehoek3, driehoek4, n_3, p_3, q_3, r_3Point(xAxis) → KHSquare5(K, F) → L, driehoek5, driehoek6, s_3, t_3, a_3, b_3TSquare1(F, H) → M, N, vierhoek1, vierhoek2, c_3, d_3, e_3, f_4, g_4TSquare1(G, J) → O, P, vierhoek3, vierhoek4, h_4, i_4, j_4, k_4, l_4TSquare1(H, O) → Q, R, vierhoek5, vierhoek6, m_4, n_4, p_4, q_4, r_4HSquare5(K, F) → S, driehoek7, driehoek8, s_4, t_4, a_4, b_4EHSquare5(K, F) → T, U, V, vierhoek7, driehoek9EHSquare5(F, G) → W, Z, A_1, vierhoek8, driehoek10EHSquare5(G, I) → C_1, D_1, E_1, vierhoek9, driehoek11Polygon(E_1, C_1, F_1) → driehoek12, c_4, d_4, e_4Polygon(F_1, C_1, A_1) → driehoek13, f_5, g_5, h_5Polygon(A_1, W, B_1) → driehoek14, i_5, j_5, wPolygon(B_1, W, V) → driehoek15, v_1, k_5, w_1ESquare1(V, B_1, A_1) → G_1, H_1, I_1, vierhoek10, vierhoek11, driehoek16, driehoek17ESquare1(A_1, F_1, E_1) → J_1, K_1, L_1, vierhoek12, vierhoek13, driehoek18, driehoek19Polygon(L_1, J_1, M_1) → driehoek20, l_5, m_5, n_5Polygon(M_1, J_1, I_1) → driehoek21, p_5, q_5, r_5ESquare1(I_1, M_1, L_1) → N_1, O_1, P_1, vierhoek14, vierhoek15, driehoek22, driehoek23
AI Drawing Prompt Reference
Draw a geometric pattern of Islamic architectural decoration. The pattern consists of rotated triangles and quadrilaterals forming a three-dimensional effect. Key objects include a central point, multiple rotated triangles and quadrilaterals, and intersecting lines connecting them. The construction order is to first establish the central point, then rotate the triangles and quadrilaterals, and finally connect these objects with intersecting lines to create a symmetric and layered design.
The prompt above was compiled from the original drawing commands and is for reference only.