# infline

##### Infinite Straight Lines

Define the coordinates of one or more straight lines in the plane

##### Usage

`infline(a = NULL, b = NULL, h = NULL, v = NULL, p = NULL, theta = NULL)`# S3 method for infline
print(x, …)

# S3 method for infline
plot(x, …)

##### Arguments

- a,b
Numeric vectors of equal length giving the intercepts \(a\) and slopes \(b\) of the lines. Incompatible with

`h,v,p,theta`

- h
Numeric vector giving the positions of horizontal lines when they cross the \(y\) axis. Incompatible with

`a,b,v,p,theta`

- v
Numeric vector giving the positions of vertical lines when they cross the \(x\) axis. Incompatible with

`a,b,h,p,theta`

- p,theta
Numeric vectors of equal length giving the polar coordinates of the line. Incompatible with

`a,b,h,v`

- x
An object of class

`"infline"`

- …
Extra arguments passed to

`print`

for printing or`abline`

for plotting

##### Details

The class `infline`

is a convenient way to handle
infinite straight lines in the plane.

The position of a line can be specified in several ways:

its intercept \(a\) and slope \(b\) in the equation \(y = a + b x\) can be used unless the line is vertical.

for vertical lines we can use the position \(v\) where the line crosses the \(y\) axis

for horizontal lines we can use the position \(h\) where the line crosses the \(x\) axis

the polar coordinates \(p\) and \(\theta\) can be used for any line. The line equation is $$ y \cos\theta + x \sin\theta = p $$

The command `infline`

will accept line coordinates in any
of these formats. The arguments `a,b,h,v`

have the same interpretation
as they do in the line-plotting function
`abline`

.

The command `infline`

converts between different coordinate
systems (e.g. from `a,b`

to `p,theta`

) and returns an
object of class `"infline"`

that contains a representation of the lines in
each appropriate coordinate system. This object can be printed
and plotted.

##### Value

The value of `infline`

is an object of class `"infline"`

which is basically a data frame with columns `a,b,h,v,p,theta`

.
Each row of the data frame represents one line.
Entries may be `NA`

if a coordinate is not applicable to
a particular line.

##### See Also

##### Examples

```
# NOT RUN {
infline(a=10:13,b=1)
infline(p=1:3, theta=pi/4)
plot(c(-1,1),c(-1,1),type="n",xlab="",ylab="", asp=1)
plot(infline(p=0.4, theta=seq(0,pi,length=20)))
# }
```

*Documentation reproduced from package spatstat, version 1.49-0, License: GPL (>= 2)*