Jak znaleźć punkt na linii?

11

Mam dwa punkty (A, B) i długość d. Jak mogę znaleźć punkt C?

przykład

eempee
źródło

Odpowiedzi:

26

Obliczyć wektor Vod Ado B, i znormalizować go.

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

Ponieważ wektor jest znormalizowany, będzie miał długość jeden i wskaże kierunek Bwzględem A. Jeśli następnie przeskalujesz wektor o d, będziesz miał przemieszczenie od AdoC

V' = d * V

które możesz po prostu dodać, Aaby uzyskać C:

C = V' + A
sam hocevar
źródło
btw: czy ktoś mógłby mi polecić książkę, w której mogę dowiedzieć się czegoś takiego? :)
eempee
Podkład 3D Math jest dobry: amazon.com/Primer-Graphics-Development-Wordware-Library/dp/… .
Ricky AH,
Nie czytać to jedno, ale powiedziano mi, że jest również bardzo dobra amazon.com/Mathematics-Programming-Computer-Graphics-Second/dp/...
Ricky AH
btw to ostatnie kilka kroków w algorytmach przecięcia promienia: obliczasz
jhocking
1

W przypadku gdy twój d jest stosunkiem zamiast długości, np. 0,5 stawia go w równej odległości od A i B, możesz wykonać następujące czynności i uniknąć normalizacji:

C = A * (1 - ratio) + B * ratio
Musi
źródło