(Hampir) Menghasilkan warna secara otomatis

Pada 8 Maret, saya menerapkan gambar permukaan otomatis dengan splines - mengapa tidak menulis artikel dengan warna.

Ternyata sesuatu seperti ini:



Akan ada lebih banyak di bawah cut, urus lalu lintas.

Algoritma yang membuat kurva kubik telah dijelaskan sebelumnya . Di sini kita akan mencoba menerapkannya untuk mendapatkan sesuatu yang seperti bunga. Satu-satunya masalah adalah bagaimana memilih input data.
Data input adalah satu set titik dengan koordinat dalam ruang tiga dimensi dan satu set koneksi di antara mereka, sehingga secara topologis desain ini harus setara dengan kotak, seperti ini:



(pada akhirnya itu harus seperti ini :)



Sehingga permukaan kubik ketika dikencangkan pada inti terlihat seperti bunga , perlu untuk mengatur titik-titik simetris pada lingkaran yang dibatasi di sekitar pusat bunga. Untuk mengatasi masalah ini, variasi "pencarian pertama kali" diterapkan.

Tetapkan untuk semua titik berat. Pertama, kami menetapkan bobot 0 dan 1 ke titik ekstrim (dua bobot identik tidak boleh dekat). Ini akan menjadi tepi "kelopak", 0 - paling jauh, 1 - terdekat ("kelopak" dalam tanda kutip, karena tidak ada pembagian ke dalam kelopak seperti itu). Timbang lebih lanjut dengan menetapkan bobot n + 2 untuk tetangga yang tidak berbobot dengan bobot n.

Kotak



berbobot : Selanjutnya, pilih secara acak jarak r dari pusat bunga untuk setiap kategori berat.
Logikanya di sini adalah sebagai berikut: semakin besar bobotnya, semakin dekat titik tersebut perlu dipindahkan ke pusat, dan ketidaksetaraan harus dipenuhi:

r0>r2>r4>...>r2n;  r1>r3>...>r2n+1;  r0>r1


di mana r adalah jarak dari pusat bunga ke titik dengan berat yang sesuai. Bahkan bobot bertanggung jawab atas bagian tengah "kelopak", bobot aneh bertanggung jawab atas tepi "kelopak".

Untuk mengatur titik pada lingkaran (dan bukan pada bola), kita juga harus memilih koordinat z secara acak sedemikian rupa sehingga z_n <r_n (jika pusat bunga berada pada koordinat nol).



Pada langkah berikutnya, kita perlu mengetahui sudut untuk lokasi titik pada lingkaran:

edenganldan mn-untuktentangldanhedengantditentang ttentangheuntuk dengan diedengantentangm n,ttentang αn=2π/mn


dan kemudian koordinat untuk titik ke-i dari berat n, jika itu genap:

xsaya=rn2-zn2cHais(sayaαn)


ysaya=rn2-zn2ssayan(sayaαn)


untuk ganjil:

xsaya=rn2-zn2cHais(sayaαn+αn/2)


ysaya=rn2-zn2ssayan(sayaαn+αn/2)


Selain itu, urutan pengambilan poin penting - urutannya haruslah "tetangga".



Setelah semua manipulasi ini, struktur berbentuk bintang diperoleh dimana splines dapat ditarik.

(tampilan atas, isometry, splines)





Sepal tersebut dapat diacak menjadi 100.500, tetapi untuk memilih yang sesuai, untuk membuat beberapa bunga, untuk memilih warna dan parameter inti lebih baik secara manual, oleh karena itu, generasi bersifat semi-otomatis.

(tampilan perangkat lunak perakitan)













Selamat atas Hari Perempuan Internasional untuk separuh indah dari habrasociety! Saya harap kamu cantik.

All Articles