Encontre coordenadas para desenhar a ponta da seta (triângulo isóscele) no final de uma linha

Eu estou tentando criar uma função que retornará as coordenadas de 3 pontos da ponta da seta (triângulo isóscele) que eu quero desenhar no final de uma linha.

O desafio está na orientação (ângulo) da linha que pode variar entre 0 e 360 graus no quadrante.

Eu tenho os seguintes valores:

//start coordinates of the line
var x0 = 100;
var y0 = 100;

//end coordinates of the line
var x1 = 200;
var y1 = 200;

//height of the triangle
var h = 10;
//width of the base of the triangle
var w = 30 ;

Esta é a minha função até agora que retorna as coordenadas de dois pontos da base do triângulo:

var drawHead = function(x0, y0, x1, y1, h, w){
    var L = Math.sqrt(Math.pow((x0 - x1),2)+Math.pow((y0 - y1),2));

    //first base point coordinates
    var base_x0 = x1 + (w/2) * (y1 - y0) / L;
    var base_y0 = y1 + (w/2) * (x0 - x1) / L;

    //second base point coordinates
    var base_x1 = x1 - (w/2) * (y1 - y0) / L;
    var base_y1 = y1 - (w/2) * (x0 - x1) / L;

    //now I have to find the last point coordinates ie the top of the arrow head
}

Como posso determinar as coordenadas da parte superior do triângulo considerando o ângulo da linha?

questionAnswers(2)

yourAnswerToTheQuestion