vivid v0.4.2 Vivid.Bounds View Source

Provides information about the bounds of a box and pixel positions within it.

Example

iex> use Vivid …> Box.init(Point.init(5,10),Point.init(15,20)) …> |> Bounds.bounds() #Vivid.Bounds<[min: #Vivid.Point<{5, 10}>, max: #Vivid.Point<{15, 20}>]>

Link to this section Summary

Functions

Return the bounding box required to encapsulate the shape

Returns the center point of the bounds

Returns true if the point is within the bounds

Returns the height of a shape

Initialise arbitrary bounds

Returns the top-right point of the bounds

Returns the bottom-left point of the bounds

Returns the width of a shape

Link to this section Types

Link to this section Functions

Return the bounding box required to encapsulate the shape.

  • shape - A shape whose bounds you want to measure.

Example

iex> Vivid.Circle.init(Vivid.Point.init(10,10), 10)
...> |> Vivid.Bounds.bounds
#Vivid.Bounds<[min: #Vivid.Point<{0.0, 0.0}>, max: #Vivid.Point<{20.0, 20.0}>]>

Returns the center point of the bounds.

  • shape - The shape whose center-most pixel you want to find.

Example

iex> Vivid.Circle.init(Vivid.Point.init(10,10), 10)
...> |> Vivid.Circle.to_polygon
...> |> Vivid.Bounds.center_of
#Vivid.Point<{10.0, 10.0}>
Link to this function contains?(shape, point) View Source
contains?(Vivid.Shape.t, Vivid.Point.t) :: boolean

Returns true if the point is within the bounds.

  • shape - A shape you wish to test.
  • point - The point you wish to test.

Examples

iex> Vivid.Bounds.init(0, 0, 10, 10)
  ...> |> Vivid.Bounds.contains?(Vivid.Point.init(0, 0))
  true

  iex> Vivid.Bounds.init(0, 0, 10, 10)
  ...> |> Vivid.Bounds.contains?(Vivid.Point.init(5, 5))
  true

  iex> Vivid.Bounds.init(0, 0, 10, 10)
  ...> |> Vivid.Bounds.contains?(Vivid.Point.init(-1, -1))
  false

  iex> Vivid.Bounds.init(0, 0, 10, 10)
  ...> |> Vivid.Bounds.contains?(Vivid.Point.init(-10, -10))
  false

  iex> Vivid.Bounds.init(0, 0, 10, 10)
  ...> |> Vivid.Bounds.contains?(Vivid.Point.init(10, 10))
  true

  iex> Vivid.Bounds.init(0, 0, 10, 10)
  ...> |> Vivid.Bounds.contains?(Vivid.Point.init(11, 11))
  false

Returns the height of a shape.

  • shape - The shape whose height you want to measure.

Example

iex> Vivid.Circle.init(Vivid.Point.init(10,10), 10)
...> |> Vivid.Bounds.height
20.0
Link to this function init(x0, y0, x1, y1) View Source
init(number, number, number, number) :: Vivid.Bounds.t

Initialise arbitrary bounds.

  • x0 - The x coordinate of the bottom-left pixel.
  • y0 - The y coordinate of the bottom-left pixel.
  • x1 - The x coordinate of the top-right pixel.
  • y1 - The y coordinate of the top-right pixel.

Example

iex> Vivid.Bounds.init(0, 0, 5, 5)
#Vivid.Bounds<[min: #Vivid.Point<{0, 0}>, max: #Vivid.Point<{5, 5}>]>

Returns the top-right point of the bounds.

  • shape - The shape whose top-right pixel you want to find.

Example

iex> Vivid.Circle.init(Vivid.Point.init(10,10), 10)
...> |> Vivid.Bounds.max
#Vivid.Point<{20.0, 20.0}>

Returns the bottom-left point of the bounds.

  • shape - The shape whose bottom-left pixel you want to find.

Example

iex> Vivid.Circle.init(Vivid.Point.init(10,10), 10)
...> |> Vivid.Bounds.min
#Vivid.Point<{0.0, 0.0}>

Returns the width of a shape.

  • shape - The shape whose width you want to measure.

Example

iex> Vivid.Circle.init(Vivid.Point.init(10,10), 10)
...> |> Vivid.Bounds.width
20.0