I have a line drawn by an array of `Vector2`s. What I would like to do is get a `Vector2` parallel to a line which is drawn by nearby`Vector2`s. It would sort of look like this: So it would be at a right angle to the line formed by P1 and P3. I've been using mixtures of the functions `angle_to()` and `normalized()` to try to get the position. But I can't seem to get it.

Edit: As per kozaluss' information, I'll try to make things a bit clearer. P1, P2, and P3 are the points of `Vector2`s. I'm trying to find the point of a vector (P4) that's based upon the P2's vector point such that it's parallel to a line (the green line) which contains the points of the vectors P3 and P1.

asked Sep 6, 2018 in Engine
edited Sep 6, 2018

I can not decipher what is a vector and what is a point on Your picture. But trying my best guess: If P1 and P3 are points in space (position vectors) then red vector (P3-P1) is a vector parallel to olive vector. But I do not know what are the blue lines about. Vectors do not carry their origin with themselves - they are always (0,0) based. Therefore to have a vector that is originated in point P2 you need two things - position and vector. Position would be P2 point, vector would be (P3-P1).

answered Sep 6, 2018 by (231 points)

Thank you for the clarification on the origins of the vector. I'll adjust my answer to this new information.

So... Now I understand this like this:

``````var P1 = Vector2(...) # first point
var P3 = Vector2(...) # second point
var DirVector = P3-P1 # this gives us a vector parallel to green line
var NormDir = DirVector.Normalized() # we might want to normalize the direction for future operations
var P2 = Vector2(...) # third point - origin of the new parallel
var Multiplier = float(...) # some multiplier value to traverse the line
var PointOnParallelLine = P2 + NormDir * Multiplier # for Multiplier from -inf to +inf will give us all points on the parallel line including point P2 when Multiplier==0
``````

So all You have to know now is what You want the Multiplier to be.

answered Sep 6, 2018 by (231 points)

Thanks for the input, kozaluss. This approach should help me in my goal.