Muqarnas Geometric Shapes

Muqarnas Geometric Shapes
Loading the math board and drawing, please wait…
2023-01-20 16:11
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

  1. Rotate(A + (1 / sin(67.5°) * (B - A)), 22.5°, A) → BARB
  2. Rotate(B, 135°, A) → BBA
  3. Rotate(B, 45°, A) → ABR
  4. Rotate(B, 45°, A) → ABSM
  5. Rotate(A + (sin(45°) / sin(112.5°) * (B - A)), 22.5°, A) → ABT
  6. Rotate(A, -90°, B) → AB
  7. Rotate(B, -135°, A) → ABA
  8. Rotate(A + (sin(45°) / sin(22.5°) * (B - A)), 112.5°, A) → ABAB
  9. Intersect(Line[A, Rotate[B, 45°, A]], Line[B, Rotate[A, -45°, B]]) → ABH
  10. Intersect(Line[A, Rotate[B, 67.5°, A]], Line[B, Rotate[A, -67.5°, B]]) → ABHR
  11. Rotate(B, 90°, A) → BA
  12. Rotate(B, 135°, A) → BAR
  13. Intersect(OrthogonalLine[B, Line[A, B]], OrthogonalLine[BBA, Line[BBA, A]]) → BBAB
  14. Segment(A, ABT) → t9pijl1
  15. Segment(A, B) → t9pijl2
  16. Segment(A, ABR) → t9pijl3
  17. Segment(A, BBAB) → t3pijl1
  18. Segment(B, BBAB) → t3pijl2
  19. Segment(BBA, BBAB) → t3pijl3
  20. Segment(BBA, A) → t3vet1
  21. Segment(A, B) → t3vet2
  22. Intersect(Line[C, Rotate[DB, 45°, Line[C, C + (0, 0, 1)]]], Line[E, Rotate[DB, -45°, Line[E, E + (0, 0, 1)]]]) → CESB
  23. Intersect(Line[C, Rotate[DB, 22.5°, Line[C, C + (0, 0, 1)]]], Line[E, Rotate[DB, -22.5°, Line[E, E + (0, 0, 1)]]]) → CELB
  24. Intersect(Line[C, Rotate[DB, 90°, Line[C, C + (0, 0, 1)]]], Line[E, Rotate[DB, -90°, Line[E, E + (0, 0, 1)]]]) → CEA
  25. Polygon(A, B, ABT, ABR) → SmBiped9, smb92, smb91, smb94, smb93
  26. Dilate(A, 0.75, Centroid[SmBiped9]) → A'
  27. Dilate(B, 0.75, Centroid[SmBiped9]) → B'
  28. Dilate(ABT, 0.75, Centroid[SmBiped9]) → ABT'
  29. Dilate(ABR, 0.75, Centroid[SmBiped9]) → ABR'
  30. Polygon(A, B, BARB, BBA) → Almond3, alm31, alm32, alm33, alm34
  31. Polygon(A', B', ABT', ABR') → SmBiped9', a', b', abt', abr'
  32. Dilate(A, 0.75, Centroid[Almond3]) → A'_1
  33. Dilate(B, 0.75, Centroid[Almond3]) → B'_1
  34. Dilate(BBAB, 0.75, Centroid[Almond3]) → BBAB'
  35. Dilate(BBA, 0.75, Centroid[Almond3]) → BBA'
  36. Polygon(A'_1, B'_1, BBAB', BBA') → Almond3', a'_1, b'_1, bbab', bba'
  37. Polygon(D, E, EE, DD) → achter1, d, e, ee, dd
  38. Polygon(C, CC, DD, D) → achter2, c, cc, f, d_1
  39. Polygon(EE, ECA, DD) → EAlmond3boven1, g, i, eca
  40. Polygon(CC, ECA, DD) → EAlmond3boven2, j, k, l
  41. Rotate(A + (sin(22.5°) / sin(112.5°) * (B - A)), 45°, A) → ABL
  42. Polygon(A, B, AB, BA) → Square1, sq11, sq13, sq12, sq14
  43. Dilate(A, 0.75, Centroid[Square1]) → A'_2
  44. Dilate(B, 0.75, Centroid[Square1]) → B'_2
  45. Dilate(AB, 0.75, Centroid[Square1]) → AB'
  46. Dilate(BA, 0.75, Centroid[Square1]) → BA'
  47. Polygon(A'_2, B'_2, AB', BA') → Square1', a'_2, b'_2, ab', ba'
  48. Rotate(A, -45°, B) → ABRH
  49. Polygon(A, B, ABRH, BAR) → Rhombus2, rh21, rh23, rh22, rh24
  50. Dilate(A, 0.75, Centroid[Rhombus2]) → A'_3
  51. Dilate(B, 0.75, Centroid[Rhombus2]) → B'_3
  52. Dilate(ABRH, 0.75, Centroid[Rhombus2]) → ABRH'
  53. Dilate(BAR, 0.75, Centroid[Rhombus2]) → BAR'
  54. Polygon(A'_3, B'_3, ABRH', BAR') → Rhombus2', a'_3, b'_3, abrh', bar'
  55. Rotate(A + (sin(67.5°) / sin(45°) * (B - A)), 67.5°, A) → BAJ
  56. Polygon(A, B, BAJ, BBA) → Jug4, jug41, jug42, jug43, jug44
  57. Dilate(A, 0.75, Centroid[Jug4]) → A'_4
  58. Dilate(B, 0.75, Centroid[Jug4]) → B'_4
  59. Dilate(BAJ, 0.75, Centroid[Jug4]) → BAJ'
  60. Dilate(BBA, 0.75, Centroid[Jug4]) → BBA'_1
  61. Polygon(A'_4, B'_4, BAJ', BBA'_1) → Jug4', a'_4, b'_4, baj', bba'_1
  62. Polygon(A, B, ABH) → HSquare5, hsq52, hsq51, hsq53
  63. Dilate(A, 0.75, Centroid[HSquare5]) → A'_5
  64. Dilate(B, 0.75, Centroid[HSquare5]) → B'_5
  65. Dilate(ABH, 0.75, Centroid[HSquare5]) → ABH'
  66. Polygon(A'_5, B'_5, ABH') → HSquare5', abh', a'_5, b'_5
  67. Polygon(A, B, ABHR) → HRhombus6, hrh62, hrh61, hrh63
  68. Dilate(A, 0.75, Centroid[HRhombus6]) → A'_6
  69. Dilate(B, 0.75, Centroid[HRhombus6]) → B'_6
  70. Dilate(ABHR, 0.75, Centroid[HRhombus6]) → ABHR'
  71. Polygon(A'_6, B'_6, ABHR') → HRhombus6', abhr', a'_6, b'_6
  72. Polygon(A, B, ABL, BA) → LBiped10, lb101, lb103, lb102, lb104
  73. Dilate(A, 0.75, Centroid[LBiped10]) → A'_7
  74. Dilate(B, 0.75, Centroid[LBiped10]) → B'_7
  75. Dilate(ABL, 0.75, Centroid[LBiped10]) → ABL'
  76. Dilate(BA, 0.75, Centroid[LBiped10]) → BA'_1
  77. Polygon(A'_7, B'_7, ABL', BA'_1) → LBiped10', a'_7, b'_7, abl', ba'_1
  78. Polygon(A, B, BA) → HSquare11, hsq113, hsq111, hsq112
  79. Dilate(A, 0.75, Centroid[HSquare11]) → A'_8
  80. Dilate(B, 0.75, Centroid[HSquare11]) → B'_8
  81. Dilate(BA, 0.75, Centroid[HSquare11]) → BA'_2
  82. Polygon(A'_8, B'_8, BA'_2) → HSquare11', ba'_2, a'_8, b'_8
  83. Polygon(A, B, ABR) → HRhombus12, hrh121, hrh123, hrh122
  84. Dilate(A, 0.75, Centroid[HRhombus12]) → A'_9
  85. Dilate(B, 0.75, Centroid[HRhombus12]) → B'_9
  86. Dilate(ABR, 0.75, Centroid[HRhombus12]) → ABR'_1
  87. Polygon(A'_9, B'_9, ABR'_1) → HRhombus12', abr'_1, a'_9, b'_9
  88. Polygon(ABA, A, B, ABAB) → SmBiped13, smb132, smb131, smb134, smb133
  89. Dilate(ABA, 0.75, Centroid[SmBiped13]) → ABA'
  90. Dilate(A, 0.75, Centroid[SmBiped13]) → A'_{10}
  91. Dilate(B, 0.75, Centroid[SmBiped13]) → B'_{10}
  92. Dilate(ABAB, 0.75, Centroid[SmBiped13]) → ABAB'
  93. Polygon(ABA', A'_{10}, B'_{10}, ABAB') → SmBiped13', aba', a'_{10}, b'_{10}, abab'
  94. Polygon(A, B, BARB, ABR) → Almond14, m, n, p, q
  95. Dilate(A, 0.75, Centroid[Almond14]) → A'_{11}
  96. Dilate(B, 0.75, Centroid[Almond14]) → B'_{11}
  97. Dilate(BARB, 0.75, Centroid[Almond14]) → BARB'
  98. Dilate(BAR, 0.75, Centroid[Almond14]) → BAR'_1
  99. Segment(A, AB) → sq1pijl1
  100. Segment(B, AB) → sq1pijl2
  101. Segment(A, B) → sqvet1
  102. Segment(A, BA) → sqvet2
  103. Segment(BA, AB) → sq1pijl3
  104. Segment(A, B) → sq7pijl3
  105. Segment(A, BA) → sq7pijl2
  106. Segment(A, ABRH) → rh2pijl1
  107. Segment(B, ABRH) → rh2pijl2
  108. Segment(BAR, ABRH) → rh2pijl3
  109. Segment(A, B) → rh2vet1
  110. Segment(A, BAR) → rh2vet2
  111. Segment(A, B) → rh8pijl2
  112. Segment(A, BAR) → rh8pijl3
  113. Segment(A, BARB) → alm3pijl1
  114. Segment(B, BARB) → alm3pijl2
  115. Segment(BBA, BARB) → alm3pijl3
  116. Segment(A, B) → alm3vet1
  117. Segment(A, BBA) → alm3vet2
  118. Segment(A, BAJ) → jug4pijl1
  119. Segment(B, BAJ) → jug4pijl2
  120. Segment(BBA, BAJ) → jug4pijl3
  121. Segment(A, B) → jug4vet1
  122. Segment(A, BBA) → jug4vet2
  123. Segment(Midpoint[A, B], ABH) → hsq5pijl1
  124. Segment(A, ABH) → hsq5pijl2
  125. Segment(B, ABH) → hsq5pijl3
  126. Segment(A, B) → hsq5vet1
  127. Segment(Midpoint[A, B], ABHR) → hrh6pijl1
  128. Segment(A, ABHR) → hrh6pijl2
  129. Segment(B, ABHR) → hrh6pijl3
  130. Segment(A, B) → hrh6vet1
  131. Segment(A, ABT) → smb9pijl1
  132. Segment(A, B) → smb9pijl2
  133. Segment(A, ABR) → smb9pijl3
  134. Segment(A, ABL) → lb10pijl1
  135. Segment(A, B) → lb10pijl2
  136. Segment(A, BA) → lb10pijl3
  137. Segment(A, Midpoint[BA, B]) → hsq11pijl1
  138. Segment(A, B) → hsq11pijl2
  139. Segment(A, BA) → hsq11pijl3
  140. Segment(A, Midpoint[ABR, B]) → hrh12pijl1
  141. Segment(A, ABR) → hrh12pijl2
  142. Segment(A, B) → hrh12pijl3
  143. Segment(A, ABAB) → smb13pijl1
  144. Segment(B, ABAB) → smb13pijl2
  145. Segment(ABA, ABAB) → smb13pijl3
  146. Segment(A, B) → smb13vet1
  147. Segment(A, ABA) → smb13vet2
  148. Segment(A, BARB) → alm14pijl1
  149. Polygon(EE, EC, DD) → ESquare1boven1, i_1, j_1, ec
  150. Polygon(CC, EC, DD) → ESquare1boven2, k_1, l_1, m_1
  151. Intersect(Line[C, Line[DB, E]], Line[E, Line[DB, C]]) → CE
  152. Polygon(DO, E, CE) → ESquare7boven1, r, s, t
  153. Polygon(DO, CE, C) → ESquare7boven2, a, b, f_1
  154. Polygon(EE, ECJ, DD) → EJug4boven1, q_1, r_1, ecj
  155. Polygon(CC, ECJ, DD) → EJug4boven2, s_1, t_1, f_2
  156. Polygon(CC, DD, CDHS) → EHSquare5boven, cdhs, g_2, h_2
  157. Polygon(CC, DD, CDHR) → EHRhombus6boven, cdhr, i_2, j_2
  158. Polygon(DO, E, CESB) → ESmBiped9boven1, g_1, h_1, n_1
  159. Polygon(DO, CESB, C) → ESmBiped9boven2, p_1, a_1, b_1
  160. Polygon(DO, E, CELB) → ELBiped10boven1, c_1, e_1, k_2
  161. Polygon(DO, CELB, C) → ELBiped10boven2, l_2, m_2, n_2
  162. Polygon(C, DO, E) → EHSquare11boven11, p_2, q_2, r_2
  163. Polygon(EE, ECSB, DD) → ESmbiped13boven1, s_2, t_2, ecsb
  164. Polygon(DD, ECSB, CC) → ESmbiped13boven2, d_2, f_3, g_3
  165. Polygon(DO, E, CEA) → EAlmond14onder1, a_2, b_2, c_2
  166. Polygon(DO, CEA, C) → EAlmond14onder2, e_2, h_3, i_3
  167. Dilate(A, 0.75, Centroid[Almond14]) → A'_{12}
  168. Dilate(B, 0.75, Centroid[Almond14]) → B'_{12}
  169. Dilate(BARB, 0.75, Centroid[Almond14]) → BARB'_1
  170. Dilate(ABR, 0.75, Centroid[Almond14]) → ABR'_2
  171. Polygon(A'_{12}, B'_{12}, BARB'_1, ABR'_2) → Almond14', a'_{12}, b'_{12}, barb'_1, abr'_2
  172. Segment(A, B) → alm14pijl2
  173. Segment(A, ABR) → alm14pijl3
  174. Point(xAxis) → F
  175. Point(xAxis) → G
  176. HSquare5(F, G) → H, driehoek1, driehoek2, j_3, k_3, l_3, m_3
  177. HSquare5(G, I) → J, driehoek3, driehoek4, n_3, p_3, q_3, r_3
  178. Point(xAxis) → K
  179. HSquare5(K, F) → L, driehoek5, driehoek6, s_3, t_3, a_3, b_3
  180. TSquare1(F, H) → M, N, vierhoek1, vierhoek2, c_3, d_3, e_3, f_4, g_4
  181. TSquare1(G, J) → O, P, vierhoek3, vierhoek4, h_4, i_4, j_4, k_4, l_4
  182. TSquare1(H, O) → Q, R, vierhoek5, vierhoek6, m_4, n_4, p_4, q_4, r_4
  183. HSquare5(K, F) → S, driehoek7, driehoek8, s_4, t_4, a_4, b_4
  184. EHSquare5(K, F) → T, U, V, vierhoek7, driehoek9
  185. EHSquare5(F, G) → W, Z, A_1, vierhoek8, driehoek10
  186. EHSquare5(G, I) → C_1, D_1, E_1, vierhoek9, driehoek11
  187. Polygon(E_1, C_1, F_1) → driehoek12, c_4, d_4, e_4
  188. Polygon(F_1, C_1, A_1) → driehoek13, f_5, g_5, h_5
  189. Polygon(A_1, W, B_1) → driehoek14, i_5, j_5, w
  190. Polygon(B_1, W, V) → driehoek15, v_1, k_5, w_1
  191. ESquare1(V, B_1, A_1) → G_1, H_1, I_1, vierhoek10, vierhoek11, driehoek16, driehoek17
  192. ESquare1(A_1, F_1, E_1) → J_1, K_1, L_1, vierhoek12, vierhoek13, driehoek18, driehoek19
  193. Polygon(L_1, J_1, M_1) → driehoek20, l_5, m_5, n_5
  194. Polygon(M_1, J_1, I_1) → driehoek21, p_5, q_5, r_5
  195. ESquare1(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.