Detecção de colisão entre uma linha e um círculo em JavaScript

Estou à procura de uma resposta definitiva, talvez uma função porque estou lenta, isso determinará se um segmento de linha e círculo colidiram, em javascript (trabalhando com canvas)

Uma função como a que abaixo simplesmente retorna true se colidir ou false se não for incrível. Eu posso até doar um bebê para você.

function isCollided(lineP1x, lineP1y, lineP2x, lineP2y, circlex, circley, radius) {

    ...
}

Eu encontrei muitas fórmulas,como este, mas eles estão sobre minha cabeça.