Saya memiliki satu set poin 3D (yang saya pulihkan dari perpustakaan yang melakukan penghentian benda padat) yang termasuk dalam kurva (yaitu, tepi benda padat). Itu berarti bahwa kurva pasti melewati masing-masing titik ini.
Namun demikian, set titiknya tidak berurutan jadi saya perlu mengurutkannya agar dapat menggambar kurva ini dengan benar.
Apakah ada pendekatan yang diketahui untuk jenis masalah ini?
Beberapa informasi tambahan:
- Kurva bersifat parametrik secara umum (splines / bezier, irisan lingkaran ..).
- Poin diberikan sebagai koordinat floating point.
- Poin-poinnya dikemas sangat padat (tetapi mereka bisa sepadat yang saya inginkan). Untuk memberi Anda gambaran, untuk kurva yang menempati 19 unit di x, 10 unit di x dan 5 unit di z, saya kutip urutan poin dalam segmen kurva: (20.7622, 25.8676, 0) (20.6573, 25.856, 0) (20.5529, 25.8444, 0) (20.4489, 25.8329, 0) (20.3454, 25.8213, 0)
Jawaban:
Anda memiliki contoh masalah yang disebut rekonstruksi kurva dari titik yang tidak terorganisir . Sekarang Anda tahu apa yang harus dicari, Anda akan menemukan beberapa metode, seperti kerak, kerak-NN, dll. Berikut adalah beberapa tautan:
Applet Rekonstruksi Kurva Kerak
Rekonstruksi Kurva oleh Tamal Dey
Rekonstruksi Kurva dan Permukaan: Algoritma dengan Analisis Matematika , buku karya Tamal K. Dey, Cambridge University Press, 2006
Karena Anda berurusan dengan kurva dan sampelnya padat, saya sarankan Anda menghitung pohon spanning minimal Euclidean.
sumber
Setelah beberapa klarifikasi, mungkin ada pendekatan yang jauh lebih baik yang bahkan tidak perlu mengetahui bentuk parametrik kurva, dan juga menghindari langkah minimisasi numerik yang berpotensi bermasalah.
Jika kurva tidak berpotongan sendiri dan titik-titik cukup padat pada kurva (dan maksud saya mereka harus lebih dekat daripada dua titik pada kurva yang bukan milik segmen yang sama, misalnya oleh pembungkus kurva sekitar sendiri), maka Anda dapat dengan mudah menentukan titik sebelumnya dan berikutnya untuk setiap sampel:
sumber
sumber