A simple test function to determine the position of one (or more) points relative to a vector spanned by two points.

on(x1, y1, x2, y2, x0, y0, eps = 1e-16)
left(x1, y1, x2, y2, x0, y0, eps = 1e-16)

Arguments

x1

x coordinate of first point determinig the vector.

y1

y coordinate of first point determinig the vector.

x2

x coordinate of second point determinig the vector.

y2

y coordinate of second point determinig the vector.

x0

vector of x coordinates to locate relative to the vector \((x_2-x_1, y_2-y_1)\).

y0

vector of x coordinates to locate relative to the vector \((x_2-x_1, y_2-y_1)\).

eps

tolerance for checking if \(x_0,y_0\) is on or left of \((x_2-x_1, y_2-y_1)\), defaults to \(10^{-16}\).

Value

logical vector with the results of the test.

Author

Albrecht Gebhardt <albrecht.gebhardt@aau.at>, Roger Bivand <roger.bivand@nhh.no>

Examples

y <- x <- c(0,1)
## should be TRUE
on(x[1],y[1],x[2],y[2],0.5,0.5)
#> [1] TRUE
## note the default setting of eps leading to
on(x[1],y[1],x[2],y[2],0.5,0.50000000000000001)
#> [1] TRUE
## also be TRUE

## should be TRUE
left(x[1],y[1],x[2],y[2],0.5,0.6)
#> [1] TRUE
## note the default setting of eps leading to
left(x[1],y[1],x[2],y[2],0.5,0.50000000000000001)
#> [1] FALSE
## already resulting to FALSE