This evaluates relative distance of given point on line
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_point_type), | intent(in) | :: | point | |||
type(tem_line_type), | intent(in) | :: | line |
function fraction_PointLine( point, line ) result( frac )
type( tem_point_type ), intent(in) :: point
type( tem_line_type ), intent(in) :: line
real(kind=rk) :: numerator, denominator, frac
numerator = ( point%coord(1) - line%origin(1) ) &
& * ( point%coord(1) - line%origin(1) ) &
& + ( point%coord(2) - line%origin(2) ) &
& * ( point%coord(2) - line%origin(2) ) &
& + ( point%coord(3) - line%origin(3) ) &
& * ( point%coord(3) - line%origin(3) )
denominator = line%vec(1) * line%vec(1) &
& + line%vec(2) * line%vec(2) &
& + line%vec(3) * line%vec(3)
frac = sqrt( numerator / denominator )
end function fraction_PointLine