Math.DistancePointLinePart of Math module

Syntax   Math.DistancePointLine (xp, yp, x1, y1, x2, y2 : real) : real

Description   Math.DistancePointLine is used to calculate the distance between a point and a line segment. It is often used in games to determine if a collision has occurred. (xp, yp) is the location between the point. (x1, y1) and (x2, y2) are the end points of the line segment.

Details   The parameters to Math.DistancePointLine are real, but you can pass integer variables and constants. The parameters are in the same order as the subprogram name (that is point, then line).

Example   This progam draws a line segment and a circle with radius 75 on the screen and outputs whether they touch.

        var xp, yp, x1, y1, x2, y2 : int
        const RADIUS : int := 75
        xp := Rand.Int (RADIUS, maxx - RADIUS)
        yp := Rand.Int (RADIUS, maxy - RADIUS)
        x1 := Rand.Int (0, maxx)
        y1 := Rand.Int (0, maxy)
        x2 := Rand.Int (0, maxx)
        y2 := Rand.Int (0, maxy)
        Draw.FillOval (xp, yp, RADIUS, RADIUS, brightred)
        Draw.Line (x1, y1, x2, y2, brightgreen)
        if Math.DistancePointLine (xp, yp, x1, y1, x2, y2) < RADIUSthen
            put "The circle touches the line"
        else
            put "The circle does not touch the line"
        end if
Execute  

Status   Exported qualified.

This means that you can only call the function by calling Math.DistancePointLine, not by calling DistancePointLine.