sub intersectLines {
#working subroutine. thanks to the original poster.
my( $ax, $ay, $bx, $by, $cx, $cy, $dx, $dy )= @_;
my @rval=0;
my $d1=($ax-$bx)*($cy-$dy);
my $d2=($ay-$by)*($cx-$dx);
my $dp = $d1 - $d2;
my $dq = $d2 - $d1;
if($dp!=0 && $dq!=0) {
my $p = ( ($by-$dy)*($cx-$dx) - ($bx-$dx)*($cy-$dy) ) / $dp;
+
my $q = ( ($dy-$by)*($ax-$bx) - ($dx-$bx)*($ay-$by) ) / $dq;
if($p>0 && $p<=1 && $q>0 && $q<=1) {
my $px= $p*$ax + (1-$p)*$bx;
my $py= $p*$ay + (1-$p)*$by;
@rval=($px, $py);
}
}
return(@rval);
}