Cara menggambar bintang (dan lainnya) dalam koordinat kutub

Pertanyaan tentang rumus poligon dalam koordinat kutub secara teratur muncul pada sumber daya tematik - dan tetap tanpa jawaban yang jelas. Dalam kasus terbaik, seseorang menemukan solusi melalui fungsi sisa - yang tidak "bersih" dari sudut pandang matematika, karena tidak memungkinkan melakukan transformasi analitik pada fungsi tersebut. Ternyata, matematikawan sejati terlalu sibuk memecahkan masalah milenium dan mencari bukti sederhana dari teorema Fermat untuk memperhatikan masalah dangkal tersebut. Untungnya, dalam hal ini, imajinasi lebih penting daripada pengetahuan, dan untuk menyelesaikan masalah ini Anda tidak perlu menjadi profesor ilmu topologi - pengetahuan setingkat sekolah sudah cukup.



Rumus poligon sama sisi dalam koordinat kutub terlihat sangat sederhana

ρ=cos⁑(2sinβˆ’1⁑(k)+Ο€m2n)cos⁑(2sinβˆ’1⁑(kcos⁑(nΟ•))+Ο€m2n)



dan memiliki parameter berikut:



Ο• adalah sudutnya;

n adalah jumlah simpul cembung;

m - menentukan berapa banyak simpul yang sisi-sisinya akan berada pada satu garis lurus. Nilai negatif juga diizinkan untuk itu - tanda akan menentukan ke arah mana bintang akan menekuk;

k - kekakuan - padak=0 kita mendapatkan lingkaran tanpa memperhatikan parameter lainnya, untukk=1 - poligon dengan garis lurus, pada nilai tengah dari0 sampai1 - angka perantara antara lingkaran dan poligon.



Dengan rumus ini, Anda dapat menggambar bintang dengan dua cara:



1)n=5,m=3





2) n=5/4,m=0 . Dalam hal ini, Anda perlu melakukan dua putaran, bukan satu:





Parameter m mempengaruhi poligon sebagai berikut (di sini berubah dari -1 menjadi 5):





Parameter k dalam animasi:





Bentuk dan modifikasi yang kompleks



Anda dapat menulis ulang rumus aslinya dalam bentuk yang kompleks, dan, meskipun terdapat satuan imajiner di dalamnya, nilai jari-jari tetap valid:



ρ=41/n(1βˆ’k2+ik)βˆ’1/n(1+(1βˆ’k2+ik)2/neiΟ€mn)(1βˆ’k2cos2⁑(nΟ•)+ikcos⁑(nΟ•))1/n41/n+eiΟ€mn(21βˆ’k2cos2⁑(nΟ•)+2ikcos⁑(nΟ•))2/n



Pada pandangan pertama, ini mungkin tampak tidak berguna, karena rumusnya menjadi sedikit lebih rumit - tetapi jangan langsung menyimpulkan. Pertama, tidak ada garis busur di dalamnya, yang sepenuhnya mengubah makna matematika rumus dan memungkinkan Anda untuk melihat secara berbeda konstruksi poligon berbintang. Kedua, dapat juga digunakan untuk mendapatkan rumus ringkas untuk kasus khusus, misalnyait(int)1/n1+(int)2/n . Ketiga (dan yang paling menarik), ini dapat dimodifikasi secara kreatif dan diperoleh bentuk lain yang tidak terduga. Agar kemunculan komponen imajiner yang mungkin pada jari-jari tidak menimbulkan ambiguitas dalam perhitungan, maka dapat langsung direduksi menjadi koordinat Kartesius dengan mengalikannya denganeiΟ• . Berikut contoh beberapa modifikasinya:



(βˆ’1)2/3eiΟ•(icos⁑(3Ο•)+sin2⁑(3Ο•))1/3(βˆ’1)2/3+22/3(icos⁑(3Ο•)+sin2⁑(3Ο•))2/3





eiΟ•icos⁑(2Ο•)+sin2⁑(2Ο•)ei/2+2(icos⁑(2Ο•)+sin2⁑(2Ο•))3/2





e14i(4Ο•+Ο€)2(βˆ’1)1/4cos⁑(2Ο•)+sin2⁑(2Ο•)βˆ’1βˆ’i



Seperti yang mungkin Anda perhatikan, rotasi vektor tidak lagi seragam - dan justru karena kemunculan komponen imajiner dalam jari-jari.



Paha depan dan sebagainya



Rumus kami memiliki kasus khusus yang luar biasa - kotak, yang rumusnya dapat ditulis sebagai

ρ=22+2+2cos⁑(4Ο•)



atau

ρ=21+1βˆ’sin2⁑(2Ο•)



(pilih mana yang paling Anda sukai).



Dalam kasus yang sedikit lebih berkembang, Anda dapat menentukan angka perantara antara lingkaran dan persegi melalui sebuah titik di pesawat(k,k)

ρ=21+1βˆ’(2k2βˆ’1)sin2⁑(2Ο•)k4





Anda juga dapat menambahkan variasi pada bentuk-bentuk ini sambil mempertahankan kondisi saat mereka melewati titik (k,k) - memodulasi secara langsung parameter itu sendiri ktergantung pada sudutnya sehingga ketika melewati diagonal, pengali nya sama dengan satu. Misalnya, menggantik fungsi k1βˆ’zcos2⁑(2Ο•), kami akan mendapatkan parameter tambahan zyang dengannya tikungan tambahan dapat disesuaikan. Secara khusus, untukz=1/4 Anda mendapatkan yang berikut:







Dalam kasus yang lebih luas, Anda tidak hanya dapat mendefinisikan persegi, tetapi persegi panjang, dan masih dalam koordinat kutub:

ρ=4a2b2((b2βˆ’a2)cos⁑(2Ο•)+a2+b2)(1βˆ’4a2b2ksin2⁑(2Ο•)((b2βˆ’a2)cos⁑(2Ο•)+a2+b2)2+1)



Dan bahkan menghitung luasnya (melalui integral elips):

S=4ab(kβˆ’1)K(k)+E(k)k

Catatan
k (0 1) , Ο€ab 4ab.


Ini akan memungkinkan pembuatan profil dengan transisi dari lingkaran ke persegi panjang dengan area bagian yang terkontrol. Di sini luasnya konstan:





Dan di sini luasnya berkembang secara eksponensial:





Pergi ke koordinat Cartesian



Rumus apa pun dalam koordinat kutub dapat diekspresikan melalui persamaan dalam koordinat Cartesian, dan setidaknya dalam dua cara - bergantung pada bentuk gradien di tepi gambar yang akan berubah. Untuk melakukan ini, cukup dengan menghitung sudut melalui arktangen koordinat dan membawa rumus ke konstanta melalui vektor jari-jari dengan mengurangi

0=x2+y2βˆ’cos⁑(2sinβˆ’1⁑(k)+Ο€m2n)cos⁑(2sinβˆ’1⁑(kcos⁑(ntanβˆ’1⁑(x,y)))+Ο€m2n)



atau divisi

1=x2+y2cos⁑(2sinβˆ’1⁑(kcos⁑(ntanβˆ’1⁑(x,y)))+Ο€m2n)cos⁑(2sinβˆ’1⁑(k)+Ο€m2n)



Pilihan kedua lebih disukai karena memberikan gradien lurus di sepanjang sisi poligon.



Catatan
, (0,0) - β€” , , ( βˆ’cos⁑(2sinβˆ’1⁑(k)+Ο€m2n)sec⁑(2sinβˆ’1⁑(kcos⁑(Ο€n2))+Ο€m2n) ).



cos⁑(ntanβˆ’1⁑(x,y)) (x+iy)n+(xβˆ’iy)n2(x2+y2)n/2, A034839.


Nilai rumus dari ruas kanan persamaan (dalam kasus ke-2) akan berubah dari 0 sebelum 1 jika titik (x,y) masuk ke dalam gambar, dan dari 1ad infinitum - jika tidak. Dengan memilih fungsi berbeda untuk mengubahnya menjadi kecerahan, Anda bisa mendapatkan opsi rasterisasi yang berbeda. Untuk eksponen (eβˆ’xβˆ’1 untuk yang pertama dan eβˆ’x untuk opsi kedua) kami dapatkan

atau, jika dengan saturasi



Filter low pass klasik dapat digunakan 11+xp, di mana p- urutan filter, yang menentukan tingkat atenuasi.



Untuk opsi pertama:



Dan untuk yang kedua:



Anda juga dapat menggunakan fungsi kontinu pemenggalan dengan menetapkan batas interpolasi secara eksplisit.



Selain rasterisasi seperti itu, Anda juga dapat mengatur deformasi - misalnya, memampatkan papan catur menjadi lingkaran:





Atau bahkan menariknya ke atas bola:

Rumus

x=u21+|u2βˆ’v2u2+v2|



y=v1+2|u2βˆ’v2u2+v2|



z=1βˆ’12u2(1+|u2βˆ’v2u2+v2|)βˆ’12v2(1+|u2βˆ’v2u2+v2|)





Lampiran: bagaimana rumus itu diturunkan



Gaya mendongeng klasik dalam teks matematika terdiri dari pergantian lemma / teorema dan buktinya - seolah-olah pernyataan yang dapat dibuktikan muncul di kepala penulis oleh wahyu dari atas. Dan meskipun ada beberapa kebenaran dalam hal ini, lebih sering kemunculan formula didahului oleh beberapa pekerjaan penelitian, yang uraiannya dapat memberikan pemahaman yang lebih besar tentang maknanya daripada bukti formal; dan kesetiaan pernyataan, pada gilirannya, dapat dilacak melalui ketepatan langkah-langkah yang mengarah ke pernyataan tersebut.



Jadi di sini juga - jika artikel dimulai dengan rumus dalam bentuk yang kompleks, maka tampilannya akan menjadi tidak jelas dan kontra-intuitif, dan properti yang dideklarasikan akan memerlukan bukti tambahan. Tetapi dalam bentuk pencatatan trigonometri, sejarah kemunculannya sangat mungkin untuk dilacak.



1) kita mulai dengan kasus paling sederhana - tugas menggambar garis lurus dalam koordinat kutub. Untuk melakukan ini, Anda harus menyelesaikan persamaannyarcos⁑(Ο•)=1yang solusinya jelas rβ†’sec⁑(Ο•)...





2) selanjutnya, argumen garis potong perlu "diulang" untuk memberikan ketegaran dalam garis lurus. Pada tahap inilah solusi lain menggunakan "peretasan kotor" dalam bentuk sisa pembagian. Ini juga menggunakan pengambilan berurutan dari fungsi sinus langsung dan terbalik -sinβˆ’1⁑(sin⁑(Ο•))





Pendekatan ini memungkinkan Anda untuk melakukan operasi matematika standar pada rumus yang dihasilkan,
misalnya
:

βˆ‚sinβˆ’1⁑(sin⁑(Ο•))βˆ‚Ο•=cos⁑(Ο•)1βˆ’sin2⁑(Ο•)







Berkat notasi yang sama, Anda dapat menyederhanakan fungsi persegi dalam koordinat kutub menjadi tampilan yang lebih estetis, menggunakan representasi fungsi trigonometri yang kompleks. Di Wolfram Mathematica, ini bisa dilakukan menggunakan fungsi TrigToExp dan ExpToTrig:



Kode
Sec[1/2 ArcSin[k Sin[2 \[Phi]]]]^2//TrigToExp//ExpToTrig//Sqrt[#]&//FullSimplify

↓

22+21βˆ’k2sin2⁑(2Ο•)



Berkat perekaman yang sama, Anda bisa mendapatkan gambar perantara yang mulus antara lingkaran dan persegi menggunakan pengganda tambahan kkarena argumen arcsine kurang dari satu - sinβˆ’1⁑(ksin⁑(Ο•)):





Dan agar fungsi tersebut memotong titik tertentu, Anda hanya perlu membuat persamaan dan menghitung ulang k:

21+1βˆ’kβ€²sin2⁑(Ο€2)=k



Kode
Solve[(Sqrt[2/(1+Sqrt[1-k Sin[2 \[Phi]]^2])] /. \[Phi]->Pi/4)==x, k] /. x->k

↓

kβ€²β†’4(k2βˆ’1)k4





3) parameter n dan mhanya ditambahkan dengan cara yang kreatif dan efeknya diselidiki secara eksperimental.



4) Persegi panjang mudah didapat dengan membuka tampilan parametrik dan "merentangkan" sumbu

x=acos⁑(t)21+1βˆ’sin2⁑(2t)



y=bsin⁑(t)21+1βˆ’sin2⁑(2t)



Tapi setelah itu t tidak lagi berarti sudut, sekarang tHanya merupakan parameter yang menggambarkan vektor melalui proyeksi ke sumbu koordinat. Untuk kembali ke koordinat kutub, Anda perlu mencari panjang vektor (melalui akar dari jumlah kuadrat), sudutnya (melalui arkangen rasio), menyatakan sudut ini melaluiΟ• dan gantikan ekspresi yang dihasilkan t...



Kode
With[{r = Sqrt[2/(1 + Sqrt[

1 - Sin[2 t]^2])]}, {Sqrt[(a r Cos[t])^2 + (b r Sin[t])^2],

ArcTan[(b r Sin[t])/(a r Cos[t])]}] // Simplify


↓

{2a2cos2⁑(t)+b2sin2⁑(t)cos2⁑(2t)+1,tanβˆ’1⁑(btan⁑(t)a)}





Solve[ArcTan[(b Tan[t])/a]==\[Phi], t]

↓

tβ†’tanβˆ’1⁑(atan⁑(Ο•)b)





Sqrt[2] Sqrt[(a^2 Cos[t]^2 + b^2 Sin[t]^2)/(1 + Sqrt[Cos[2 t]^2])]

/. t -> ArcTan[(a Tan[\[Phi]])/b] // Simplify


↓



2a2b2sec2⁑(Ο•)(a2tan2⁑(Ο•)+b2)(cos2⁑(2tanβˆ’1⁑(atan⁑(Ο•)b))+1)



Untuk menyederhanakan rumus seperti itu sudah lebih sulit, dan ini membutuhkan beberapa tahapan:



  1. pergi ke koordinat kartesius dengan mengganti Ο•β†’tanβˆ’1⁑(x,y);
  2. pergi ke bentuk eksponensial;
  3. menyederhanakan;
  4. lakukan penggantian terbalik xβ†’cos⁑(Ο•) dan yβ†’sin⁑(Ο•);
  5. kembali ke bentuk eksponensial;
  6. menyederhanakan.


Hasilnya, kami mendapatkan rumus berikut:



Kode
Sqrt[2] Sqrt[(a^2 b^2 Sec[\[Phi]]^2) /

((1 + Sqrt[Cos[2 ArcTan[(a Tan[\[Phi]])/b]]^2])

(b^2 + a^2 Tan[\[Phi]]^2))] /. \[Phi] -> ArcTan[x, y]

// TrigToExp // Simplify

// # /. {x -> Cos[\[Phi]], y -> Sin[\[Phi]]} &

// TrigToExp // Simplify // FullSimplify


↓

2a2b2((b2βˆ’a2)cos⁑(2Ο•)+a2+b2)(1+((a2+b2)cos⁑(2Ο•)βˆ’a2+b2)2((b2βˆ’a2)cos⁑(2Ο•)+a2+b2)2)









Kesimpulan



Seperti yang Anda lihat, bahkan dalam hal yang sederhana dan dangkal seperti poligon, Anda dapat menemukan dan menghasilkan sesuatu yang baru. Dan ceritanya tidak berakhir di situ - rumus luas untuk kasus umum tetap tidak diketahui, rumus untuk sembarang, bukan hanya poligon biasa tetap tidak diketahui, dan perluasan ke deret pangkat dan trigonometri dibiarkan tanpa pertimbangan. Juga, mungkin, ada jenis rumus yang serupa untuk kasus 3 dimensi.



Oleh karena itu, jika Anda diberitahu bahwa segala sesuatu dalam matematika telah ditemukan dan hanya ada masalah yang berada di luar pemahaman orang biasa - jangan percaya. Ada banyak masalah praktis murni yang tidak disadari oleh matematikawan sejati, atau mereka tidak tertarik dengan solusinya karena kurangnya hype yang memadai di sekitar mereka, atau karena mereka sudah memiliki gambaran kasar tentang cara mencapainya untuk solusi mereka. Jangan takut untuk menangani masalah yang solusinya tidak tersedia di Wikipedia, jangan takut untuk mempublikasikan solusi mereka, dan jangan takut untuk membaca komentar di bawah artikel tentang ketidakgunaan segalanya.



PS unduh dokumen asli untuk Mathematica di sini .



All Articles