Saturday, May 13, 2017

Scope, Even Odd Rule, dan Clip: Kembang Tujuh "Rupa" Lingkaran

Mukadimah

Ini tulisan kedua tentang penggunaan lingkup perintah scope dengan opsi even odd rule dan perintah clip, setelah tulisan ini. Kali ini kita akan mengambil contoh yang lebih "rumit" seperti tampak pada Gambar 2 di samping ini.
Dengan menggunakan paket TikZ, kita akan menggambar tujuh lingkaran dan mewarnai bagian-bagian daerah di antaranya. Pewarnaan dibuat oleh paket xcolor dalam opsi x11names, sedangkan halaman diwarnai oleh warna paper dalam porsi 30%.
\definecolor{paper}{RGB}{239,227,157}



Lukisan


Perhatikan Gambar 1 dan Gambar 2 dalam dokumen terlampir. Kita harus membagi bidang Kartesius menjadi $6$ bagian dengan besar sudut pusat masing-masing senilai $60^\circ$. Oleh karena itu, dalam koordinat kutub, dapat kita tetapkan titik-titik $O$, $A$, $B$, $C$, $D$, $E$, dan $F$ sebagai berikut, dengan panjang jari-jari senilai $3\,\textrm{cm}$.
\coordinate (O) at (0:0);
\coordinate (A) at (0:3);
\coordinate (B) at (60:3);
\coordinate (C) at (120:3);
\coordinate (D) at (180:3);
\coordinate (E) at (240:3);
\coordinate (F) at (300:3);
Sekarang dengan berpusat pada ketujuh titik tersebut kita buat lingkaran dengan panjang jari-jari senilai $3\,\textrm{cm}$. Agar penggkodeannya lebih ringkas, kita gunakan perintah foreach sebagai berikut.
\foreach \t in {O,A,B,C,D,E,F}
\draw[thick,paper!30] (\t) circle (3);
Hasilnya tampak pada Gambar 3 dalam dokumen terlampir.

Berikutnya kita akan mewarnai daerah-daerah di antara ketujuh lingkaran itu. Pengkodean-pengkodean berikut ini secara berurutan diletakkan sebelum perintah foreach tadi.
Mula-mula akan kita warnai bagian daerah dari keenam lingkaran pada bagian terluar. Untuk hal itu kita akan bekerja di dalam lingkup perintah scope dengan opsi even odd rule.
\begin{scope}[even odd rule]
...
\end{scope}
Pada bagian ini kita cakup dulu daerah keenam lingkaran itu oleh
\path[clip] (A) circle (3) (B) circle (3) (C) circle (3) (D) circle (3) 
(E) circle (3) (F) circle (3);
Agar pewarnaan yang terjadi hanya untuk daerah dari keenam lingkaran pada bagian terluar maka kita nyatakan
\fill[PineGreen] (O) circle (3) (A) circle (3) (B) circle (3) 
(C) circle (3) (D) circle (3) (E) circle (3) (F) circle (3);
Dengan demikian, pengkodean selengkapnya untuk pewarnaan dalam lingkup perintah scope itu adalah sebagai berikut.
\begin{scope}[even odd rule]
%cakupan terhadap 6 lingkaran
\path[clip] (A) circle (3) (B) circle (3) (C) circle (3) (D) circle (3) 
(E) circle (3) (F) circle (3);
%mengisi warna pada bagian terluar dari daerah 6 lingkaran
\fill[PineGreen] (O) circle (3) (A) circle (3) (B) circle (3) 
(C) circle (3) (D) circle (3) (E) circle (3) (F) circle (3);
\end{scope}
Hasilnya tampak pada Gambar 4 dalam dokumen terlampir. 

Selanjutnya kita akan mewarnai bagian daerah lingkaran pusat/tengah dan daerah-daerah kecil yang diapit oleh dua busur dari enam lingkaran lainnya. Untuk hal itu kita kembali bekerja dalam lingkup perintah scope dengan opsi even odd rule.
Lebih dulu kita cakup lingkaran pusat itu oleh 
\path[clip] (O) circle (3);
Kemudian kita isikan warnanya oleh
\fill[SpringGreen3] (O) circle (3);
diikuti oleh pengisian warna pada 6 daerah kecil yang masing-masing diapit oleh dua busur dari 6 lingkaran. Pada bagian ini (sebagai contoh) kita akan berjalan dari titik $B$ secara bersambungan untuk tiga daerah kemudian dimulai lagi dari titik $A$ secara bersambungan untuk tiga daerah lainnya.
\fill[Dandelion] (B) arc(120:240:3) %pusat A
arc(0:120:3) %pusat E
arc(-120:0:3) %pusat C
(A) arc(60:180:3) %pusat F
arc(-60:60:3) %pusat D
arc(180:300:3) ;%pusat B
Dengan demikian, pengkodean selengkapnya untuk pewarnaan dalam lingkup perintah scope yang kedua itu adalah sebagai berikut.
\begin{scope}[even odd rule]
%cakupan terhadap lingkaran pusat
\path[clip] (O) circle (3);
%mengisi warna pada lingkaran pusat
\fill[SpringGreen3] (O) circle (3); 
%mengisi warna pada 6 daerah yang masing-masing diapit oleh dua busur
\fill[Dandelion] (B) arc(120:240:3) %pusat A
arc(0:120:3) %pusat E
arc(-120:0:3) %pusat C
(A) arc(60:180:3) %pusat F
arc(-60:60:3) %pusat D
arc(180:300:3) ;%pusat B
\end{scope}
Hasilnya tampak pada Gambar 5 dalam dokumen terlampir. 

Terakhir, kita akan mewarnai 6 daerah yang masing-masing diapit oleh tiga busur. Pada contoh ini pewarnaan dilakukan satu persatu untuk tiap daerah itu yang masing-masing bermula dari titik $A$, $B$, $C$, $D$, $E$, dan $F$. Perintah ini diberikan secara langsung, bukan di dalam lingkup perintah scope.
\fill[Gold1] (A) arc(-60:0:3) arc(60:120:3) arc(60:0:3)
(B) arc(0:60:3) arc(120:180:3) arc(120:60:3) 
(C) arc(60:120:3) arc(180:240:3) arc(180:120:3) 
(D) arc(120:180:3) arc(240:300:3) arc(240:180:3) 
(E) arc(180:240:3) arc(-60:0:3) arc(300:240:3) 
(F) arc(240:300:3) arc(0:60:3) arc(0:-60:3);


Penutup

Sekali lagi kita cermati bahwa lingkup perintah scope beserta opsi even odd rule menentukan pewarnaan daerah secara efektif sebagaimana mestinya. Dalam hal lainnya, penetapan path tertutup untuk suatu daerah yang diapit oleh beberapa busur meminta kita untuk teliti dan cermat dalam pengacuan terhadap titik pusat lingkaran dan sudut-sudut yang bekerja untuknya. 
Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2017

Wednesday, May 10, 2017

Scope, Even Odd Rule, dan Clip: Bermain Busur dan Warna

Mukadimah

Ini adalah tulisan pertama tentang penggunaan lingkup perintah scope dengan opsi even odd rule dan perintah clip
Perhatikan Gambar 1 (kiri). Kita akan menggambar bangun tersebut. Tampak bahwa bagian "rumit"-nya adalah kita harus mewarnai wilayah empat "daun" yang masing-masing diapit oleh dua busur, sedangkan lingkaran luarnya berisi warna yang berbeda.
Untuk menggambarnya akan kita gunakan paket TikZ, sedangkan pewarnaan oleh paket xcolor dan dgunakan tiga warna baru: bistre, paper, dan CincinnatiRed yang ditetapkan oleh
\definecolor{bistre}{RGB}{61, 43, 31}
\definecolor{paper}{RGB}{239,227,157}
\definecolor{CincinnatiRed}{RGB}{224,1,34}

Lukisan

Perhatikan Gambar 1 dalam dokumen terlampir. Pertama, tentu kita buat dulu lingkarannya. Dalam hal ini (sebagai contoh) kita gunakan jari-jari sepanjang $2\,\textrm{cm}$. Sekarang kita bersiap untuk menggambar busur. Karena lukisan busur memerlukan titik pusat acuan, besar sudut awal, besar sudut akhir, dan jari-jari
(koordinat awal)  arc(sudut awal:sudut akhir:jari-jari)
maka kita perlu melakukan perhitungan sebelum menggambarnya. 
Perhatikan Gambar 2. Kita membagi bidang Kartesius menjadi $8$ bagian dengan besar sudut pusat masing-masing senilai $45^\circ$. Oleh karena itu, dalam koordinat kutub, dapat kita tetapkan titik-titik $O$, $A$, $B$, $C$, $D$, $E$, $F$, $G$, dan $H$ sebagai berikut.
\coordinate (O) at (0:0);
\coordinate (A) at (0:2);
\coordinate (B) at (45:2);
\coordinate (C) at (90:2);
\coordinate (D) at (135:2);
\coordinate (E) at (180:2);
\coordinate (F) at (225:2);
\coordinate (G) at (270:2);
\coordinate (H) at (315:2);
Pada Gambar 2, perhatikan persegi $OPBQ$ dan $\triangle BOP$ siku-siku di $P$. Misalkan $OP=BP=a$ cm, maka
\begin{align*}
OP^2+PB^2 &= OB^2\\
a^2+a^2 &= 2^2\\
2a^2 &= 4\\
a^2 &= 2\\
a &= \sqrt{2}
\end{align*}
sehingga busur yang kita buat ditetapkan berdasarkan jari-jari senilai $\sqrt{2}\,\textrm{cm}$.
Sekarang perhatikan Gambar 2 dan Gambar 3. Busur pertama, yaitu busur setengah lingkaran, akan kita buat berawal dari titik $B$ dengan titik pusat di $P$. Kita nyatakan
\draw[thick,bistre] (B) arc(90:270:{sqrt(2)})  ;%pusat P
Hasilnya tampak sebagai busur bernomor 1.
Busur kedua kita buat berawal dari titik $H$ dengan titik pusat di $S$. Kita nyatakan
\draw[thick,bistre] (H) arc(0:180:{sqrt(2)}) ;%pusat S
Hasilnya tampak sebagai busur bernomor 2.
Busur ketiga kita buat berawal dari titik $F$ dengan titik pusat di $R$. Kita nyatakan
\draw[thick,bistre] (F) arc(-90:90:{sqrt(2)}) ;%pusat R
Hasilnya tampak sebagai busur bernomor 3.
Busur keempat kita buat berawal dari titik $D$ dengan titik pusat di $Q$. Kita nyatakan
\draw[thick,bistre] (D) arc(-180:0:{sqrt(2)}) ;%pusat Q
Hasilnya tampak sebagai busur bernomor 4.
Meskipun demikian, cara yang praktis adalah menetapkan lukisan keempat busur tersebut secara sekaligus. Hal itu ditetapkan oleh  
\draw[thick,bistre] (B) arc(90:270:{sqrt(2)}) arc(0:180:{sqrt(2)}) arc(-90:90:{sqrt(2)}) arc(-180:0:{sqrt(2)});

Lingkup Perintah Scope, Opsi Even Odd Rule, dan Perintah Clip

Sekarang kita bersiap untuk mengisikan warna berbeda pada daerah lingkaran dan daerah yang diapit oleh dua busur. Agar pewarnaan ini tidak saling menimpa atau saling menutupi, kita memerlukan lingkup perintah scope dengan opsi even odd rule.
\begin{scope}[even odd rule]
...
\end{scope}
Pertama, cakup dulu daerah lingkaran (karena daerah-dua busur terletak di dalamnya) oleh
\path[clip] (0,0) circle (2);
kemudian isi daerah lingkaran itu oleh warna paper
\fill[paper] (0,0) circle (2);
Sekarang kita dapat melakukan pengisian warna pada keempat daerah yang masing-masing diapit oleh dua busur itu dengan menggunakan warna CincinnatiRed.
\fill[CincinnatiRed] (B) arc(90:270:{sqrt(2)}) arc(0:180:{sqrt(2)}) arc(-90:90:{sqrt(2)}) arc(-180:0:{sqrt(2)});
Dengan demikian, pengkodean selengkapnya untuk pewarnaan dalam lingkup perintah scope itu adalah sebagai berikut.
\begin{scope}[even odd rule]
\path[clip] (0,0) circle (2);
\fill[paper] (0,0) circle (2);
\fill[CincinnatiRed] (B) arc(90:270:{sqrt(2)}) arc(0:180:{sqrt(2)}) arc(-90:90:{sqrt(2)}) arc(-180:0:{sqrt(2)});
\end{scope}
Terakhir, kita lukis garis putus-putus dalam warna paper yang menghubungkan dua "ujung daun" secara sepasang-sepasang oleh
\draw[dashed,paper] (B)--(F) (D)--(H);
kemudian melukis garis putus-putus untuk persegi itu oleh
\draw[dashed] (B)--(D)--(F)--(H)--cycle;
dan melukis lingkarannya oleh
\draw[thick,bistre] (O) circle (2);
Hasilnya tampak pada Gambar 4 atau Gambar 1.


Penutup

Lingkup perintah scope beserta opsi even odd rule berguna sebagai pilihan ketika kita bermaksud untuk mengisi suatu daerah (oleh warna atau arsiran) yang tercakup di dalam daerah dari suatu path atau bangun lainnya. Dalam hal itu, daerah "utama" harus kita cakup lebih dulu oleh perintah clip. (Dapatkah Anda membuat Gambar 2 seperti tampak pada awal tulisan ini?)
Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2017

Related Posts Plugin for WordPress, Blogger...