Menggambar Pola Spiral Poligon Berotasi Berulang (Rotated Polygons) dengan TikZ di LaTeX

Artikel ini membahas cara menggambar pola ilusi optik spiral poligon berotasi bertingkat (nested rotated polygons) menggunakan perulangan dan gradasi warna di LaTeX TikZ.
Pendahuluan
Salah satu efek visual paling memukau dalam geometri fraktal dan seni optik (op-art) adalah pola spiral yang dibentuk oleh segi banyak (poligon) yang saling bersarang secara berulang.
Ketika sebuah poligon diputar sedikit demi sedikit dan diperkecil skalanya secara bertahap menuju pusat, mata kita menangkap ilusi pusaran (vortex) tiga dimensi yang sangat dalam.
Artikel ini mengulas kode LaTeX TikZ karya Dr. rer. nat. Ismael Gutierrez Garcia (yang memperluas konsep segitiga berotasi karya Alain Matthes). Melalui kode ini, kita akan mempelajari bagaimana perulangan sederhana \foreach, perhitungan titik relatif pos=.10, serta gradasi intensitas warna dapat menghasilkan bentuk pola segi-6 (hexagon), segi-5 (pentagon), dan segi-4 (square) yang sangat indah.
Kode Sumber LaTeX
Berikut adalah kode lengkap untuk menggambar tiga variasi pola poligon berotasi:
% Rotated polygons
% Author: Dr. rer. nat. Ismael Gutierrez Garcia
\documentclass{article}
\usepackage[usenames,dvipsnames,pdftex]{xcolor}
\usepackage{tikz}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5pt}%
\usepackage{ifthen}
\begin{document}
% -------------------------------------------------------------
% 1. SEGI-SEMAN BEROTASI (ROTATED HEXAGON - BlueGreen)
% -------------------------------------------------------------
\newcounter{density}
\setcounter{density}{20}
\begin{tikzpicture}
\def\couleur{BlueGreen}
% Penentuan Koordinat Simpul Awal Hexagon
\path[coordinate] (0,0) coordinate(A)
++( 120:6cm) coordinate(B)
++( 60:6cm) coordinate(C)
++( 0:6cm) coordinate(D)
++(-60:6cm) coordinate(E)
++(240:6cm) coordinate(F);
\draw[fill=\couleur!\thedensity] (A) -- (B) -- (C) --(D) -- (E) -- (F)-- cycle;
% Perulangan Rotasi & Skala 40 Langkah
\foreach \x in {1,...,40}{
\pgfmathsetcounter{density}{\thedensity+10}
\setcounter{density}{\thedensity}
\path[coordinate] coordinate(X) at (A){};
\path[coordinate]
(A) -- (B) coordinate[pos=.10](A)
-- (C) coordinate[pos=.10](B)
-- (D) coordinate[pos=.10](C)
-- (E) coordinate[pos=.10](D)
-- (F) coordinate[pos=.10](E)
-- (X) coordinate[pos=.10](F);
\draw[fill=\couleur!\thedensity] (A)--(B)--(C)--(D)--(E)--(F)--cycle;
}
\end{tikzpicture}
% -------------------------------------------------------------
% 2. SEGI-LIMA BEROTASI (ROTATED PENTAGON - LimeGreen)
% -------------------------------------------------------------
\setcounter{density}{20}
\begin{tikzpicture}
\def\couleur{LimeGreen}
\path[coordinate] (0,0) coordinate(A)
++( 144:10cm) coordinate(B)
++( 72:10cm) coordinate(C)
++( 0:10cm) coordinate(D)
++(-72:10cm) coordinate(E);
\draw[fill=\couleur!\thedensity] (A) -- (B) -- (C) --(D) -- (E) -- cycle;
\foreach \x in {1,...,40}{
\pgfmathsetcounter{density}{\thedensity+10}
\setcounter{density}{\thedensity}
\path[coordinate] coordinate(X) at (A){};
\path[coordinate]
(A) -- (B) coordinate[pos=.10](A)
-- (C) coordinate[pos=.10](B)
-- (D) coordinate[pos=.10](C)
-- (E) coordinate[pos=.10](D)
-- (X) coordinate[pos=.10](E);
\draw[fill=\couleur!\thedensity] (A)--(B)--(C)--(D)--(E)--cycle;
}
\end{tikzpicture}
% -------------------------------------------------------------
% 3. PERSEGI BEROTASI (ROTATED SQUARE - OrangeRed)
% -------------------------------------------------------------
\setcounter{density}{20}
\begin{tikzpicture}
\def\couleur{OrangeRed}
\path[coordinate] (0,0) coordinate(A)
++( 90:12cm) coordinate(B)
++( 0:12cm) coordinate(C)
++(-90:12cm) coordinate(D);
\draw[fill=\couleur!\thedensity] (A) -- (B) -- (C) --(D) -- cycle;
\foreach \x in {1,...,40}{
\pgfmathsetcounter{density}{\thedensity+20}
\setcounter{density}{\thedensity}
\path[coordinate] coordinate(X) at (A){};
\path[coordinate]
(A) -- (B) coordinate[pos=.10](A)
-- (C) coordinate[pos=.10](B)
-- (D) coordinate[pos=.10](C)
-- (X) coordinate[pos=.10](D);
\draw[fill=\couleur!\thedensity] (A)--(B)--(C)--(D)--cycle;
}
\end{tikzpicture}
\end{document}Hasil Kompilasi
Keluaran visual yang dihasilkan memperlihatkan tiga bentuk pola poligon dengan kedalaman warna dan rotasi yang sangat anggun:

Analisis Struktur & Logika Kode
1. Pembentukan Poligon Awal dengan Vektor Polar
Koordinat simpul diawali dari titik asal (0,0) lalu dihubungkan menggunakan sistem koordinat polar ++(sudut:jarak):
- Hexagon (Segi-6): Menggunakan interval sudut (
120:6cm,60:6cm,0:6cm,-60:6cm,240:6cm). - Pentagon (Segi-5): Menggunakan interval sudut (
144:10cm,72:10cm,0:10cm,-72:10cm). - Persegi (Segi-4): Menggunakan interval sudut (
90:12cm,0:12cm,-90:12cm).
2. Algoritma Pembaruan Titik Simpul pos=.10
Rahasia rotasi dan penskalaan otomatis terletak pada baris berikut:
\path[coordinate] coordinate(X) at (A){};
\path[coordinate] (A) -- (B) coordinate[pos=.10](A)
-- (C) coordinate[pos=.10](B) ...- Variabel
Xmenyimpan posisi awal simpul sebelum diperbarui. - Opsi
pos=.10mengambil titik yang berada pada jarak sepanjang garis dari ke , lalu menetapkannya sebagai nilai simpul yang baru. - Karena setiap simpul digeser sejauh menuju simpul berikutnya secara siklis, poligon hasil penggabungan simpul baru ini secara otomatis terputar sekaligus menyusut.
3. Gradasi Intensitas Warna (density)
Di setiap iterasi perulangan, nilai density dinaikkan secara bertahap:
\pgfmathsetcounter{density}{\thedensity+10}
\draw[fill=\couleur!\thedensity] (A)--(B)...;- Sintaks
BlueGreen!20mewarnai poligon terluar dengan 20% warna BlueGreen dan 80% putih. - Seiring perulangan berjalan menuju pusat, persentase warna terus bertambah (
30%,40%,50%, …), memberikan efek pencahayaan gradasi kedalaman 3D.
Eksperimen Variasi TikZ
Anda dapat mencoba beberapa modifikasi menarik:
- Mengubah Kecepatan Rotasi (
pos): Ubahpos=.10menjadipos=.05untuk rotasi yang lebih halus dan banyak lapisan, ataupos=.20untuk putaran yang lebih tajam. - Mengubah Jumlah Iterasi:
Ubah
\foreach \x in {1,...,40}menjadi1,...,60untuk pusaran yang terus mengecil sampai ke titik pusat absolut. - Kombinasi Warna Kustom:
Gunakan palet warna lain dari paket
xcolorsepertiRoyalBlue,PurplishRed, atauGoldenrod.
Kesimpulan
Kode TikZ karya Dr. Ismael Gutierrez Garcia ini membuktikan betapa perkasa dan sederhananya algoritma berulang pada TikZ. Hanya dengan menggabungkan sintaks interpolasi posisi pos=.10 dan pengubahan nilai transparansi warna, kita dapat menghasilkan karya ilustrasi geometri fraktal yang sangat menawan.
Referensi
- Ismael Gutierrez Garcia, Rotated polygons, TeXample.net
- Alain Matthes, Rotated triangle, TeXample.net
- Till Tantau, The TikZ and PGF Manual, v3.1.10, 2024.
Ditulis oleh: Aan Triono
Lisensi: CC BY-SA 4.0




