/// /// /// /// /** * * @param {circle} pCricle * @param {line2} pLine */ function lineCircleCollision2(pCricle, pLine) { // We have a triangle formed by circle's position P and the two points of the line, A and B. var lSlope = (pCricle.position.y - pLine.start.y) / (pCricle.position.x - pLine.start.x), lAngle = Math.atan(lSlope), lAngleDiff = lAngle - pLine.angle, lPositionToStart = subVec2(pCricle.position, pLine.start), lPosToStartLength = length2(lPositionToStart), lHeight = lPosToStartLength * Math.sin(lAngleDiff); if (Math.abs(lHeight - pCricle.radius) < pCricle.radius) { console.log('Intersection'); } }