generative-toolbelt.point

A set of function to create, manipulate, and draw Points and also Vector structures.
Points are structured as maps like this: {:x 100 :y 100}.
Vectors are strucutred as maps like this: {:len 100 :dir 60}

draw-line

(draw-line l & [drawOptions])
Draws a Line into the current graphics canvas.

draw-point

(draw-point p)(draw-point p size)
Draws a Point into the current graphics canvas.

flip-dir

(flip-dir vect)
Flip the direction of a by 180 degrees vector.
Returns a Vector structure.

make-line

(make-line a b)
Creates a Line with absolutes coordinates.
Returns a Line.

make-point

(make-point x y)
Creates a Point with absolutes coordinates.
Returns a Point.

make-vec

(make-vec l d)
Creates a Vector structure with length `l` and direction `d` in radians.

mkln

(mkln ax ay bx by)
Creates a Line with canvas-relative coordinates.
Returns a Line.

mkpt

(mkpt x y)
Creates a Point with canvas-relative coordinates.
Returns a Point.

point-angle

(point-angle a b)
Calculate the angle between two Points.
Returns a number.

point-between

(point-between a b pos)
Creates a new intermediate point between two Points
`pos` is a floating number between 0 and 1 that defines
the distance between the two points. 0 returns point `a`,
1 returns point `b`, 0.5 returns the middle point between
`a` and `b`, etc...
Returns a Point.

point-distance

(point-distance a b)
Calculate the distance between two Points.
Returns a number.

point-mirror

(point-mirror points mode)

NEEDS UPDATE Mirror a sequence of points vertically, horizontally, or both. mode can be :h for horizontal only, :v for vertical only, or :hv for both horizontal and vertical. Returns a sequence of Points.

point-move-by-vector

(point-move-by-vector point vect)
Creates a new Point which is moved by a certain
ammount in a certain direction defined by a Vector
structure.
Returns a Point.

point-to-vector

(point-to-vector p)
Converts a Point structure to a Vector structure.
Returns a Vector.

reverse-line

(reverse-line {:keys [a b]})
Reverse a Line swapping its Points.
Returns a Line.

tweak-len

(tweak-len vect value)
Changes the length of the vector multiplicating its length by `value`.
Returns a Vector structure.

vector-to-point

(vector-to-point v)
Converts a Vector structure to a Point structure.
Returns a Point.