Sunday, July 15, 2018

Berhitung Besar Sudut oleh Perintah PgfMath

Anda memiliki tiga koordinat, sebutlah $A$, $O$, dan $B$. Lalu Anda menggambar sudut $\angle AOB$. Bagaimana Anda mengetahui besar sudut $\measuredangle AOB$?
Di luar dokumen, (secara visual) Anda mungkin dengan mudah mengetahuinya, misalnya dengan menggunakan GeoGebra. Lalu, bagaimana Anda dapat mengetahui dan mencetaknya secara langsung di dalam dokumen yang Anda susun? Kali ini penulis mengajak Anda untuk menerapkan perintah \pgfmath.

Untuk menggambar Anda akan menggunakan paket tikz.
\usepackage{tikz}
Kepustakaan angles Anda perlukan untuk menandai sudutnya.
\usetikzlibrary{angles}
Paket pgf/tikz memberikan hasil perhitungan besar sudut dengan ketelitian hingga empat angka desimal. Untuk membulatkannya hingga (misalnya) satu tempat desimal, penulis ajak Anda untuk menggunakan paket siunitx.
\usepackage{siunitx}
Kemudian, untuk penulisan lambang besar sudut, Anda gunakan paket amssymb. Sedangkan untuk jenis huruf teks dan matematis dapat Anda gunakan paket fouriernc.
\usepackage{fouriernc,amssymb}

Sekarang, mengacu kepada contoh pada gambar di atas, tetapkanlah tiga koordinat. Misalnnya, $A(5,0)$, $O(0.5,0.3)$, dan $B(4,3)$. Pada gambar tikz, hubungkan ketiga titik itu oleh
\draw[thick] (A)--(O)--(B);
Untuk mengetahui besar sudut $\measuredangle AOB$ yang terbentuk pada gambar tersebut, Anda tetapkan perintah sebagai berikut.
\pgfmathanglebetweenpoints{
\pgfpointanchor{O}{center}}{\pgfpointanchor{B}{center}
                           }
\edef\besarsudut{\pgfmathresult}
\pgfmathresult adalah perintah untuk mencetak hasil perhitungan besar sudut sebagaimana ditetapkan oleh tiga baris perintah di atasnya. Agar sesuai dengan bahasa kita, Anda namai itu sebagai \besarsudut. Anda dapat melihat nilai besar sudut tersebut, misalnya pada koordinat $(2,-1)$, oleh perintah
\node  at (2,-1) {$\measuredangle AOB=\besarsudut^\circ$};
dan Anda akan melihat hasil cetaknya sebagai $\measuredangle AOB=37.6473^\circ$.

Pada konstruksi gambar, tentu kurang baik bila nilai besar sudut itu dalam empat tempat desimal. Anda perlu membulatkannya (misalnya) hingga satu tempat desimal saja. Berkat paket siunitx, Anda dapat menetapkan pembulatan tersebut oleh 
\num[round-mode=places,round-precision=1]{\pgfmathresult}
Namun, agar sesuai dengan bahasa kita, Anda dapat memerintahkannya sebagai (misalnya) perintah \nilai oleh
\edef\nilai{\num[round-mode=places,round-precision=1]{\pgfmathresult}}
Sekarang Anda akan menggunakan hasil pembulatan itu dalam menandai sudut itu pada gambar. Dalam hal ini Anda gunakan perintah \pic sebagai berikut.
\pic[draw=orange,angle radius=1.2cm,angle eccentricity=.7,
pic text=$\nilai^\circ$,font=\footnotesize] {angle={A--O--B}};
Anda lihat bahwa besar sudut itu adalah $37.6^\circ$, bukan?

Akhirnya, berikut ini pengkodean selengkapnya beserta hasilnya untuk Anda.

Demikian semoga tulisan ini bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2018

Wednesday, July 11, 2018

Mengisi Path Tertutup oleh Gambar

Anda memiliki sebuah foto/gambar. Anda ingin memotongnya (crop) sedemikian sehingga tampak foto/gambar tersebut terletak di dalam suatu lintasan (path) tertutup, seperti tampak pada gambar di samping ini. Bagaimana untuk membuat itu?
Secara teknis hal ini erat kaitannya dengan hal mengarsir. Anda dapat menelusuri blog ini terkait dengan pengarsiran. Silakan ketikkan ``arsir'' pada kotak penelusuran untuk melihat tulisan-tulisan tentang pengarsiran.
Sekarang mari kita hadapi cara untuk membuat gambar seperti tampak di samping ini. Anda harus menyiapkan satu gambar/foto berbentuk *.jpg, *.png, *.pdf, atau *.eps. Untuk contoh ini saya gunakan gambar berbentuk *.jpg yang saya namai sebagai avvy.jpg. Untuk hal ini Anda memerlukan paket tikz dan kepustakaan shapes. juga (bila perlu) paket xcolor.
\usepackage[dvipsnames,x11names]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes}
Teknisnya, kita mulai dari bentuk yang sederhana dulu, Anda membuat suatu path tertutup, misalnya suatu lingkaran. Misalnya,
\draw[thick,gray,double=Cornsilk3] (0,0) circle (1.5) ;
yang berarti Anda menggambar sebuah lingkaran berdiameter $3\,$cm yang kelilingnya berupa garis lengkung berwarna abu-abu dan garis itu ganda dengan tengahnya diwarnai Cornsilk3 (dari opsi x11names dalam paket xcolor). Kemudian, ini dia triknya, Anda tambahkan opsi path untuk gambar/foto Anda sebagai
path picture={...}
dan Anda siapkan suatu node pada tengah-tengah path itu oleh perintah
\node[] at (path picture bounding box.center) {...}
yang diisi oleh gambar/foto Anda dengan perintah dari paket graphicx (sudah termuat di dalam paket tikz), yaitu
\includegraphics[ukuran-gambar]{nama-berkas-gambar}
Perhatikan kode untuk menggambarnya (sebagai contoh) berikut ini.
\begin{tikzpicture}
\draw[thick,gray,double=Cornsilk3,path picture={
\node[] at (path picture bounding box.center) 
           {
           \includegraphics[height=3.3cm]{avvy.jpg}
           };
                                                }
] (0,0) circle (1.5) ;
\end{tikzpicture}
dan lihatlah hasilnya.
Lalu bagaimana cara membuatnya sebagai ``bentuk daun'' seperti pada gambar pertama di atas? Percayakah Anda bahwa gambar dasarnya itu berupa persegi panjang?
Benar, gambar dasarnya berupa persegi panjang yang khusus, yaitu persegi, yang dilengkungkan pada kedua sudutnya. Anda buat persegi berukuran $3\times3\,$cm$^2$. Perhatikan kode berikut ini.
(0,0)[rounded corners=50pt]--(3,0)[rounded corners=0pt]--(3,3)[rounded corners=50pt]--(0,3)[rounded corners=0pt]--cycle;
Mula-mula Anda berada pada koordinat $(0,0)$. Karena pada titik sudut $(3,0)$ akan Anda lengkungkan maka tambahkan opsi rouded corner=... yang diisi oleh derajat/tingkat kelengkungannya, misalnya $50\,$pt. Opsi tersebut mengakibatkan seluruh sudut lainnya dalam kelengkungan yang sama. Anda tidak menginginkan itu, maka sebelum titik sudut $(3,3)$ Anda cantumkan opsi untuk kelengkungannya senilai $0\,$pt. Demikianlah untuk kedua titik sudut lainnya.
Dengan cara yang sama seperti di atas maka kode untuk menggambarnya sebagai berikut.
\begin{tikzpicture}
\draw[LavenderBlush4,path picture={
\node[] at (path picture bounding box.center) 
           {
           \includegraphics[height=3.3cm]{avvy.jpg}
           };
                                   }
] (0,0)[rounded corners=50pt]--(3,0)[rounded corners=0pt]--(3,3)[rounded corners=50pt]--(0,3)[rounded corners=0pt]--cycle;
\end{tikzpicture}
Ini dia hasilnya.
Perhatikan bahwa ukuran gambar/foto yang disisipkan harus lebih besar dari ukuran gambar/path dasarnya, agar seluruh bagian gambar/foto itu termuat di dalam path tersebut.

Bagaimana? Asyik, bukan?
Berikut ini pengkodean selengkapnya beserta hasilnya untuk Anda.

Demikian semoga tulisan ini bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2018

Related Posts Plugin for WordPress, Blogger...