Tuesday, May 12, 2015

TkZ-Euclide: Lingkaran-Singgung Segitiga

Menepis jenuh, saya berjalan-jalan di dalam "perpustakaan". Karena akhir-akhir ini saya menyukai gambar-gambar geometris yang relatif rumit dalam sudut pandang bila disusun dalam $\small\LaTeX$, maka saya pun mencari buku-buku Geometri. Ternyata tangan saya memandu pada "lemari" buku tua dan mendapati Wooster Woodruff Beman dan David Eugene Smith, New Plane and Solid Geometry. Karena, setelah saya memeriksa daftar isi dan halaman pertamanya di Amazon, isinya sesuai dengan harapan saya, maka buku itu pun saya ambil. 
Pada Buku III halaman 138 dalam buku tersebut saya menemukan gambar di samping ini, yang merupakan konstruksi dalam membuktikan dalil (teorema) berikut ini.
Sebuah lingkaran dapat bersinggungan-luar dengan tiga garis yang membentuk suatu segitiga. (Lingkaran-singgung luar dan dalam)
Kemudian saya mempertimbangkan untuk menggambarnya dengan menggunakan paket tkz-euclide. Meskipun demikian, untuk menempatkan nama-nama ruas garis, saya juga menggunakan perintah \node dari paket tikz.
Ini kali pertama di mana saya menggunakan paket tkz-euclide untuk konstruksi yang cukup rumit. Di antara pengalaman baru yang saya dapat adalah pengkodean untuk menetapkan perpotongan dari dua garis.
Nah, berikut ini gambar yang dapat saya buat berdasarkan gambar dalam buku tersebut.
Karena saya ingin meniru persis gambar tersebut, maka saya gunakan dulu GeoGebra untuk mendapatkan koordinat-koordinat yang membentuk ketiga ruas garisnya. Dengan demikian, akibatnya, saya dapat menetapkan batas cakupan nilai $x$ dan nilai $y$ pada bidang koordinat.
\tkzInit[xmin=-4,xmax=3,ymin=-3,ymax=3] %batasan nilai x dan y
%Menetapkan enam titik, sepasang-sepasang dihubungkan oleh ruas garis.
\tkzDefPoint(-3,-1.09){D}  
\tkzDefPoint(2,1.88){E}
\tkzDefPoint(-3.16,-0.28){F} 
\tkzDefPoint(2.52,-0.9){G}
\tkzDefPoint(-0.46,2){H} 
\tkzDefPoint(2,-2.26){I}
\tkzDrawSegments[add= 0.3 and 0.25,color=biruku!80](D,E F,G H,I) %menggambar ketiga ruas garis
Warna ruas garis (dan lingkaran-dalam segitiga) saya tetapkan dalam preamble dengan menyertakan paket xcolor.
\usepackage[dvipsnames,svgnames]{xcolor}
\definecolor{biruku}{cmyk}{1,0.80,0.30,0.05}
\definecolor{bistre}{RGB}{150, 113, 23}
Penamaan ketiga ruas garis itu sebenarnya saya lakukan belakangan setelah gambar lingkaran dan busur terbentuk, agar dapat ditempatkan pada koordinat yang tepat.
\node[above,xshift=-1.8cm,yshift=-1.1cm] at (D){$b$} node[above,xshift=1.1cm,yshift=.65cm] at (E){$b$};
\node[above,yshift=.165cm] at (-4.5,-0.28){$c$} node[above,xshift=1.2cm,yshift=-.165cm] at (G){$c$};
\node[above,xshift=-.8cm,yshift=1.5cm] at (H){$a$} node[above,xshift=.975cm,yshift=-1.5cm] at (I){$a$};
Segitiga sudah terbentuk oleh perpotongan di antara ketiga ruas garis. Lalu bagaimana cara menetapkan dan menamai perpotongan dari dua ruas garis?
%Menetapkan titik potong dari sepasang-sepasang ruas garis.
\tkzInterLL(D,E)(F,G) %menetapkan perpotongan ruas garis DE dan FG
\tkzGetPoint{A} %menetapkan titik potongnya sebagai titik A
\tkzDrawPoints(A) % menggambar nohtah titik A
\tkzLabelPoints[left,xshift=-.3cm,yshift=-.13cm](A) % menamai titik A sebagai "A"
\tkzInterLL(F,G)(H,I) \tkzGetPoint{B}
\tkzDrawPoints(B) 
\tkzLabelPoints[below,xshift=-.1cm](B)
\tkzInterLL(D,E)(H,I) \tkzGetPoint{C}
\tkzDrawPoints(C) 
\tkzLabelPoints[above,yshift=.05cm,xshift=.05cm](C)
Berikutnya lebih dulu harus digambar lingkaran-dalam segitiga. Caranya? Kita buat garis-bagi sudut! 
%Menetapkan garis-bagi sudut (lawan arah putar jarum jam)
\tkzDefLine[bisector](B,A,C) %menetapkan garis-bagi sudut BAC
\tkzGetPoint{P} %menetapkan titik pembentuk garis-bagi sudut
\tkzDrawLine[dashed,color=SeaGreen!70](A,P) %menggambar garis-bagi sudut dari titik A
\tkzDefLine[bisector](C,B,A) \tkzGetPoint{Q}
\tkzDrawLine[dashed,add= 0.15 and 0.7,color=SeaGreen!70](B,Q)
\tkzDefLine[bisector](A,C,B) \tkzGetPoint{S}
\tkzDrawLine[dashed,color=SeaGreen!70](C,S)
Perhatikan bahwa nama sudut harus ditetapkan dengan oerientasi berlawanan arah putar jarum jam. 

Perpotongan dari ketiga garis sudut itu adalah titik pusat lingkaran-dalam segitiga.
%Menetapkan titik potong garis-bagi sudut sebagai pusat lingkaran-dalam segitiga
\tkzInterLL(A,P)(B,Q) %menetapkan perpotongan dari garis-bagi sudut AP dan BQ
\tkzGetPoint{O} %menetapkan titik potongnya (pusat lingkaran-dalam segitiga) sebagai titik O
\tkzDrawPoints(O) % menggambar nohtah titik
\tkzLabelPoints[below](O) % menamai titik O sebagai "O"
Untuk mendapatkan jari-jarinya, kita tarik garis tinggi dari $\small O$ ke arah sisi segitiga, menetapkan perpotongannya, kemudian menggambar lingkarannya.
%Menetapkan jari-jari lingkaran-dalam segitiga
\tkzDrawAltitude[dashed,color=gray](A,C)(O) %menetapkan garis tinggi dari O ke sisi AC
\tkzGetPoint{R} %menetapkan perpotongannya
\tkzLabelPoints[above](R) %menamai titik potong itu sebagai "R"
\tkzDrawCircle[radius,color=bistre](O,R) %Menggambar lingkaran-dalam segitiga
\tkzMarkRightAngle[color=gray,opacity=.5](A,R,O) %menandai sudut ARO siku-siku di R
Sekarang saya memikirkan cara untuk menggambar (ketiga) lingkaran-singgung-luar segitiga. Bagaimana, ya? Buat garis yang melalui titik sudut dan tegak lurus pada garis-bagi sudut itu! Perpotongan sepasang-sepasang (dari tiga) garis yang terbentuk menetapkan titik-titik pusat lingkaran-singgung-luar segitiga.
%Membuat garis tegak lurus terhadap garis bagi sudut yang melalui titik sudut
\tkzDefLine[orthogonal=through A](A,P) %menetapkan garis yang tegak lurus garis-bagi sudut AP di titik A
\tkzDrawLine[add= 1 and -.4,color=gray,dashed](A,tkzPointResult) %menggambar garis itu
\tkzDefLine[orthogonal=through B](B,Q)
\tkzDrawLine[add= 0.8 and 0.5,color=gray,dashed](B,tkzPointResult)
\tkzDefLine[orthogonal=through C](C,S)
\tkzDrawLine[add= 0.7 and -.4,color=gray,dashed](C,tkzPointResult)
Perhatikan bahwa opsi add=... and ... berguna untuk memperpanjang atau memperpendek ujung garis. Kita dapat mengatur nilai-nilainya untuk mendapatkan gambar garis yang diinginkan.
%Menetapkan titik pusat lingkaran O_1
\tkzInterLL(C,tkzPointResult)(A,P) %menetapkan perpotongan garis yang melalui C dan garis-bagi sudut AP
\tkzGetPoint{O1} % menetapkan titik potongnya sebagai O_1
\tkzDrawPoints(O1) % menggambar nohtah titik O_1
\tkzLabelPoint[above,xshift=-.2cm](O1){$O_1$} %menamai titik O_1 sebagai "O_1"
%Menetapkan jari-jari
\tkzDrawAltitude[dashed,color=gray](A,B)(O1) %menetapkan garis-tinggi dari O_1 ke arah sisi AB
\tkzGetPoint{P1} % menetapkan titik potongnya sebagai P_1
\tkzLabelPoint[below](P1){$R_1$} %menamai titik P_1 sebagai "R_1"
%Menggambar lingkaran
\tkzDrawCircle[radius,color=gray](O1,P1) %menggambar lingkaran berpusat di O_1
\tkzMarkRightAngle[color=gray,opacity=.5](O1,P1,B) %menandai sudut O_1P_1B siku-siku di P_1
Saya sudah menggambar lingkaran-singgung-luar $\small\triangle ABC$ yang menyinggung sisi $\small\overline{BC}$ dan berpusat di $\small O_1$. 
Dengan cara yang sama, berikut ini pengkodean untuk menggambar lingkaran-singgung-luar $\small\triangle ABC$ yang menyinggung sisi $\small\overline{AC}$ dan berpusat di $\small O_2$.
%Menetapkan titik pusat lingkaran O_2
\tkzInterLL(C,tkzPointResult)(B,O) \tkzGetPoint{O2}
\tkzDrawPoints(O2)
\tkzLabelPoint[left,yshift=-.2cm](O2){$O_2$}
%Menetapkan jari-jari
\tkzDrawAltitude[dashed,color=gray](A,C)(O2)
\tkzGetPoint{P2}
\tkzLabelPoint[below,xshift=.2cm,yshift=.1cm](P2){$R_2$}
%Menggambar lingkaran
\tkzDrawCircle[radius,color=gray](O2,P2)
\tkzMarkRightAngle[color=gray,opacity=.5](O2,P2,C)
Berikutnya, lingkaran-singgung-luar $\small\triangle ABC$ yang menyinggung sisi $\small\overline{AB}$ dan berpusat di $\small O_3$. Kalau digambarkan secara utuh, lingkaran ini terlalu besar; oleh karena itu saya gambarkan dalam bentuk busurnya saja.
%Menetapkan titik pusat lingkaran O_3
\tkzInterLL(A,tkzPointResult)(C,O) \tkzGetPoint{O3}
\tkzDrawPoints(O3)
\tkzLabelPoint[left](O3){$O_3$}
%Menetapkan jari-jari
\tkzDrawAltitude[dashed,color=gray](B,C)(O3)
\tkzGetPoint{P3}
\tkzLabelPoint[right,yshift=.1cm,xshift=-.1cm](P3){$R_3$}
%Menyiapkan titik bantu untuk menggambar busur O_3
\tkzDefPoint(-3,-3){S} %menetapkan titik bantu S untuk memperoleh gambar busur yang ideal
\tkzCalcLength(O3,P3) %menetapkan panjang jari-jari
\tkzGetLength{radius} %menetapkan jari-jari
%Menggambar busur O_3
\tkzDrawArc[R with nodes](O3,\radius pt)(O3,S) %menggambar busur berpusat di O_3 dari O_3 s.d. S
\tkzMarkRightAngle[color=gray,opacity=.5](C,P3,O3)
Terakhir, melengkapi gambar dengan penandaan sudut-sudut siku-siku pada sudut-sudut yang bersesuaian.
%Menandai tanda sudut siku yang diperlukan
\tkzMarkRightAngle[color=gray,opacity=.5](O2,C,O3)
\tkzMarkRightAngle[color=gray,opacity=.5](O2,B,O3)
\tkzMarkRightAngle[color=gray,opacity=.5](O3,A,O1)
Nah, tuntas sudah. Panjang dan agak rumit? Mungkin, tetapi sepadang dengan hasil yang diperoleh, bukan?

Dokumen di atas saya susun (compile) dalam jaringan melalui Online LaTeX Editor ShareLaTeX
Demikian semoga bermanfaat. 

Adjie Gumarang Pujakelana 2015

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...