Bagaimana cara menemukan titik pada sebuah garis?

11

Saya memiliki dua poin (A, B) dan panjang d. Bagaimana saya bisa menemukan titik C?

contoh

eempee
sumber

Jawaban:

26

Hitung vektor Vdari Amenjadi B, dan normalkanlah.

V = (B - A) / |B - A|

Karena vektor dinormalisasi, ia akan memiliki panjang satu, dan itu akan menunjukkan arah Brelatif ke A. Jika Anda kemudian skala vektor oleh dAnda akan memiliki perpindahan dari AkeC

V' = d * V

yang bisa Anda tambahkan ke Auntuk menghasilkan C:

C = V' + A
sam hocevar
sumber
btw: ada yang bisa merekomendasikan saya buku di mana saya bisa belajar tentang hal-hal seperti itu? :)
eempee
3D Math primer adalah yang bagus: amazon.com/Primer-Graphics-Development-Wordware-Library/dp/… .
Ricky AH
Tidak membaca yang satu ini, tetapi saya telah diberitahu bahwa itu juga amazon yang bagus.com/Mathematics-Programming-Computer-Graphics-Second/dp/…
Ricky AH
btw ini adalah beberapa langkah terakhir dalam algoritma interseksi sinar: Anda mengetahui seberapa jauh di sepanjang sinar titik persimpangan, dan kemudian Anda mendapatkan koordinat titik geomalgorithms.com/a05-_intersect-1.html#Plane-Intersections
jhocking
1

Jika d Anda adalah rasio dan bukan panjang, mis. 0,5 menempatkannya pada jarak yang sama dari A dan B, Anda dapat melakukan hal berikut dan menghindari normalisasi:

C = A * (1 - ratio) + B * ratio
Mussi
sumber