Menggambar Bunga Poppy Artistik Menggunakan Paket TikZ di LaTeX

Artikel ini mengulas teknik pembuatan ilustrasi vektor bunga Poppy artistik menggunakan paket TikZ di LaTeX, meliputi penggunaan kurva Bézier, gradasi warna, transparansi (fadings), dan pemotongan area (clipping).
Pendahuluan
Paket TikZ di LaTeX tidak hanya andal dalam membuat diagram ilmiah, grafik fungsi, atau skema matematika yang kaku. Lebih dari itu, TikZ adalah medium seni digital yang fleksibel untuk menggambar ilustrasi botani yang indah dan artistik.
Salah satu contoh karya yang sangat elegan adalah ilustrasi bunga Poppy (Papaver rhoeas) buatan Elena Botoeva. Melalui kombinasi kurva Bézier yang melengkung secara alami, skema warna yang kaya, serta efek pencahayaan bertingkat memanfaatkan fitur fadings dan clipping, Elena berhasil menciptakan gambar bunga yang tampak hidup dan dinamis hanya dengan baris kode LaTeX.
Kode Sumber LaTeX
Berikut adalah kode lengkap untuk menggambar tiga variasi bunga poppy (versi shading penuh, versi warna solid, dan versi hitam-putih):
% Poppy flower
% Author: Elena Botoeva
\documentclass{article}
\usepackage[margin=0.3cm, paperwidth=9.5cm, paperheight=9.5cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{fadings}
% Definisi Palet Warna Bunga Poppy
\definecolor{darkgreen}{rgb}{0.2,0.6,0.2}
\definecolor{poppyred}{rgb}{0.89,0.08,0.3}
\definecolor{poppyredd}{rgb}{0.78,0.0,0.09}
\definecolor{poppyreddd}{rgb}{0.63,0.0,0.0}
% Definisi Bentuk Kelopak Bunga (Bézier Curves)
\def\petala{
[rounded corners=3] (0,0)
.. controls (-0.25,-0.5) and (-1.25,0.3) .. (-1.6,0)
.. controls (-1.6,0.75) and (-1.25,0.65) .. (-1.1,1)
.. controls (-1.05,0.65) and (-0.05,0.7) .. (0,0)
}
\def\petalb{
[rounded corners=3] (0,0)
.. controls (-0.55,-0.2) and (-1.25,0.7) .. (-1.5,0.6)
.. controls (-1.4,1.1) and (-1.15,0.9) .. (-0.75,1.4)
.. controls (-0.5,1.5) and (-0.05,1.45) .. (0.05,1.3)
.. controls (-0.15,1.1) and (0.25,0.05) .. (0,0)
}
\def\petalc{[rotate=-30] \petalb}
\def\petald{[rotate=-90] \petala}
% Definisi Bentuk Tangkai (Petioles)
\def\petiolea{
[rounded corners=2] (0.25,-7)
.. controls (0.7,-5.5) and (0.3,-3) .. (0.25,-2)
.. controls (0.2,-1.5) and (0.33,-0.4) .. (0,0)
.. controls (0.34,-0.4) and (0.21,-1.5) .. (0.27,-2)
.. controls (0.4,-3) and (0.82,-5.5) .. (0.42,-7)
}
\def\petioleb{
[rounded corners=2] (0.1,-7)
.. controls (0.3,-3) and (-0.85,-1.05) .. (-2.3,-1)
arc (270:230:0.2)
.. controls (-2.7,-1) and (-3.05,-1.05) .. (-3.35,-1.3)
.. controls (-3.35,-1.5) and (-3.45,-1.75) .. (-3.65,-1.75)
.. controls (-3.7,-1.25) and (-3.4,-1.35) .. (-3.4,-1.25)
.. controls (-3.05,-0.95) and (-2.7,-0.9) .. (-2.4,-0.85)
.. controls (-1.1,-0.75) and (0.4,-2.45) .. (0.2,-7)
}
\def\petiolec{
[rounded corners=2] (-0.3,-7)
.. controls (-0.9,-3.5) and (-1.5,-2.7) .. (-2,-2.5)
.. controls (-2.5,-2.3) and (-3.2,-2.35) .. (-3.47,-3.5)
.. controls (-3.68,-3.85) and (-3.75,-4.2) .. (-3.9,-4.15)
.. controls (-4.0,-3.9) and (-3.8,-3.8) .. (-3.7,-3.8)
.. controls (-3.65,-3.75) and (-3.6,-3.7) .. (-3.5,-3.47)
.. controls (-3.2,-2.3) and (-2.5,-2.25) .. (-2,-2.45)
.. controls (-1.48,-2.65) and (-0.86,-3.5) .. (-0.26,-7)
}
% Konfigurasi Transparansi (Fadings)
\tikzfading[name=fade inside, inner color=transparent!100, outer color=transparent!30]
\tikzfading[name=fade out, inner color=transparent!0, outer color=transparent!100]
% Struktur Bunga Lengkap dengan Efek Bayangan Overlapping
\def\flower{
% 1. Menggambar Setiap Kelopak Secara Independen
\foreach \a in {\petala,\petalb,\petalc,\petald} {
\filldraw[draw=none,color=poppyred,opacity=0.8]
[postaction={path fading=south,fading angle=30,fill=poppyreddd,opacity=.2}] \a;
}
% 2. Menggabungkan Seluruh Kelopak
\draw[draw=none,rounded corners=3]
[postaction={path fading=north,fading angle=30,fill=poppyreddd,opacity=.7}]
\petala \petalb \petalc [rotate=30] \petald;
% 3. Menegaskan Area Tumpang Tindih Antara 2 Kelopak (Clipping)
\begin{scope}
\foreach \a/\b in {\petala/\petalb,\petalb/\petalc,\petalc/\petald} {
\begin{scope}
\clip \a;
\draw [draw=none]
[postaction={path fading=fade inside,fill=poppyredd,opacity=.7}] \b;
\end{scope}
}
\end{scope}
% 4. Menegaskan Area Tumpang Tindih Antara 3 Kelopak
\begin{scope}
\foreach \a/\b/\c in {\petala/\petalb/\petalc,\petalb/\petalc/\petald} {
\begin{scope}
\clip \a;
\clip \b;
\draw [draw=none]
[postaction={path fading=fade out,fill=poppyreddd,opacity=.4}] \c;
\end{scope}
}
\end{scope}
}
\def\petioles[#1]{
\foreach \a in {\petiolea,\petioleb,\petiolec} {
\draw[fill,color=#1] \a;
}
}
% Perintah Bunga Poppy Shading Lengkap
\def\poppy[#1,#2]{
\begin{scope}[shift={#1},scale=#2]
\flower;
\petioles[darkgreen]
\end{scope}
}
% Perintah Bunga Poppy Warna Solid
\def\poppyu[#1,#2]{
\begin{scope}[shift={#1},scale=#2]
\foreach \a in {\petala,\petalb,\petalc,\petald} {
\filldraw[draw=none,color=poppyred,opacity=0.8] \a;
}
\petioles[darkgreen]
\end{scope}
}
% Perintah Bunga Poppy Hitam-Putih
\def\poppybw[#1,#2]{
\begin{scope}[shift={#1},scale=#2]
\foreach \a in {\petala,\petalb,\petalc,\petald} {
\filldraw[draw=none,color=gray!80,opacity=1] \a;
}
\petioles[gray!80]
\end{scope}
}
\begin{document}
\thispagestyle{empty}
\begin{center}
\tikz\poppy[{(0cm,0cm)},1];
\tikz\poppyu[{(4cm,0cm)},1];
\tikz\poppybw[{(7cm,0cm)},0.8];
\end{center}
\end{document}Hasil Kompilasi
Keluaran visual yang dihasilkan menampilkan tiga variasi bunga poppy yang sangat elegan:

Penjelasan Struktur Kode Terperinci
1. Kurva Bézier Halus (.. controls ..)
Bentuk organis kelopak bunga dan tangkai tidak digambar menggunakan garis lurus sederhana, melainkan kurva Bézier kubik:
(0,0) .. controls (x1,y1) and (x2,y2) .. (x3,y3)Titik kontrol dan menarik garis secara lembut sehingga membentuk lekukan mahkota bunga dan tangkai yang meliuk alami.
2. Pustaka Transparansi (fadings)
Pustaka fadings digunakan untuk memberikan efek transisi warna dari pekat ke transparan secara bertahap:
\tikzfading[name=fade inside, inner color=transparent!100, outer color=transparent!30]Efek ini dipadukan dengan opsi postaction={path fading=...} untuk menciptakan ilusi pencahayaan jatuh pada lipatan kelopak.
3. Teknik Clipping Multi-Lapisan
Bagian paling canggih dari kode karya Elena Botoeva adalah teknik clipping untuk membuat bayangan persilangan kelopak (overlapping shadows):
\begin{scope}
\clip \a;
\draw [draw=none] [postaction={...}] \b;
\end{scope}- Perintah
\clip \a;membatasi area gambar hanya pada area kelopak pertama (\petala). - Perintah
\draw ... \b;kemudian menggambar kelopak kedua (\petalb) di dalam area terbatas tersebut. - Hasilnya adalah warna shading gelap yang hanya muncul di area perpotongan antara dua atau tiga kelopak, memberikan efek kedalaman 3 dimensi yang sangat nyata.
Eksperimen Variasi TikZ
Anda dapat melakukan berbagai variasi menarik:
- Mengubah Warna Bunga:
Ganti palet warna
poppyreduntuk membuat bunga mawar (rgb{0.9,0.1,0.1}), bunga lavender (rgb{0.6,0.3,0.8}), atau bunga matahari kuning (rgb{0.95,0.75,0.1}). - Menyesuaikan Skala dan Rotasi:
Gunakan perintah
\poppy[{(x,y)}, skala]dengan berbagai nilai untuk membuat buket bunga poppy dengan berbagai ukuran dan posisi.
Kesimpulan
Kode LaTeX TikZ karya Elena Botoeva ini adalah contoh sempurna bagaimana fitur-fitur tingkat tinggi seperti kurva Bézier, gradasi warna, transparansi bertahap (fadings), dan pemotongan area (clipping) dapat digabungkan untuk menghasilkan karya ilustrasi botani berstandar seni tinggi.
Referensi
- Elena Botoeva, Poppy flower, TeXample.net
- Till Tantau, The TikZ and PGF Manual, v3.1.10, 2024.
Ditulis oleh: Aan Triono
Lisensi: CC BY-SA 4.0




