Sepertinya pertanyaan yang cepat dan mudah tetapi saya belum dapat menemukan apa yang saya cari:
Bagaimana cara menghitung vektor panjang satuan yang menunjuk sepanjang garis yang persis 50% dari sudut dua segmen garis yang terhubung?
Sebuah gambar berbicara ribuan kata (yang juga lebih baik daripada penjelasan saya!)
Jadi pada dasarnya saya ingin menghitung vektor satuan biru mengingat dua segmen garis merah (yang sebenarnya 3 poin dan karenanya dijamin akan terhubung)
Segmen merah memiliki panjang sewenang-wenang, dan hasilnya tidak harus berupa unit, itu hanya akan lebih mudah bagi saya.
Ini juga akan berguna untuk memiliki cara untuk memaksa vektor yang dihasilkan untuk menunjuk ke arah tertentu (relatif terhadap segmen input), ini tidak penting karena saya pikir saya dapat mengerjakan yang ini - karena segmen jalur input pada akhirnya terbentuk sebuah n-gon.
Setiap contoh akan ideal di C ++, tetapi bahasa lain menyambut.
Terima kasih banyak untuk petunjuk apa pun.
sumber
Saya pikir Anda bisa mendapatkan arah agar konsisten dengan memperlakukan ini seolah-olah Anda menghasilkan vertex 2D normal. Itu adalah:
Ambil masing-masing vektor merah, tukar komponen x dan y dan negasikan salah satunya untuk membuat normals.
Normalisasi mereka.
Jumlahkan kedua vektor itu, dan renormalkan kembali.
Anda mungkin juga ingin menguji untuk kasus di mana dua garis merah saling tumpang tindih - renormalisasi akhir akan mencoba untuk membagi dengan nol di sana.
sumber
Biarkan A dan B menjadi vektor Anda:
Vektor penjumlahan tidak harus berupa vektor satuan tetapi panjangnya hanya sama, jika | A | > = | B |, Anda dapat:
yang lebih stabil secara numerik karena Anda hanya memiliki sebagian kecil dan penyebut yang lebih besar
Hasil yang sama dapat diperoleh dengan substraksi, sekali lagi vektor harus sama panjangnya
Ini hanya berfungsi untuk sudut non-cembung; Anda dapat dengan mudah menguji apakah sudut Anda cembung dan kalikan H dengan -1
sumber