1. Registered User
Join Date
Apr 2011
Posts
27

Vector & magnitude

Hi all,
I can't figure out this math problem. I have two points p1(30, 20) and p2(30, 221) and the parametric equation of the vector is
(x-30)/(30-30)=(y-20)/(20-221)=t
x=30, y=20-201*t

I'm thinking t is the magnitude or the distance. For a point P which is 10 pixels away from p1 on the vector,
x=30, y=20-201*-10 (should be around -0.85) which is not the right P i'm looking for. Where am i doing wrong?

TIA
-s
Last edited by seanad; 11-21-2011 at 11:39 PM.

2. Registered User+
Join Date
Aug 2007
Posts
3,767
Not really a programming question, but I'll give you a few points anyway. (x-30)/0 = (y-20)/(20-221) = t is not a parametric equation of that line.
201 in the y direction would be the vector from p1 to p2 with a magnitude of 201, and a direction of +y.
When parameterising a line, t will go from some value to another value (normally 0 to 1), and every value of t will give a distinct point on the line joining the two points.
The correct parametric equation would be:
x = 30, y = 20 + 221*t for 0 <= t <= 1 or y = 20+t for 0 <= t <= 221 (i.e., p the distance in pixels).

3. Registered User
Join Date
Oct 2010
Location
Versailles, France
Posts
1,290
Without division by 0, all the points P of the line P1, P2 are given by (1-t)*P1(30,20) + t* P2(30,201) (t=0 give P1 and t=1 give P2) !
Then P(xp1*(1-t)+xp2*t, yp1*(1-t)+yp2*t) (30,20+181*t in your case).
If you want, not t, but the distance in pixels, you have only to replace t with k*d, so that d takes the value Math.sqrt((xp1-xp2)&#178;+(yp1-yp2)&#178 (181 in your case) when t=1.

Then, in general case (if P1!=P2), k=1/Math.sqrt((xp1-xp2)&#178;+(yp1-yp2)&#178; and P (at the distance d from P1) is given by (xp1*(1-k*d)+xp2*k*d, yp1*(1-k*d)+yp2*k*d) !
Last edited by 007Julien; 11-22-2011 at 08:23 AM.

4. Registered User
Join Date
Apr 2011
Posts
27
Thank you!