View Full Version : Translation of the point normal to the line

09-04-2014, 04:36 PM
I am currently working on a project of drawing thick polylines and I am usin interpolation. I managed to calculate all the necessary points but I need to draw two more points. I need to translate one point normally to the line connecting two points. The scatch below shows what are the points. Naimely point L is to be translated for the distance between L and Jn normally to the line AB (B is the central point). Similar thing is with translation to the Kn.
I have written the code:

float alpha = atan2( B.y - A.y,B.x - A.x) - deg90;
float alpha2 = atan2( C.y - B.y, C.x - B.x) - deg90;

nJ.x = L.x + w*cos(alpha); // w is distance between A1 and A2
nJ.y = L.y + w*sin(alpha);
nK.x = L.x + w*cos(alpha2);
nK.y = L.y + w*sin(alpha2);

The code works only for some points, not all. I need to fix + sing in above calculations of nJ and nK, but I do not know how.

Dark Photon
09-09-2014, 05:40 AM
Think about it this way. There is a component of the point's position that is parallel to the line and a component that is perpendicular. You can use a dot product of the two vectors to isolate the parallel component. Subtract tog get the perpendicular.