Melukis Ruas Garis dan Sudut dengan Penggaris dan Jangka

Diperbarui 24 menit baca Pemula hingga menengah Read in English

Geometri Pembuktian Komputasi Python JavaScript

Jawaban singkat

Melukis dalam geometri berarti menggambar bangun hanya dengan penggaris tanpa skala dan jangka: penggaris menarik garis melalui dua titik, jangka menggambar lingkaran, dan setiap titik baru harus berupa perpotongan garis dan lingkaran yang sudah digambar. Dengan keduanya kita dapat menyalin ruas garis atau sudut, mencari titik tengah, membagi dua sudut, membuat garis tegak lurus dan sejajar, serta membuat 60^\circ, 90^\circ, 30^\circ, dan 45^\circ dengan tepat; sudut sembarang tidak dapat dibagi tiga.

Poin penting

  • Lukisan memakai dua alat: penggaris tanpa angka dan jangka. Ada tiga langkah yang boleh: menarik garis melalui dua titik, menggambar lingkaran berpusat di satu titik melalui titik lain, dan menandai titik tempat dua garis atau lingkaran berpotongan. Lukisan itu tepat dan disertai bukti, sesuatu yang tidak dimiliki gambar dengan busur derajat.
  • Untuk menyalin ruas garis, atur jangka sepanjang ruas itu dan ayunkan busur dari titik yang baru. Untuk mencari titik tengah, gambar dua lingkaran berjari-jari sama di kedua ujung: garis melalui kedua titik potongnya adalah garis sumbu. Keduanya bertumpu pada satu fakta: titik pada garis sumbu sama jauh dari kedua ujung.
  • Segitiga sama sisi pada sebuah ruas garis memberi 60^\circ. Untuk membagi dua sudut, gambar busur berpusat di titik sudut, lalu dua busur berjari-jari sama berpusat di titik tempat busur itu memotong kaki sudut. Untuk menyalin sudut, salin tali busurnya dengan jangka. Ketiganya dibuktikan dengan segitiga kongruen yang memiliki tiga sisi sama (SSS).
  • Garis tegak lurus adalah garis sumbu dari dua titik yang ditandai pada garis dengan lingkaran; garis sejajar adalah sisi berhadapan sebuah belah ketupat. Dari 60^\circ, 90^\circ, membagi dua, menambah, dan mengurangi diperoleh 30^\circ, 45^\circ, 15^\circ, 75^\circ dan lainnya; dengan 72^\circ dari segi lima tercapai setiap derajat bulat kelipatan 3 dan tidak ada yang lain.
  • Langkah-langkah sama panjang sepanjang sebuah sinar dan garis-garis sejajar membagi ruas garis menjadi n bagian sama (teorema intersep). Tetapi penggaris dan jangka tidak dapat membagi tiga sudut sembarang, menggandakan kubus, atau mengkuadratkan lingkaran: keduanya hanya mencapai bilangan yang derajatnya atas bilangan rasional adalah pangkat dari 2. Segi-n beraturan dapat dilukis tepat bila n adalah pangkat dari 2 dikali bilangan prima Fermat yang berbeda.
  • Dalam kode, sebuah lukisan adalah perpotongan dua lingkaran: hitung kedua titik dengan jarak antarpusat, dan pakai max(h², 0) agar lingkaran yang bersinggungan tidak memberi akar dari bilangan negatif yang sangat kecil. Uji untuk sudut dan segi banyak yang dapat dilukis adalah fungsi φ Euler.

Apa artinya melukis sebuah bangun dalam geometri?

Lukisan geometri adalah gambar yang dibuat hanya dengan dua alat, penggaris tanpa skala dan jangka, dengan setiap titik baru harus berupa perpotongan garis dan lingkaran yang sudah digambar. Penggaris (dalam geometri disebut straightedge) menarik garis lurus melalui dua titik; ia tidak punya angka, jadi tidak dapat mengukur. Jangka menggambar lingkaran, atau hanya busurnya, berpusat di sebuah titik, dengan jari-jari sama dengan jarak yang sudah kita punya. Selain itu tidak boleh: tidak ada busur derajat, tidak ada skala pada penggaris, dan tidak ada menaruh titik dengan perkiraan mata.

Mengapa seketat itu? Karena lukisan itu tepat dan dapat dibuktikan. Bangun yang digambar dengan busur derajat hanya sebaik tebal garis pensilnya, sedangkan lukisan disertai alasan (biasanya dua segitiga memiliki tiga sisi sama) yang menunjukkan bahwa hasilnya tepat, secermat atau seceroboh apa pun kita menggambar. Begitulah Euklides membangun geometri dalam Elements sekitar 300 SM, dan itu sebabnya membagi dua sudut atau melukis garis sumbu masih menjadi hal pertama yang diajarkan pelajaran geometri.

Menggambar dengan penggaris dan busur derajatMelukis dengan penggaris dan jangka
Alatpenggaris berangka, busur derajatpenggaris tanpa angka, jangka
Cara membuat panjangdiukur dalam cmdisalin dengan jangka
Seberapa baiksebaik pembacaan kitatepat, dan terbukti
Yang diajarkancara mengukurmengapa itu benar

Bagaimana menyalin, menjumlahkan, dan mengurangkan ruas garis?

Untuk menyalin ruas garis AB pada sinar yang berawal di C, bukalah jangka sampai kakinya di A dan pensilnya di B, lalu letakkan kaki jangka di C dan ayunkan busur memotong sinar: titik potong D memberi CD=AB. Penggaris hanya dipakai untuk menarik sinar. Jangka mengukur tanpa angka, karena ia mempertahankan bukaannya, sehingga setiap titik pada busur berjarak tepat AB dari C.

  1. Tarik sinar dari C (atau pakai yang sudah ada).
  2. Bukalah jangka dari A sampai B.
  3. Pertahankan bukaan itu, letakkan kaki jangka di C dan gambar busur yang memotong sinar di D.

Dengan satu langkah ini kita dapat berhitung dengan panjang:

  • Menjumlahkan dua ruas garis: salin yang pertama pada sinar dari C, berakhir di D; lalu letakkan kaki jangka di D dan salin yang kedua lebih jauh sepanjang sinar yang sama, berakhir di E. Maka CE adalah jumlahnya.
  • Mengurangkan: salin ruas garis yang lebih panjang pada sebuah sinar, lalu salin yang lebih pendek dari ujungnya kembali ke arah C. Sisanya adalah selisihnya.
  • Mengalikan dengan bilangan bulat: salin ruas garis yang sama ujung ke ujung, 2, 3, 4 kali.

Panjang di sini disalin, tidak dibaca: kita mungkin tidak tahu berapa sentimeter panjang AB, dan tidak perlu tahu. Bila satu ruas garis dipilih sebagai satuan, langkah yang sama menghasilkan panjang seperti 2, 3, atau 3/2 kali satuan itu.

Bagaimana mencari titik tengah dan garis sumbu sebuah ruas garis?

Gambar dua lingkaran berjari-jari sama berpusat di ujung A dan B ruas garis; garis melalui kedua titik potongnya P dan Q adalah garis sumbu AB, dan ia memotong AB di titik tengahnya M. Garis sumbu adalah garis yang membagi sebuah ruas garis menjadi dua sama panjang dengan sudut siku-siku; ia juga himpunan semua titik yang sama jauh dari A dan dari B.

  1. Bukalah jangka lebih dari setengah AB (panjang AB sendiri adalah pilihan yang baik).
  2. Letakkan kaki jangka di A dan gambar satu busur di atas ruas garis dan satu lagi di bawahnya.
  3. Pertahankan bukaan yang sama, letakkan kaki jangka di B dan gambar dua busur yang memotong kedua busur pertama, di P di atas dan Q di bawah.
  4. Tarik garis PQ dengan penggaris. Ia memotong AB di titik tengah M dan tegak lurus padanya.

Mengapa berhasil. Kedua lingkaran berjari-jari sama, jadi PA=PB=QA=QB: segi empat APBQ memiliki empat sisi sama panjang, sehingga merupakan belah ketupat. Diagonal belah ketupat saling membagi dua dan berpotongan siku-siku (lihat sifat-sifat segi empat), dan diagonal-diagonal itu tepat AB dan PQ. Cara lain melihatnya: segitiga APQ dan BPQ memiliki tiga sisi sama, jadi kongruen, dan sudut-sudut di P sama besar.

Lukisan ini sangat berguna. Mencari titik tengah sisi adalah langkah pertama menuju garis berat segitiga, dan garis sumbu dua sisi segitiga bertemu di pusat lingkaran luarnya (lihat titik-titik penting segitiga).

Bagaimana melukis 60°, membagi dua sudut, dan menyalin sudut?

Tiga lukisan sudut dasar semuanya memakai lingkaran berjari-jari satu saja, dan masing-masing dibuktikan oleh dua segitiga yang memiliki tiga sisi sama (SSS).

Segitiga sama sisi memberi 60^\circ. Ini proposisi pertama Euklides. Gambar ruas garis AB, lalu lingkaran berpusat di A melalui B dan lingkaran berpusat di B melalui A. Keduanya berpotongan di C, dan CA=AB=CB: tiga sisi sama panjang. Ketiga sudut segitiga sama sisi sama besar dan berjumlah 180^\circ, jadi masing-masing 60^\circ (lihat sudut-sudut segitiga).

Untuk membagi dua sudut POQ dengan titik sudut O:

  1. Letakkan kaki jangka di O dan gambar busur yang memotong kedua kaki sudut, di P dan Q.
  2. Letakkan kaki jangka di P dan gambar busur di dalam sudut.
  3. Pertahankan bukaan yang sama, letakkan kaki jangka di Q dan gambar busur yang memotong busur sebelumnya di R.
  4. Tarik sinar OR. Ia membagi sudut menjadi dua sudut sama besar.

Mengapa: segitiga OPR dan OQR memiliki OP=OQ (busur pertama), PR=QR (bukaan yang sama), dan sisi OR yang dipakai bersama. Tiga sisi sama membuatnya kongruen, jadi sudut POR dan QOR sama besar. Bila busur kedua dan ketiga juga memakai jari-jari OP, maka O, P, R, Q membentuk belah ketupat, dan diagonal belah ketupat membagi dua sudutnya.

Untuk menyalin sudut POQ pada sinar ST:

  1. Dengan kaki jangka di O, gambar busur yang memotong kaki sudut di P dan Q. Gambar busur yang sama (bukaan yang sama) berpusat di S, memotong sinar ST di U.
  2. Bukalah jangka sebesar jarak PQ.
  3. Dengan kaki jangka di U, gambar busur yang memotong busur pertama di V.
  4. Tarik sinar SV. Sudut USV sama dengan POQ.

Mengapa: segitiga OPQ dan SUV memiliki OP=SU, OQ=SV, dan PQ=UV, semuanya disalin dengan jangka, jadi kongruen menurut SSS dan sudut di O dan S sama besar. Membagi dua, menyalin, dan menjumlahkan sudut adalah satu-satunya langkah yang diperlukan untuk membangun sudut lain (lihat cara sudut dinamai dan dijumlahkan).

Bagaimana melukis garis tegak lurus dan garis sejajar?

Garis tegak lurus adalah garis sumbu dari dua titik yang kita tandai pada garis dengan sebuah lingkaran, dan garis sejajar adalah sisi berhadapan sebuah belah ketupat, jadi keduanya berasal dari lukisan di atas.

Garis tegak lurus di titik C pada sebuah garis.

  1. Letakkan kaki jangka di C dan gambar lingkaran yang memotong garis di dua titik, A di satu sisi dan X di sisi lain. Keduanya sama jauh dari C.
  2. Lukis garis sumbu AX (dua lingkaran berjari-jari sama berpusat di A dan X).
  3. Garis sumbu itu melalui titik tengah AX, yaitu C, dan tegak lurus pada garis. Untuk membuat sudut siku-siku 90^\circ di ujung sebuah sinar, perpanjang sinar itu ke belakang dan ambil C sebagai ujungnya.

Garis tegak lurus dari titik C yang tidak berada pada garis.

  1. Gambar lingkaran berpusat di C yang memotong garis di dua titik, A dan X.
  2. Lukis garis sumbu AX. Karena CA=CX, titik C berada di atasnya.
  3. Garis sumbu itu adalah garis tegak lurus dari C; ia memotong garis di kaki F, dan CF adalah jalan terpendek dari C ke garis.

Garis sejajar AB melalui titik C yang tidak berada di atasnya.

  1. Gambar lingkaran berpusat di A melalui C. Ia memotong garis di X.
  2. Dengan bukaan yang sama, gambar lingkaran berpusat di X dan satu lagi berpusat di C. Keduanya berpotongan di A dan di titik kedua Q.
  3. Tarik garis CQ. Keempat titik A, X, Q, C adalah titik sudut belah ketupat (empat sisi sama dengan satu bukaan), dan sisi berhadapan belah ketupat sejajar, jadi CQ\parallel AB.

Cara kedua membuat garis sejajar adalah menyalin sudut: tarik sembarang garis melalui C yang memotong AB, salin sudut yang dibentuknya dengan AB sehingga menjadi sudut sehadap di C, dan pakai fakta bahwa sudut sehadap yang sama besar berarti garis sejajar (lihat garis yang dipotong garis lintang).

Dapatkah kita melihat setiap lingkaran dan garis tiap lukisan?

Pilih sebuah lukisan, ikuti satu lingkaran atau garis pada satu waktu, dan ukur gambar yang sudah jadi. Gambar ini menaati aturan tiga langkah: titik baru hanya dapat muncul di tempat dua hal yang sudah kita gambar berpotongan, dan program menolak langkah lain. Tekan gambar lain untuk menjalankan lukisan yang sama pada ruas garis atau sudut yang baru: pengukurannya tetap tepat karena buktinya tidak bergantung pada letak titik-titiknya.

Interaktif: melukis dengan penggaris dan jangka, langkah demi langkah

Pilih salah satu dari sebelas lukisan (menyalin ruas garis, titik tengah, tegak lurus, sejajar, 60°, 90°, 30°, 45°, menyalin atau membagi dua sudut) dan ikuti setiap lingkaran dan garis, lalu ukur gambar yang sudah jadi.

Sudut mana yang dapat dilukis dengan penggaris dan jangka?

Mulai dari 60^\circ dan 90^\circ dan hanya memakai membagi dua, menambah, dan mengurangi, kita dapat membangun 30^\circ, 45^\circ, 15^\circ, 75^\circ, 105^\circ, 120^\circ, 135^\circ, 150^\circ dan banyak lagi, tetapi bukan 20^\circ atau 1^\circ. Setiap baris di bawah adalah beberapa langkah dari lukisan di atas.

SudutCara
90^\circgaris tegak lurus
60^\circsegitiga sama sisi
30^\circsetengah dari 60^\circ
45^\circsetengah dari 90^\circ
15^\circsetengah dari 30^\circ
75^\circ60^\circ+15^\circ
105^\circ90^\circ+15^\circ
120^\circ60^\circ+60^\circ
135^\circ90^\circ+45^\circ
150^\circ90^\circ+60^\circ

Ada satu bahan lagi, yang ditemukan bangsa Yunani: segi lima beraturan. Sudut pusatnya 72^\circ, karena \cos72^\circ=(√5-1)/(4) dan akar kuadrat adalah sesuatu yang dapat dibuat jangka (lingkaran berjari-jari (√5)/(2) berpusat di titik tengah sebuah jari-jari, dan dua pembagian dua lagi). Dari 72^\circ diperoleh 36^\circ, 18^\circ dan, dengan mengurangkan 60^\circ, 12^\circ. Lalu 15^\circ-12^\circ=3^\circ: sudut satu derajat tidak terjangkau, tetapi tiga derajat terjangkau.

Derajat bulat yang dapat dilukis tepat adalah kelipatan 3. Setiap kelipatan 3 dicapai dengan menambah dan mengurangi salinan 3^\circ. Untuk yang lain, misalkan n^\circ dapat dilukis dengan n bukan kelipatan 3. Maka n dan 3 tidak punya faktor persekutuan, sehingga ada bilangan bulat a dan b dengan an+3b=1, dan menambah serta mengurangi salinan n^\circ dan 3^\circ akan membuat 1^\circ. Tetapi 1^\circ tidak dapat dilukis, seperti dijelaskan pada bagian tentang lukisan yang mustahil.

Ketik sembarang bilangan bulat derajat di bawah dan kita mendapat resep termurah dan gambar jadinya, atau alasan mengapa resepnya tidak ada.

Interaktif: sudut mana yang dapat dilukis?

Ketik bilangan bulat derajat dari 1 sampai 179: jika penggaris dan jangka dapat membangunnya Anda mendapat resep terpendek dari 60°, 90°, 72°, membagi dua, menambah, dan mengurangi, beserta gambarnya; jika tidak, Anda melihat sebabnya.

Bagaimana membagi ruas garis menjadi bagian-bagian sama?

Untuk membagi AB menjadi n bagian sama, langkahkan n panjang yang sama sepanjang sinar dari A, hubungkan tanda terakhir dengan B, dan tarik garis-garis sejajar dengan garis itu melalui tanda-tanda lainnya; garis-garis itu membagi AB menjadi n bagian sama. Alasannya adalah teorema intersep: garis-garis sejajar yang memotong bagian sama dari satu garis lintang memotong bagian sama dari setiap garis lintang lainnya. Berikut lukisan untuk n=3.

  1. Tarik sinar dari A dengan sudut sembarang terhadap AB.
  2. Pilih sembarang bukaan jangka dan langkahkan tiga panjang yang sama sepanjang sinar, dari A: tanda D_1, D_2, D_3.
  3. Tarik garis D_3B.
  4. Tarik garis-garis sejajar D_3B melalui D_2 dan D_1 (lihat cara belah ketupat di atas). Keduanya memotong AB di K_2 dan K_1.
  5. AK_1=K_1K_2=K_2B.

Langkah yang sama membagi ruas garis dengan perbandingan tertentu: untuk memotong AB dengan perbandingan 2:3, bagi menjadi 5 bagian sama dan ambil tanda kedua. Membagi ruas garis menjadi dua bagian sama adalah garis sumbu, yang lebih cepat daripada cara ini. Dan karena kita dapat membuat a/n dari panjang mana pun, panjang yang dapat dibuat dari satu ruas garis satuan mencakup setiap pecahan.

Gambar di bawah memutar seluruh lukisan untuk 2 sampai 10 bagian; tabel di akhir mengukur setiap tanda terhadap k/n perjalanan dari A ke B.

Interaktif: membagi ruas garis menjadi bagian-bagian sama

Potong sebuah ruas garis menjadi 2 sampai 10 bagian sama dengan langkah-langkah pada sebuah sinar dan garis-garis sejajar, putar setiap lingkaran dan garis, dan ukur tiap tanda terhadap k/n dari panjangnya.

Apa yang tidak akan pernah dapat dilukis dengan penggaris dan jangka?

Sudut sembarang tidak dapat dibagi tiga sama besar, kubus tidak dapat digandakan, dan lingkaran tidak dapat dikuadratkan dengan penggaris dan jangka; ketiganya terbukti mustahil pada abad kesembilan belas. Ketiga masalah itu terbuka selama lebih dari dua ribu tahun. Jawabannya bukan bahwa tak seorang pun cukup cerdas, melainkan bahwa alat-alat itu hanya mencapai bilangan tertentu.

Bilangan apa yang dapat dibuat? Ambil satu panjang satuan. Tiga langkah itu hanya dapat menghasilkan bilangan yang diperoleh dari 1 dengan menambah, mengurangi, mengalikan, membagi, dan menarik akar kuadrat, karena perpotongan garis dengan garis menghasilkan persamaan linear dan perpotongan garis atau lingkaran dengan lingkaran menghasilkan persamaan kuadrat. Setiap akar kuadrat paling banyak menggandakan derajat sebuah bilangan atas bilangan rasional (derajat terkecil polinomial berkoefisien bulat yang memiliki bilangan itu sebagai akar). Jadi bilangan yang dapat dibuat berderajat pangkat dari 2: 1, 2, 4, 8, … Inilah teorema Wantzel (1837).

Mengapa 20^\circ tidak dapat dilukis. Identitas sudut rangkap tiga berbunyi \cos3φ=4\cos^3φ-3\cosφ. Ambil φ=20^\circ dan \cos60^\circ=\frac12, maka x=\cos20^\circ memenuhi 8x^3-6x-1=0. Polinomial kubik ini tidak punya akar rasional (kandidatnya hanya ±1, ±\frac12, ±\frac14, ±\frac18, dan tidak ada yang berhasil), sehingga tidak dapat dipecah, dan \cos20^\circ berderajat 3. Tiga bukan pangkat dari 2, jadi 20^\circ tidak dapat dilukis, dan sudut 60^\circ tidak dapat dibagi tiga. Bila 1^\circ dapat dilukis, maka 20^\circ juga (dua puluh salinan), itulah sebabnya tidak ada derajat bulat di luar kelipatan 3 yang dapat dilukis.

Tiga masalah klasik.

  • Membagi tiga sudut: mungkin untuk sudut khusus (90^\circ memberi 30^\circ), mustahil secara umum (60^\circ memberi 20^\circ).
  • Menggandakan kubus: kubus bervolume dua kali lipat memerlukan rusuk 2^(1/3) kali rusuk lama, bilangan berderajat 3.
  • Mengkuadratkan lingkaran: persegi yang luasnya sama dengan lingkaran berjari-jari 1 memerlukan sisi √π. Lindemann membuktikan pada 1882 bahwa π transenden, artinya bukan akar polinomial berkoefisien bulat mana pun, sehingga √π juga tak terjangkau (lihat π dan bilangan transenden).

Alat lain dapat melakukannya. Archimedes membagi tiga sudut mana pun dengan penggaris yang memiliki dua tanda berjarak satu satuan (penggaris bertanda, disebut neusis dalam bahasa Yunani). Letakkan penggaris melalui B sehingga satu tanda berada di lingkaran di C dan tanda lainnya di garis AO yang diperpanjang, di D; sudut di D tepat sepertiga sudut di O. Lipat kertas (origami) dan beberapa kurva lain juga dapat membagi tiga sebuah sudut. Kemustahilan itu hanya berlaku untuk penggaris dan jangka saja.

Gambar di bawah memperlihatkan pembagian tiga Archimedes untuk sudut mana pun, dan menyatakan apakah penggaris dan jangka saja dapat melakukannya.

Interaktif: membagi tiga sebuah sudut

Geser sebuah sudut dan lihat pembagian tiga Archimedes dengan penggaris yang memiliki dua tanda, serta apakah penggaris dan jangka biasa juga dapat membagi tiga sudut itu (tidak dapat untuk 60°).

Segi banyak beraturan mana yang dapat dilukis dengan penggaris dan jangka?

Segi banyak beraturan bersisi n dapat dilukis tepat bila n adalah pangkat dari 2 dikali bilangan prima Fermat yang berbeda (3, 5, 17, 257, 65537); beberapa yang pertama adalah 3, 4, 5, 6, 8, 10, 12, 15, 16, 17. Inilah teorema Gauss–Wantzel. Carl Friedrich Gauss menemukan pada usia 18 tahun bahwa segi tujuh belas beraturan dapat dilukis, menerbitkannya pada 1801, dan meminta satu di batu nisannya; Pierre Wantzel membuktikan pada 1837 bahwa tidak ada segi banyak beraturan lain yang dapat.

Mengapa bilangan-bilangan itu? Melukis segi-n berarti melukis sudut (360^\circ)/(n), yaitu bilangan \cos(2π)/(n), yang derajatnya atas bilangan rasional adalah (φ(n))/(2) untuk n\ge3. Di sini φ(n) adalah fungsi Euler, banyaknya bilangan bulat dari 1 sampai n yang tidak punya faktor persekutuan dengan n. Derajat itu pangkat dari 2 tepat bila φ(n) demikian, dan φ(n) pangkat dari 2 tepat bila n adalah pangkat dari 2 dikali bilangan prima berbeda yang berbentuk 2^2^k+1 (prima Fermat). Hanya lima yang diketahui: 3, 5, 17, 257, dan 65537.

  • Segi lima (5): \cos72^\circ=(√5-1)/(4), satu akar kuadrat. Dilukis bangsa Yunani.
  • Segi tujuh (7) dan segi sembilan (9): φ(7)=6 dan φ(9)=6 bukan pangkat dari 2, jadi tidak dapat dilukis. Segi sembilan memerlukan pembagian tiga 120^\circ, yang mustahil.
  • Segi tujuh belas: φ(17)=16, dan \cos(2π)/(17) memerlukan tiga lapis akar kuadrat bersarang.
  • Segi 257 dan segi 65537: dilukis di atas kertas oleh Richelot (1832) dan oleh Hermes (1894, setelah sekitar sepuluh tahun kerja).

Ketik banyak sisi untuk melihat mengapa sebuah segi banyak dapat atau tidak dapat dilukis.

Interaktif: segi banyak beraturan mana yang dapat dilukis?

Ketik banyak sisi dari 3 sampai 65537 dan lihat apakah segi banyak beraturannya dapat dilukis dengan penggaris dan jangka, beserta faktor-faktor penentunya, φ Euler, dan sudut pusatnya.

Bagaimana melakukan lukisan dalam kode?

Dalam program, sebuah lukisan adalah perpotongan dua lingkaran (atau garis dan lingkaran) yang dihitung dari jarak antarpusat. Untuk lingkaran berjari-jari r_1 dan r_2 dengan pusat berjarak d, titik potongnya berada pada jarak a=(r_1^2-r_2^2+d^2)/(2d) dari pusat pertama sepanjang garis antarpusat, dan pada tinggi h=√(r_1^2-a^2) di kedua sisinya. Bila d>r_1+r_2 atau d<|r_1-r_2| lingkaran saling melewati dan tidak ada titik.

Dua hal penting dalam aritmetika floating-point (lihat mengapa penjumlahan floating-point tidak tepat). Pertama, ketika lingkaran hanya bersinggungan, r_1^2-a^2 dapat bernilai -10^-17, jadi ambil max(h², 0) sebelum akar kuadrat. Kedua, jangan pernah membandingkan panjang dengan ==: dua jarak yang sama di atas kertas berbeda di angka terakhir, jadi bandingkan dengan toleransi kecil, dan ukur sudut dengan atan2.

Program membangun lensa garis sumbu untuk A=(0,0) dan B=(4,0), memeriksa bahwa titik potong atas membentuk segitiga sama sisi, dan menguji derajat bulat dan segi banyak mana yang dapat dilukis dengan fungsi φ Euler.

Python: dua lingkaran berpotongan, lensa, dan sudut serta segi banyak mana yang dapat dilukis
import math


def circles_meet(c1, r1, c2, r2):
    """The two points where two circles cross, the one on the left of c1 -> c2 first; None if they miss."""
    dx, dy = c2[0] - c1[0], c2[1] - c1[1]
    d = math.hypot(dx, dy)
    if d == 0 or d > r1 + r2 or d < abs(r1 - r2):
        return None
    a = (r1 * r1 - r2 * r2 + d * d) / (2 * d)
    h = math.sqrt(max(r1 * r1 - a * a, 0.0))      # rounding can leave -1e-17 when the circles only touch
    mx, my = c1[0] + a * dx / d, c1[1] + a * dy / d
    return (mx - h * dy / d, my + h * dx / d), (mx + h * dy / d, my - h * dx / d)


def totient(n):
    return sum(1 for k in range(1, n + 1) if math.gcd(k, n) == 1)


def is_power_of_two(n):
    return n >= 1 and n & (n - 1) == 0


def angle_buildable(deg):
    """A whole number of degrees can be built when cos(deg) has a degree that is a power of two."""
    m = 360 // math.gcd(deg, 360)
    return is_power_of_two(1 if m <= 2 else totient(m) // 2)


def polygon_buildable(n):
    return n >= 3 and is_power_of_two(totient(n))


A, B = (0.0, 0.0), (4.0, 0.0)
P, Q = circles_meet(A, 4, B, 4)                       # the lens of the perpendicular bisector
print([round(v, 4) for v in P], [round(v, 4) for v in Q])    # [2.0, 3.4641] [2.0, -3.4641]
print(round(math.dist(P, A), 4), round(math.dist(P, B), 4), round(math.dist(A, B), 4))    # 4.0 4.0 4.0
print(round(math.degrees(math.atan2(P[1] - A[1], P[0] - A[0])), 4))    # 60.0: the angle PAB
print([d for d in range(1, 31) if angle_buildable(d)])     # [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
print([n for n in range(3, 41) if polygon_buildable(n)])   # [3, 4, 5, 6, 8, 10, 12, 15, 16, 17, 20, 24, 30, 32, 34, 40]
print(circles_meet((0, 0), 1, (5, 0), 1))                  # None: too far apart
JavaScript: perpotongan yang sama dan dua uji yang sama
const circlesMeet = ([x1, y1], r1, [x2, y2], r2) => {
  const dx = x2 - x1, dy = y2 - y1
  const d = Math.hypot(dx, dy)
  if (d === 0 || d > r1 + r2 || d < Math.abs(r1 - r2)) return null
  const a = (r1 * r1 - r2 * r2 + d * d) / (2 * d)
  const h = Math.sqrt(Math.max(r1 * r1 - a * a, 0))     // rounding can leave -1e-17 when the circles only touch
  const mx = x1 + (a * dx) / d, my = y1 + (a * dy) / d
  return [[mx - (h * dy) / d, my + (h * dx) / d], [mx + (h * dy) / d, my - (h * dx) / d]]
}
const gcd = (a, b) => (b === 0 ? a : gcd(b, a % b))
const totient = (n) => { let t = 0; for (let k = 1; k <= n; k++) if (gcd(k, n) === 1) t++; return t }
const isPowerOfTwo = (n) => n >= 1 && (n & (n - 1)) === 0
const angleBuildable = (deg) => { const m = 360 / gcd(deg, 360); return isPowerOfTwo(m <= 2 ? 1 : totient(m) / 2) }
const polygonBuildable = (n) => n >= 3 && isPowerOfTwo(totient(n))

const [P, Q] = circlesMeet([0, 0], 4, [4, 0], 4)
;[P.map((v) => +v.toFixed(4)), Q.map((v) => +v.toFixed(4))]                 // [[2, 3.4641], [2, -3.4641]]
;+(Math.atan2(P[1], P[0]) * 180 / Math.PI).toFixed(4)                       // 60
Array.from({ length: 30 }, (_, i) => i + 1).filter(angleBuildable)           // [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Array.from({ length: 38 }, (_, i) => i + 3).filter(polygonBuildable)         // [3, 4, 5, 6, 8, 10, 12, 15, 16, 17, 20, 24, 30, 32, 34, 40]
circlesMeet([0, 0], 1, [5, 0], 1)                                             // null: too far apart
C++: perpotongan dua lingkaran dan fungsi Euler
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

double px, py, qx, qy;   // the two crossings, set by circlesMeet

int circlesMeet(double x1, double y1, double r1, double x2, double y2, double r2) {
  double dx = x2 - x1;
  double dy = y2 - y1;
  double d = sqrt(dx * dx + dy * dy);
  if (d == 0 || d > r1 + r2 || d < fabs(r1 - r2)) return 0;
  double a = (r1 * r1 - r2 * r2 + d * d) / (2 * d);
  double h2 = r1 * r1 - a * a;
  double h = h2 > 0 ? sqrt(h2) : 0;       // rounding can leave -1e-17 when the circles only touch
  double mx = x1 + a * dx / d;
  double my = y1 + a * dy / d;
  px = mx - h * dy / d;
  py = my + h * dx / d;
  qx = mx + h * dy / d;
  qy = my - h * dx / d;
  return 1;
}

int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }

int totient(int n) {
  int result = n;
  int m = n;
  for (int p = 2; p * p <= m; p++) {
    if (m % p == 0) {
      while (m % p == 0) m /= p;
      result -= result / p;
    }
  }
  if (m > 1) result -= result / m;
  return result;
}

int isPowerOfTwo(int n) { return n >= 1 && (n & (n - 1)) == 0; }

int angleBuildable(int deg) {
  int m = 360 / gcd(deg, 360);
  return isPowerOfTwo(m <= 2 ? 1 : totient(m) / 2);
}

int main() {
  circlesMeet(0, 0, 4, 4, 0, 4);
  printf("%.4f %.4f %.4f %.4f\n", px, py, qx, qy);
  printf("%.1f\n", atan2(py, px) * 180.0 / 3.14159265358979323846);
  for (int d = 1; d <= 30; d++) if (angleBuildable(d)) printf("%d ", d);
  printf("\n");
  for (int n = 3; n <= 40; n++) if (isPowerOfTwo(totient(n))) printf("%d ", n);
  printf("\n");
  printf("%d\n", circlesMeet(0, 0, 1, 5, 0, 1));
  return 0;
}

/* output:
2.0000 3.4641 2.0000 -3.4641
60.0
3 6 9 12 15 18 21 24 27 30
3 4 5 6 8 10 12 15 16 17 20 24 30 32 34 40
0
*/

Dari mana lukisan dengan penggaris dan jangka berasal?

Melukis adalah cara tertua mengerjakan geometri, dan pertanyaan tentang apa yang bisa dan tidak bisa dilakukannya memerlukan dua ribu tahun untuk dijawab.

  • Sekitar 300 SM. Elements Euklides diawali dengan segitiga sama sisi dan dibangun dengan penggaris dan jangka saja: membagi dua sudut dan ruas garis, garis tegak lurus, garis sejajar, menyalin sudut, dan segi lima beraturan (Buku I dan IV). Buku VI membagi ruas garis menjadi bagian sama dengan teorema intersep.
  • Sekitar 250 SM. Archimedes membagi tiga sebuah sudut dengan penggaris bertanda. Ahli geometri Yunani berabad-abad mencoba membagi tiga sudut, menggandakan kubus, dan mengkuadratkan lingkaran dengan penggaris dan jangka saja.
  • 1672 dan 1797. Georg Mohr dan, secara terpisah, Lorenzo Mascheroni menunjukkan bahwa setiap titik yang dapat dilukis dengan penggaris dan jangka dapat dilukis dengan jangka saja.
  • 1796. Gauss, berusia 18 tahun, melukis segi tujuh belas beraturan, segi banyak beraturan baru pertama sejak zaman kuno, dan menerbitkan aturan umumnya pada 1801.
  • 1832. Friedrich Richelot memberikan lukisan segi 257.
  • 1837. Pierre Wantzel membuktikan bahwa menggandakan kubus dan membagi tiga sudut sembarang adalah mustahil, dan bahwa daftar segi banyak Gauss sudah lengkap.
  • 1882. Ferdinand von Lindemann membuktikan bahwa π transenden, yang mengakhiri soal mengkuadratkan lingkaran.
  • 1894. Johann Gustav Hermes menyelesaikan lukisan segi 65537, setelah sekitar sepuluh tahun.

Apa kesalahan umum dalam melukis?

Kesalahan paling umum dalam melukis adalah delapan hal berikut, masing-masing dengan pernyataan yang benar.

KesalahanYang benar
❌ Membaca panjang dari penggaris (“5 cm”)Penggaris hanya menarik garis. Salin panjang dengan jangka; ia mempertahankan bukaannya.
❌ Mengubah bukaan jangka di antara kedua busur garis bagiPertahankan satu bukaan, sehingga keempat sisi sama dan bangunnya belah ketupat.
❌ Memakai bukaan yang terlalu kecil sehingga busur tidak berpotonganUntuk mencari titik tengah, bukaan harus lebih dari setengah ruas garis.
❌ Membuat 60^\circ dengan busur derajat dan menyebutnya lukisanGambar segitiga sama sisi; sudutnya tepat 60^\circ menurut SSS.
❌ Melukis berarti “menggambar dengan hati-hati”Lukisan adalah daftar langkah yang diperbolehkan disertai bukti; pensil yang ceroboh tidak mengubah buktinya.
❌ Setiap derajat bulat dapat dilukis bila kita telitiHanya kelipatan 3; 1^\circ dan 20^\circ mustahil.
❌ Membagi tiga sudut mustahil dengan alat apa punHanya dengan penggaris dan jangka saja; penggaris bertanda atau lipatan kertas dapat melakukannya.
❌ Setiap segi banyak beraturan dapat dilukis, misalnya segi tujuhHanya bila n adalah pangkat dari 2 dikali prima Fermat yang berbeda; 7 dan 9 tidak dapat.

Latihan: uji pemahamanmu

Soal-soal ini mencampur semua yang dibahas di atas. Jika jawabanmu belum tepat, perhatikan petunjuk yang tersedia, lalu coba kembali.

Benar atau salah?

Tentukan tiap pernyataan Benar atau Salah.

  • Jangka mempertahankan bukaannya, sehingga dapat menyalin panjang.
  • Penggaris dalam melukis tidak memiliki angka.
  • Garis sumbu AB dibuat dengan dua lingkaran berjari-jari sama berpusat di A dan B.
  • Segitiga sama sisi memberi 60^\circ.
  • Penggaris dan jangka dapat membagi tiga setiap sudut.
  • Segi tujuh beraturan dapat dilukis dengan penggaris dan jangka.

Urutkan langkah-langkahnya

Urutkan langkah-langkah garis sumbu AB.

Sudut mana yang dapat dilukis?

Sudut mana yang dapat dilukis tepat dengan penggaris dan jangka? Pilih semua yang benar.

  • 15^\circ
  • 20^\circ
  • 75^\circ
  • 40^\circ
  • 105^\circ

Setengah sebuah sudut

Sebuah sudut 80^\circ dibagi dua. Berapa besar tiap bagian, dalam derajat?

Resep untuk 75°

Berapa kali sudut dibagi dua untuk mendapat 15^\circ dari 60^\circ?

Bagian sama

Ketika sebuah ruas garis dibagi menjadi 7 bagian sama, berapa titik yang ditandai di dalamnya (tidak termasuk ujung)?

Fungsi Euler

Berapa φ(15)?

Segi banyak yang mana?

Segi banyak beraturan mana yang tidak dapat dilukis dengan penggaris dan jangka?

  • segi tujuh belas
  • segi dua belas
  • segi sembilan
  • segi sepuluh

Mengapa tidak dapat dibagi tiga?

Mengapa penggaris dan jangka tidak dapat membagi tiga sudut 60^\circ?

  • diperlukan \cos20^\circ, akar polinomial kubik yang tidak dapat difaktorkan, dan derajatnya 3 bukan pangkat dari 2
  • jangkanya terlalu kecil
  • belum ada yang menemukan lukisannya
  • 60^\circ bukan kelipatan 3

Mengapa garis bagi berhasil

Dalam membagi dua sudut di O, segitiga OPR dan OQR kongruen karena…

  • mereka memiliki tiga pasang sisi sama: OP=OQ, PR=QR, dan OR dipakai bersama
  • mereka memiliki sudut yang sama di O
  • keduanya memiliki sudut siku-siku
  • penggarisnya lurus

Isi sudutnya

Lengkapi kalimatnya.

Menggandakan ruas garis

Kita ingin ruas garis dua kali panjang AB. Apa yang dilakukan?

  • salin AB dua kali, ujung ke ujung, pada sebuah sinar
  • ukur AB dalam cm lalu kalikan
  • buka jangka sebesar AB dan gambar lingkaran
  • bagi dua AB

Ringkasan: lukisan sekilas

  • Aturan: penggaris tanpa skala dan jangka; tiga langkah (garis melalui dua titik, lingkaran berpusat di satu titik, titik di perpotongan); lukisan itu tepat dan memiliki bukti.
  • Menyalin ruas garis: atur jangka sepanjang ruas itu dan ayunkan busur dari titik yang baru; jumlahkan dan kurangkan dengan menyalin ujung ke ujung atau ke belakang.
  • Garis sumbu dan titik tengah: dua lingkaran berjari-jari sama di kedua ujung, hubungkan titik potongnya; dibenarkan oleh belah ketupat atau oleh SSS.
  • Sudut: segitiga sama sisi →60^\circ; bagi dua dengan satu busur dan dua busur sama; salin dengan menyalin tali busur; semuanya dengan SSS.
  • Tegak lurus dan sejajar: garis sumbu dua titik yang ditandai; sisi berhadapan belah ketupat.
  • Sudut istimewa: 90^\circ, 60^\circ, 30^\circ, 45^\circ, 15^\circ, 75^\circ, 120^\circ, 135^\circ, 150^\circ dari membagi dua, menambah, dan mengurangi; dengan 72^\circ, setiap derajat bulat kelipatan 3.
  • Bagian sama: langkah sama panjang pada sinar dan garis sejajar (teorema intersep).
  • Mustahil: membagi tiga sudut sembarang, menggandakan kubus, mengkuadratkan lingkaran; bilangan yang dapat dilukis berderajat pangkat dari 2.
  • Segi banyak: segi-n beraturan dapat dilukis tepat bila φ(n) pangkat dari 2, yaitu n pangkat dari 2 dikali prima Fermat yang berbeda.
  • Kode: perpotongan dua lingkaran dari a=(r_1^2-r_2^2+d^2)/(2d) dan h=√(r_1^2-a^2); max(h², 0) dan toleransi.

Glosarium: istilah penting

Lukisan geometri
Bangun yang digambar hanya dengan penggaris tanpa skala dan jangka, dengan setiap titik baru berupa perpotongan garis dan lingkaran yang sudah digambar.
Penggaris tanpa skala
Penggaris tanpa tanda apa pun, hanya dipakai untuk menarik garis lurus melalui dua titik.
Garis sumbu
Garis yang membagi sebuah ruas garis menjadi dua sama panjang dengan sudut siku-siku; setiap titik padanya sama jauh dari kedua ujung.
Garis bagi sudut
Sinar dari titik sudut sebuah sudut yang membaginya menjadi dua sudut sama besar.
Belah ketupat
Segi empat dengan empat sisi sama panjang; diagonalnya saling membagi dua secara siku-siku dan membagi dua sudutnya.
Bilangan yang dapat dikonstruksi
Bilangan yang dapat dibuat sebagai panjang dari panjang satuan dengan penggaris dan jangka; ia diperoleh dari 1 dengan menambah, mengurangi, mengalikan, membagi, dan menarik akar kuadrat.
Derajat sebuah bilangan
Derajat terkecil polinomial berkoefisien bilangan bulat yang memiliki bilangan itu sebagai akar; bilangan yang dapat dikonstruksi berderajat pangkat dari 2.
Prima Fermat
Bilangan prima berbentuk 2 pangkat 2^k, ditambah 1; hanya lima yang diketahui: 3, 5, 17, 257, dan 65537.
Fungsi totien Euler
Banyaknya bilangan bulat dari 1 sampai n yang tidak memiliki faktor persekutuan dengan n, ditulis phi dari n.
Neusis
Lukisan yang memakai penggaris dengan dua tanda, yang dapat membagi tiga sudut mana pun walaupun penggaris dan jangka biasa tidak dapat.

Pertanyaan yang sering diajukan

Alat apa yang diperbolehkan dalam lukisan geometri?

Hanya penggaris tanpa skala dan jangka. Penggaris menarik garis melalui dua titik, jangka menggambar lingkaran, dan titik baru hanya boleh dibuat di tempat garis dan lingkaran yang sudah digambar berpotongan.

Bagaimana mencari titik tengah ruas garis dengan jangka?

Gambar busur berjari-jari sama, lebih dari setengah ruas garis, di sekitar masing-masing ujung, sekali di atas dan sekali di bawah. Hubungkan kedua titik potong dengan penggaris; garis itu memotong ruas garis di titik tengahnya, dengan sudut siku-siku.

Bagaimana membagi dua sudut dengan jangka?

Gambar busur berpusat di titik sudut untuk memotong kedua kaki sudut, lalu gambar dua busur berjari-jari sama berpusat di kedua titik itu sehingga berpotongan di dalam sudut. Sinar dari titik sudut melalui titik potong itu membagi dua sudut.

Bagaimana melukis sudut 60 derajat?

Gambar ruas garis AB, lalu lingkaran berpusat di A melalui B dan berpusat di B melalui A. Keduanya berpotongan di C, dan segitiga ABC memiliki tiga sisi sama, sehingga setiap sudutnya 60 derajat. Sudut di A adalah sudut 60 derajat itu.

Bagaimana menyalin sudut dengan jangka dan penggaris?

Gambar busur yang sama di sekitar titik sudut lama dan yang baru, ukur tali busur sudut lama dengan jangka, dan tandai pada busur baru. Sinar melalui tanda itu membentuk sudut yang sama, karena kedua segitiga memiliki tiga sisi sama.

Sudut mana yang dapat dilukis dengan jangka dan penggaris?

Mulai dari 60 dan 90 derajat kita dapat membagi dua, menambah, dan mengurangi, dan dengan sudut segi lima 72 derajat kita mencapai setiap derajat bulat kelipatan 3. Satu derajat dan 20 derajat tidak dapat dilukis.

Mengapa sudut tidak dapat dibagi tiga dengan jangka dan penggaris?

Sepertiga 60 derajat memerlukan kosinus 20 derajat, yang merupakan akar polinomial kubik yang tidak dapat difaktorkan. Penggaris dan jangka hanya mencapai bilangan berderajat pangkat dari 2, dan 3 bukan, seperti dibuktikan Wantzel pada 1837.

Segi banyak beraturan mana yang dapat dilukis?

Segi banyak beraturan bersisi n dapat dilukis bila n adalah pangkat dari 2 dikali bilangan prima Fermat yang berbeda (3, 5, 17, 257, 65537). Jadi segitiga, persegi, segi lima, segi enam, segi delapan, dan segi tujuh belas dapat, tetapi segi tujuh dan segi sembilan tidak.

Referensi

  1. Euclid, translated by Thomas L. Heath (1956). Euclid's Elements (Books I, IV and VI). Dover.
  2. Richard Courant, Herbert Robbins (1996). What Is Mathematics? An Elementary Approach to Ideas and Methods (chapter III, geometrical constructions). Oxford University Press.
  3. Nicholas D. Kazarinoff (2003). The Ruler and the Round: Classic Problems in Geometric Constructions. Dover.
  4. Robin Hartshorne (2000). Geometry: Euclid and Beyond. Springer.
  5. Ian Stewart (2015). Galois Theory (chapter on geometric constructions). CRC Press.
  6. Pierre-Laurent Wantzel (1837). Recherches sur les moyens de reconnaître si un problème de géométrie peut se résoudre avec la règle et le compas. Journal de Mathématiques Pures et Appliquées 2.
  7. Carl Friedrich Gauss (1801). Disquisitiones Arithmeticae (section VII, the division of the circle). Gerhard Fleischer.