2013-02-14 6 views
0

J'ai du mal à manipuler la distance entre deux points. Compte tenu des coordonnées x y z pour A et B, et connaissant leur distance, comment puis-je augmenter ou diminuer cette distance en gardant l'angle entre les 2 points?manipuler la distance entre deux vecteurs

Say point A est à 0, 0, 0 et le point B est à 3, 3, 0.

Il est possible de calculer la distance entre les deux points pour être 4,242.

Je dois être capable de "pousser" le point B plus loin sur la même tangente par X. Des idées?

Merci d'avance.

+1

Cant vous multiple chaque coordonnée de B avec le même scalaire? – smk

+0

Je suis d'accord avec @SajitKunnumkal, si vous multipliez le vecteur par un scalaire, sa direction devrait être préservée. – gustavodidomenico

+0

@SajitKunnumkal qui ne fonctionne que si le point A est l'origine. Sinon, une multiplication scalaire de B changera l'angle entre A et B. – Celada

Répondre

2
  • Soustraire A de B pour obtenir le vecteur D représentant la distance et la direction de A à B

    D = B - A 
    
  • Multiplier D par votre scalaire x pour pousser plus loin A dans la même direction: (Je change votre X en pour souligner que c'est un scalaire).

    D' = xD 
    
  • Accéder au nouveau point B' qui est dans la même direction à partir de A que B est, mais est plus loin (en supposant x > 1):

    B' = A + D'