# Image

object Image
Companion
class
trait Sum
trait Mirror
class Object
trait Matchable
class Any

## Type members

### Classlikes

object Elements

Contains the leaves of the Image algebraic data type. Packaged here so they don't pollute the namespace when importing Image to access to the smart constructors.

Contains the leaves of the Image algebraic data type. Packaged here so they don't pollute the namespace when importing Image to access to the smart constructors.

### Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from
Mirror

## Value members

### Concrete methods

def catmulRom(points: Seq[Point], tension: Double): Path

Interpolate a spline (a curve) that passes through all the given points, using the Catmul Rom formulation (see, e.g., https://en.wikipedia.org/wiki/Cubic_Hermite_spline)

Interpolate a spline (a curve) that passes through all the given points, using the Catmul Rom formulation (see, e.g., https://en.wikipedia.org/wiki/Cubic_Hermite_spline)

The tension can be changed to control how tightly the curve turns. It defaults to 0.5.

The Catmul Rom algorithm requires a point before and after each pair of points that define the curve. To meet this condition for the first and last points in `points`, they are repeated.

If `points` has less than two elements an empty `Path` is returned.

def circle(diameter: Double): Image
def closedPath(elements: Seq[PathElement]): Path
def compile[Alg <: ([x[_]] =>> Basic[x]), F[_]](image: Image): Picture[Alg, F, Unit]

Compile an `Image` to a `doodle.algebra.Picture`

Compile an `Image` to a `doodle.algebra.Picture`

def equilateralTriangle(width: Double): Image
def interpolatingSpline(points: Seq[Point]): Path

Construct an open path of bezier curves that intersects all the given points. Defaults to `catmulRom` with the default tension.

Construct an open path of bezier curves that intersects all the given points. Defaults to `catmulRom` with the default tension.

def line(x: Double, y: Double): Image
def openPath(elements: Seq[PathElement]): Path
def rectangle(width: Double, height: Double): Image
def regularPolygon(sides: Int, radius: Double): Image
def rightArrow(width: Double, height: Double): Image
def roundedRectangle(width: Double, height: Double, radius: Double): Image
def square(side: Double): Image
def star(points: Int, outerRadius: Double, innerRadius: Double): Image
def triangle(width: Double, height: Double): Image

val empty