Olá Petrus, tudo bem? Espero que sim!
O método lineTo não cria um triângulo diretamente, mas sim desenha uma linha a partir da posição atual do pincel (ou seja, a posição em que ele foi movido por moveTo) até a coordenada especificada por lineTo.
No seu exemplo, o código desenha um polígono com três lados, que forma um triângulo.
pincel.moveTo(300, 200); define a posição inicial do pincel no ponto (300, 200).
pincel.lineTo(200, 400); desenha uma linha do ponto atual (300, 200) até o ponto (200, 400).
pincel.lineTo(400, 400); desenha uma linha do ponto atual (200, 400) até o ponto (400, 400).
Essas duas chamadas de lineTo criam duas linhas, uma inclinada e outra horizontal, formando assim os três lados de um triângulo. A última linha fecha o triângulo, conectando o último ponto ao primeiro ponto.
Quando você chama lineTo(200, 400), você move o lápis até o ponto (200, 400) sem desenhar uma linha. Em seguida, quando você chama lineTo(400, 400), você move o lápis até o ponto (400, 400), desenhando uma linha reta a partir do ponto anterior (200, 400).
Dessa forma, você cria um triângulo com os três pontos: (300, 200), (200, 400) e (400, 400). A chamada pincel.fill() preenche o triângulo com a cor amarela definida anteriormente, criando um triângulo amarelo no canvas.
Espero ter sanado suas dúvidas!
Caso tenha dúvidas, fico à disposição.
Abraços e bons estudos!