Above is a diagram to help people understand what I'm looking for.

Ultimately, what I want to be able to do is draw a nice curve on any angle, like at the top right of the image. To achieve this I need to calculate the coordinates of a triangle. I can then use C as the control points when using curveTo().

A (x1,y1) and B (x2,y2) are known as these are the start and end points of my line. D (x4,y4) I also know as these can be calculated from A and B as in the formula above.

Also known is M1, the gradient of the line AB, as calculated in the formula above. I think I need to know M2 (the gradient of line CD) as well, but am unsure how to calculate this correctly. As the triangle is equilateral all internal angles are 60 degrees.

So, what I need to know is how to calculate C (x3,y3) given the information above.

Can anybody help me with the appropriate code and maths to calculate x3,y3 please?

I know it's do able, my maths just isn't good enough :-|

NB The fact that y1 and y2 have different values is important when it comes to drawing the line. I have a feeling it would be much easier if they were the same, but that's not what I need.

As ever, any help would be gratefully received.

Thanks

Barry