From [Stack Exchange](https://stackoverflow.com/questions/849211/shortest-distance-between-a-point-and-a-line-segment) Here is the simplest complete code in Javascript. x, y is your target point and x1, y1 to x2, y2 is your line segment. ```javascript function pDistance(x, y, x1, y1, x2, y2) { var A = x - x1; var B = y - y1; var C = x2 - x1; var D = y2 - y1; var dot = A * C + B * D; var len_sq = C * C + D * D; var param = -1; if (len_sq != 0) //in case of 0 length line param = dot / len_sq; var xx, yy; if (param < 0) { xx = x1; yy = y1; } else if (param > 1) { xx = x2; yy = y2; } else { xx = x1 + param * C; yy = y1 + param * D; } var dx = x - xx; var dy = y - yy; return Math.sqrt(dx * dx + dy * dy); } ``` Image to help visualize the solution ![Distance of point to line segment](DistancePointToLine_01.png) Kotlin version ```kotlin fun getDistance(x: Double, y: Double, x1: Double, y1: Double, x2: Double, y2: Double): Double { val a = x - x1 val b = y - y1 val c = x2 - x1 val d = y2 - y1 val lenSq = c * c + d * d val param = if (lenSq != .0) { //in case of 0 length line val dot = a * c + b * d dot / lenSq } else { -1.0 } val (xx, yy) = when { param < 0 -> x1 to y1 param > 1 -> x2 to y2 else -> x1 + param * c to y1 + param * d } val dx = x - xx val dy = y - yy return hypot(dx, dy) } ```