Jump to content
  • Advertisement
Sign in to follow this  

Parametric Line Problem

This topic is 2085 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi guys, I have three 2D points P1, P2, P3 on a line, I want to see if P3 is before P1, between P1 and P2, or after P2. I'm pretty sure I can use the parametric line formula but I don't know how to set it up to compute the t for P3.


P1 would be at t=0

P2 would be at t=1


...then all I need is the t for P3. Thanks.

Share this post

Link to post
Share on other sites

Make one of the points the origin.


t (from that origin point) of point = magnitude of point = sqrt(x^2 + y^2)


I guess you can skip the sqrt part to do the comparisons for a speedup.




you need one of the end points though for that to work though...


another way:


1.Get direction of line (normalize P2 - P1)


2.Use dot product on (Point - P1) (=sum of each component of (direction * (Point - P1)) ?)

Edited by Waterlimon

Share this post

Link to post
Share on other sites

You just need to solve


P1 + t(P2 - P1) = P3


Since you know P3 is on the line (it is, right?), you only need to solve for one of the components (i.e. solve for one of x or y; you can use the one with the highest t term which will always work).




P1 = (1, 1)

P2 = (5, 0)


P3 = (0, 1.25)


Solve (1, 1) + t(5-1, 0-1) = (0, 1.25)


In x:


1 + 4t = 0 => t = -0.25


In y:


1 - t = 1.25 => t = -0.25


Bob == Your Uncle


EDIT: Use the highest t term since sometimes t will vanish in 1 of the axes (e.g. line through the y axis will vanish in t when solving for x).

Edited by Paradigm Shifter

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!