Adakah yang tahu cara membuat algoritma yang mampu membuat gambar seperti di gambar, ketika diberi satu set poin tertentu (array 3D)
Adakah yang tahu cara membuat algoritma yang mampu membuat gambar seperti di gambar, ketika diberi satu set poin tertentu (array 3D)
Jawaban:
Datang ke sini setelah pertempuran, tetapi karena belum ada jawaban yang diterima dan melihat bahwa @ Lukas menolak untuk mendapatkan perwakilan yang layak, berikut adalah ringkasan singkat dari tautan yang ia berikan.
Jadi algoritma lengkap tersedia di sini:
http://blog.andreaskahler.com/2009/06/creating-icosphere-mesh-in-code.html
Idenya adalah untuk bootstrap jala Anda dengan metode sederhana yang memberi Anda bola dengan 20 wajah, dan kemudian memperbaikinya sampai Anda puas.
Anda mulai dengan icosahedron . Seperti yang dikatakan artikel wikipedia, Anda dapat memperoleh simpul dengan menggambar tiga persegi panjang yang identik dan ortogonal. Anda memiliki 3 persegi panjang dengan masing-masing 4 sudut -> 12 simpul.
Ilustrasi Wikipedia:
Misalnya, titik rencana Z adalah (a, b adalah panjang persegi panjang):
Sekarang Anda masih harus menemukan 20 wajah. Ini dibiarkan sebagai latihan untuk pembaca: hal
Sekarang Anda memiliki bola dasar, Anda mungkin ingin menambahkan poligon. Anda melakukannya dengan algoritma sederhana ini:
for each iteration:
# each iteration multiplies by 4 the number of faces
for each edge at the current iteration:
split the edge in two
replace the middle point on the sphere
Untuk menemukan titik tengah, kami mengira bahwa kami ingin membuat unit sphere (tengah (0, 0, 0), radius 1).
middlePoint(p1, p2):
middle = Point((p1.X + p2.X / 2), # same for y, z)
radius = sqrt(middle.X^2, middle.Y^2, middle.Z^2)
return Point(middle.X / radius, # same for y, z)
Pada setiap iterasi, kita mungkin harus merekonstruksi wajah, tetapi itu cukup mudah. Setiap wajah dibagi menjadi empat: