Comment trouver un point sur une ligne?

11

J'ai deux points (A, B) et la longueur de d. Comment trouver le point C?

exemple

eempee
la source

Réponses:

26

Calculez un vecteur Vde Aà Bet normalisez-le.

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

Puisque le vecteur est normalisé, il aura une longueur de un et il indiquera la direction de par Brapport à A. Si vous redimensionnez ensuite le vecteur, dvous aurez le déplacement de AàC

V' = d * V

que vous pouvez simplement ajouter Apour donner C:

C = V' + A
sam hocevar
la source
btw: quelqu'un pourrait-il me recommander un livre où je pourrais en apprendre davantage sur des choses comme ça? :)
eempee
L'amorce 3D Math est une bonne: amazon.com/Primer-Graphics-Development-Wordware-Library/dp/… .
Ricky AH
Je n'ai pas lu celui-ci, mais on m'a dit que c'était aussi très bien amazon.com/Mathematics-Programming-Computer-Graphics-Second/dp/…
Ricky AH
Voici les deux dernières étapes des algorithmes d'intersection de rayons: vous déterminez à quelle distance le point d'intersection est le long du rayon, puis vous obtenez les coordonnées du point geomalgorithms.com/a05-_intersect-1.html#Plane-Intersections
jhocking
1

Dans le cas où votre d est un rapport au lieu d'une longueur, par exemple 0,5 le place à égale distance de A et B, vous pouvez faire ce qui suit et éviter une normalisation:

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