Saya menemukan posting ini:

masukkan deskripsi gambar di sinihttps://pythongraphicgames.wordpress .com/tag/curved-line/) dan saya bertanya-tanya algoritma interpolasi apa yang digunakan Tkinter untuk membuat kurva. Kubik? pertapa? Kosinus? dan apakah ada cara saya bisa menentukan ini?

0
Bhavye Mathur 10 Juli 2020, 17:56

1 menjawab

Jawaban Terbaik

Ini menggunakan algoritma bezier.

Objek garis dan poligon memiliki opsi smooth untuk mengontrol perataan. Inilah yang dokumentasi kanonik tentang opsi itu:

-smooth smoothMethod : smoothMethod harus memiliki salah satu formulir yang diterima oleh Tcl_GetBoolean atau metode pemulusan garis. Hanya true dan raw yang didukung di inti (dengan bezier menjadi alias untuk true), tetapi lebih banyak lagi yang bisa ditambahkan pada saat runtime. Jika nilai salah boolean atau string kosong diberikan, tidak ada pemulusan yang diterapkan. Nilai kebenaran boolean mengasumsikan pemulusan yang benar. Jika metode pemulusan benar, ini menunjukkan bahwa garis harus digambar sebagai kurva, dirender sebagai satu set spline kuadrat: satu spline digambar untuk segmen garis pertama dan kedua, satu untuk segmen garis kedua dan ketiga, dan seterusnya. Segmen garis lurus dapat dihasilkan dalam kurva dengan menduplikasi titik akhir dari segmen garis yang diinginkan. Jika metode pemulusan mentah, ini menunjukkan bahwa garis juga harus digambar sebagai kurva tetapi di mana daftar koordinat sedemikian rupa sehingga pasangan koordinat pertama (dan setiap pasangan koordinat ketiga setelahnya) adalah simpul titik pada kurva Bezier kubik, dan koordinat lainnya adalah titik kontrol pada kurva Bezier kubik. Segmen garis lurus dapat dihasilkan dalam kurva dengan membuat titik kontrol sama dengan titik simpul tetangganya. Jika titik terakhir merupakan titik kontrol dan bukan titik simpul, maka titik tersebut diulangi (satu atau dua kali) sehingga juga menjadi titik simpul.

1
Bryan Oakley 10 Juli 2020, 15:14