I’m trying to draw a triangle on the end of a line to create an arrow, but I’m struggling to figure out how to calculate the points for it.

I’ve obviously got the Vector2s for the start and end of the line and I use one of them for the as the start point for the arrow, then I need two more points either side of the line. I’m sure there’s a simple solution to this but my grasp of manipulating co-ordinates isn’t strong enough to figure it out.

I'm not sure what exactly you need. Do you have 2d points or 3d points? Do you want to draw in 2d (GUI?)

I'll assume you have Vector2 points (like you've mentioned) since that's easier ;)

// I'll use C# since that's my language and you didn't specify which one you want to use ;)

Vector2 P1; // start point
vector2 P2; // end point
Vector2 direction = (P2-P1).normalized; // normalized direction
Vector2 right = new Vector2(direction.y,-direction.x); // vector rotated clockwise 90°
Vector2 Pright = P2 + right*halfSide;
Vector2 Pleft = P2 - right*halfSide;
// To make an "equilateral triangle" you just have to go
//into "direction" by sqrt(3)*halfSide
Vector2 Pahead = P2 + direction * halfSide * 1.7320508f;