Module forma.primitives
Primitive (line, rectangle and circle) patterns.
This module provides convenience functions for the generation of basic pattern shapes. So far including lines, squares/rectangles and circle rasters.
Usage:
 Draw some squares local square_pattern = primitives.square(5)  5x5 local rectangle_pattern = primitives.square(3,5)  3x5  Draw a line local line = primitives.line(cell.new(0,0), cell.new(10,10))  Draw a circle about (0,0) with radius 5 local circle = primitives.circle(5)
Geometry primitives
square (x, y)  Generate a square pattern. 
line (start, finish)  Generate a line pattern. 
quad_bezier (start, control, finish, N)  Draw a quadratic bezier curve. 
circle (r)  Generate a circle pattern. 
Geometry primitives
 square (x, y)

Generate a square pattern.
Parameters:
 x size in x
 y
size in y (default
y = x
)
Returns:

square forma.pattern of size
{x,y}
 line (start, finish)

Generate a line pattern.
According to Bresenham's line algorithm.
Parameters:
 start a forma.cell denoting the start of the line
 finish a forma.cell denoting the end of the line
Returns:

a pattern consisting of a line between
start
andfinish
 quad_bezier (start, control, finish, N)

Draw a quadratic bezier curve.
Uses an algorithm from rosettacode.org.
This function returns both a pattern consisting of the drawn bezier curve,
and a list of points along the curve. This may be important in case the
curve backtracks over existing cells, which cannot be represented in a
forma pattern. The full pattern consists of
N
of these points, joined by bresenham line segments.Parameters:
 start a forma.cell denoting the start of the curve
 control a forma.cell denoting the control point of the curve
 finish a forma.cell denoting the end of the curve
 N (optional) number of linesegments to construct the curve with
Returns:

a pattern consisting of a bezier curve between
start
andfinish
, controlled bycontrol
 an ordered list of cells consisting of points along the curve.
 circle (r)

Generate a circle pattern.
Bresenham algorithm.
Parameters:
 r the radius of the circle to be drawn
Returns:

circular forma.pattern of radius
r
and origin(0,0)