Як знайти точку на прямій?


11

У мене дві точки (А, В) і довжина d. Як я можу знайти точку С?

приклад

Відповіді:


26

Обчисліть вектор Vвід Aдо Bта нормалізуйте його.

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

Оскільки вектор нормалізується, він матиме довжину одиниці, і він буде вказувати напрямок Bвідносно A. Якщо потім масштабувати вектор, dви матимете зміщення від AдоC

V' = d * V

яку ви можете просто додати, щоб Aотримати урожай C:

C = V' + A

btw: хто-небудь міг порекомендувати мені книгу, де я можу дізнатися про подібні речі? :)
eempee

3D-математичний праймер хороший: amazon.com/Primer-Graphics-Development-Wordware-Library/dp/… .
Рікі АЧ

Я не читав цього, але мені сказали, що це теж непогано amazon.com/Matematics-Programming-Computer-Graphics-Second/dp/…
Ricky AH

1
Дивіться це питання: gamedev.stackexchange.com/questions/1210 / ...

btw - це останні кілька кроків алгоритмів перетину променів: ви з'ясовуєте, наскільки далеко знаходиться промінь точки перетину, а потім отримуєте координати точки geomalgorithms.com/a05-_intersect-1.html#Plane-Intersections
поштовх

1

Якщо ваш d є співвідношенням замість довжини, наприклад 0,5 ставить його на рівну відстань від A і B, ви можете зробити наступне і уникнути нормалізації:

C = A * (1 - ratio) + B * ratio
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.