Saya mencari persamaan yang paling diminimalkan untuk menemukan koordinat pusat dan jari-jari dari tetrahedron circumsphere diberikan empat 3D poin.
Apa yang saya temukan di internet terutama berhubungan dengan lingkaran segitiga 3D datar, atau beberapa definisi matematika kasar, atau beberapa kasus yang sangat tunggal seperti tetrahedron biasa. Lagi pula saya berhasil menemukan persamaan di bawah ini tetapi saya melewatkan sesuatu:
-> -> ->
let d1, d2, and d3 three vectors of any face of the triangle :
| d1x d1y d1z | | x | | d1^2 |
2 * | d2x d2y d2z | * | y | = | d2^2 |
| d3x d3y d3z | | z | | d3^2 |
Pengetahuan saya di bidang ini memiliki batas tetapi saya pikir saya bisa menangani operasi matriks dan vektor. Tetapi apakah bagian yang tepat dari persamaan kuadrat dari norma masing-masing vektor? (yang menjadi vektor). Apakah persamaan itu valid? Apakah hanya penulis yang dengan malas lupa menulis | d1 | ^ 2? Atau Apakah itu cara umum untuk mendefinisikan beberapa properti matematika.
PS: Ini untuk implementasi Delaunay Triangulation. Persamaan (nomor 9) ada di tautan berikut: https://www2.mps.mpg.de/homes/daly/CSDS/t4h/tetra.htm
Jawaban:
Meskipun ini adalah utas kuno, saya pikir mungkin baik bagi anak cucu untuk memiliki sedikit referensi. Sumber rumus adalah dari Geometric Tools for Computer Graphics oleh Philip J. Schneider dan David H. Eberly. Sesuatu yang perlu diperhatikan, menurut teks
Seperti yang saya pahami isomorfisme , bisa ada beberapa arti berbeda ketika digunakan dalam geometri. Jika ia berarti isomorfik berkaitan dengan teori grafik, maka kode berikut harus berperilaku dengan benar, karena topologi tetrahedron apa pun adalah sama (K4, grafik lengkap). Saya menguji hasil fungsi terhadap wolfram alpha menggunakan berbagai permutasi dalam pemesanan simpul kanonik, dan saya tidak melihat perbedaan dalam hasilnya. Jika pemesanan terbukti menjadi masalah, saya sarankan memeriksa normal segitiga yang dibentuk oleh simpul V1, V2, V3 pada input ke fungsi ini, dan memperlakukan titik-titik seperti setengah ruang dengan tes titik-produk untuk mencari tahu jika segitiga itu menghadap ke jalan yang benar. Jika tidak, sederhana
std::swap
dari setiap dua dari simpul segitiga akan membalikkan arah normal dan Anda dapat melanjutkan. Tapi seperti yang saya katakan, saya tidak melihat perbedaan dengan berbagai permutasi.Berikut adalah kode yang diterjemahkan tanpa menggunakan matriks untuk menghindari kebingungan implementasi, ini cukup mudah;
sumber