Liking cljdoc? Tell your friends :D

nicheware.platform.utilities.common.graphics.line

Functions for with mathematical straight and curved lines:

There are groups of functions and variables within line that deal with:

Function groupFunctions
equationsstraight-line-equation, [[bezier-qudaratic-equation]], bezier-cubic-equation
curve and line building functionsmake-lerp, lerp, [[make-curve-fn-from-sample]], rasterize-bezier-quadratic, interpolate-n-points
  Functions for with mathematical straight and curved lines:

There are groups of functions and variables within line that deal with:

|Function group|Functions|
|---|---|
|equations| [[straight-line-equation]], [[bezier-qudaratic-equation]], [[bezier-cubic-equation]]|
|curve and line building functions| [[make-lerp]], [[lerp]], [[make-curve-fn-from-sample]], [[rasterize-bezier-quadratic]], [[interpolate-n-points]]|
raw docstring

bezier-cubic-equationclj/s

(bezier-cubic-equation start control1 control2 end)

Creates a function for computing points on a quadratic Bezier curve (from 5 control points) The returned function will accept a fraction from 0 to 1 which will return a point on the curve running from start to end, controlled by the middle two control points.

Lines are computed between:

  • start -> control1 (L1)
  • control1 -> control2 (L2)
  • control2 -> end (L3)

t (fraction 0 to 1) will compute points on each line, resulting in T1, T2, T3

These are then used as a bezier-quadratic-equation.

  • start: Start control point. N-dimensional.
  • control1: Middle control point 1. N-dimensional.
  • control2: Middle control point 2. N-dimensional.
  • end: End control point. N-dimensional.
  • returns: function which takes a single argument from 0 to 1. Returns a N-dimensional point on the curve.
Creates a function for computing points on a quadratic Bezier curve (from 5 control points)
The returned function will accept a fraction from 0 to 1 which will return
a point on the curve running from start to end, controlled by the middle two control points.

Lines are computed between:

- start -> control1 (L1)
- control1 -> control2 (L2)
- control2 -> end (L3)

t (fraction 0 to 1) will compute points on each line, resulting in T1, T2, T3

These are then used as a bezier-quadratic-equation.

- start: Start control point. N-dimensional.
- control1: Middle control point 1. N-dimensional.
- control2: Middle control point 2. N-dimensional.
- end: End control point. N-dimensional.
- returns: function which takes a single argument from 0 to 1. Returns a N-dimensional point on the curve.

sourceraw docstring

bezier-quadratic-equationclj/s

(bezier-quadratic-equation start middle end)

Creates a function for computing points on a quadratic Bezier curve (from 3 control points)

The returned function will accept a fraction from 0 to 1 which will return a point on the curve running from start to end, controlled by the middle.

The middle point is used to calculate a line between the start and end point. The fraction then computes a point along each of these lines, which will be the tangent to the point on the curve. The point is the fraction of this resulting line.

  • start: Start control point. N-dimensional.
  • middle: Middle control point. N-dimensional.
  • end: End control point. N-dimensional.
  • returns: function which takes a single argument from 0 to 1. Returns a N-dimensional point on the curve.
Creates a function for computing points on a quadratic Bezier curve (from 3 control points)

The returned function will accept a fraction from 0 to 1 which will return
a point on the curve running from start to end, controlled by the middle.

The middle point is used to calculate a line between the start and end point.
The fraction then computes a point along each of these lines, which will be the
tangent to the point on the curve. The point is the fraction of this resulting line.

- start: Start control point. N-dimensional.
- middle: Middle control point. N-dimensional.
- end: End control point. N-dimensional.
- returns: function which takes a single argument from 0 to 1. Returns a N-dimensional point on the curve.
sourceraw docstring

interpolate-n-pointsclj/s

(interpolate-n-points interpolation-fn points)

Compute the given number of points between start and end. This will divide the curve into points + 1 sections, and gives the curve value for n points.

  • interpolation-fn: Curve interpolation function which should accept t, as value form 0 to 1
  • points: An integer number of points to interpolate evenly using the function.
Compute the given number of points between start and end.
This will divide the curve into points + 1 sections, and gives the curve value
for n points.

- interpolation-fn:   Curve interpolation function which should accept t, as value form 0 to 1
- points:             An integer number of points to interpolate evenly using the function.
sourceraw docstring

lerpclj/s

(lerp point1 point2 fraction)

Calculates the point [x y ...] that is fraction between the two given points (of any dimension).

Does multi-dimension vector calculations, not just 2-D points.

  • point1: N-dimensional point.
  • point2: N-dimensional point.
  • fraction is a float from 0 to 1.0.
  • returns: point that ios specified fraciont between point1 and point2. Co-ords will be floats and the same dimension as the incoming points.
Calculates the point [x y ...] that is fraction between the two given points (of any dimension).

Does multi-dimension vector calculations, not just 2-D points.

- point1: N-dimensional point.
- point2: N-dimensional point.
- fraction is a float from 0 to 1.0.
- returns: point that ios specified fraciont between point1 and point2.  Co-ords will be floats and the same dimension as the incoming points.
sourceraw docstring

make-curve-fn-from-samplesclj/s

(make-curve-fn-from-samples sample-points)

Creates a function to return a Y value given an X for points on a curve where the curve is represented by the given set of [x y] points

Finds the two points either size of the given X and then finds points on line between the known points.

  • sample-points: Collection of points (each point is vector [x y]) which are all on a curve.
  • returns: function that takes single X argument and returns the correponding Y point on the curve defined by the sample-points. Function Returns nil if given X is outside the min and max X of the sample points.
Creates a function to return a Y value given an X for points on a curve
where the curve is represented by the given set of [x y] points

Finds the two points either size of the given X and then finds points on line between the known points.

- sample-points: Collection of points (each point is vector ```[x y]```) which are all on a curve.
- returns: function that takes single X argument and returns the correponding Y point on the curve defined by the sample-points.
  Function Returns nil if given X is outside the min and max X of the sample points.
sourceraw docstring

make-lerpclj/s

(make-lerp point1 point2)

Create a function that calculates the co-ordinate [x y, ...] that is fraction between the two given co-ordinates.

  • fraction is a float from 0 to 1.0.
  • returns: point co-ords will be floats
Create a function that
 calculates the co-ordinate [x y, ...] that is fraction between the two given co-ordinates.

- fraction is a float from 0 to 1.0.
- returns: point co-ords will be floats
sourceraw docstring

rasterize-bezier-quadraticclj/s

(rasterize-bezier-quadratic [x1 y1 :as start] [x2 y2 :as end] middle)
(rasterize-bezier-quadratic [x1 y1 :as start]
                            [x2 y2 :as end]
                            [x3 y3 :as middle]
                            x-start
                            x-end)

Rasterizes the bezier curve defined by the given start, end and middle control points.

Will return a value for each int x between the start x and end x.

As curve points can extend beyond the start and end point, it allows for an optional x-start and x-end to be specified for the rasterized curve, to generate a wider range of points.

These default to the start and end x.

  • start: Start point defining bezier curve. [x y]
  • end: End point defining bezier curve. [x y]
  • middle: Middle control point defining bezier curve. [x y]
  • x-start: Optional starting X for generated points. Defaults to x of start.
  • x-end: Optional ending X for generated points. Defaults to x of end.
  • returns: lazy sequence of points, one for each x from x-start to x-end. [x y]
Rasterizes the bezier curve defined by the given start, end and middle control points.

Will return a value for each int x between the start x and end x.

As curve points can extend beyond the start and end point, it allows for an optional x-start and x-end to be specified for the rasterized curve, to generate a wider range of points.

These default to the start and end x.

- start: Start point defining bezier curve. ```[x y]```
- end: End point defining bezier curve. ```[x y]```
- middle: Middle control point defining bezier curve. ```[x y]```
- x-start: Optional starting X for generated points. Defaults to x of start.
- x-end: Optional ending X for generated points. Defaults to x of end.
- returns: lazy sequence of points, one for each x from x-start to x-end. ```[x y]```
sourceraw docstring

straight-line-equationclj/s

(straight-line-equation [x1 y1 :as start] [x2 y2 :as end])

Given two points will create a line equation function.

  • start: Vector of start point on the line. [x y]
  • end: Vector of end point on the line. [x y]
  • returns: function that calculates points on the line. The function will take any X and return the Y corresponding to the point on the line. The Y result will be a float
Given two points will create a line equation function.

- start: Vector of start point on the line.  ```[x y]```
- end: Vector of end point on the line.  ```[x y]```
- returns: function that calculates points on the line. The function will take any X and return the Y corresponding to the point on the line.
  The Y result will be a float
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close