http://qs321.pair.com?node_id=814968


in reply to perl module or code for calculating the shortest distance between a line and a point (vector linear algebra)

A general algorithm for calculating the closest distance between a line and a point is described, for example, at http://math.ucsd.edu/~wgarner/math4c/derivations/distance/distptline.htm. Here's a script that illustrates this:
use strict; use warnings; # line passes through (x1, y1) and (x2, y2) my ($x1, $y1) = (0, 2); my ($x2, $y2) = (-2, 2); # put it into the form y = mx + b my $m = ($y2 - $y1) / ($x2 - $x1); my $b = ($y1 * $x2 - $y2 * $x1) / ($x2 - $x1); # target point is (x0, y0) my ($x0, $y0) = (8, 0); # shortest distance from line to target point my $d = abs( $y0 - $m * $x0 - $b) / sqrt($m * $m + 1); print "The closest distance is $d\n";