How can I check if a point is below a line or not ?
I’ve the following data:
Line [ {x1,y1}, {x2,y2} ]
Points {xA,yA}, {xB,yB} ...
I need to write a small algorithm in python to detect points on one side and the other side of the line.
thanks
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
You could try using a cross product — http://en.wikipedia.org/wiki/Cross_product.
You’d need to calibrate what each side is. If you want it to be "below" or "above" you need to ensure the points on the line are sorted horizontally.
I haven’t tested this.
Edit I initially put in the dot product formula. 😮
Edit 2 D’oh, I was putting the coordinates into a set instead of a tuple. Using
namedtuple('point', 'x y')for the vectors is nice if you’re running a reasonably modern version of Python.Luckily I found Calculating a 2D Vector's Cross Product.