Crate spiropath[][src]

Expand description

Generate Spirograph-like paths.

Modules

program

Functions for implementing the executable spiropath program.

Structs

ContactPoint

A point along a polyline where it is in contact with another.

Options

Options for controlling a spiropath.

PathState

The state we maintain for one of the paths.

Enums

Location

Location of the rotating shape relative to the stationary shape.

Orientation

How to interpret 180 degree bends.

Scale

How to scale an axis of the output.

Functions

direction

Return the direction (length 1) vector between two points (as a point).

directions_bends

Return the bending angle at each point along a polyline.

find_top_most_point_index

Find the index of the top-most point of a polyline (after rotating by an angle).

is_clockwise

Test whether a pre-processed polyline has a clockwise orientation.

load_polyline_from_svg_file

Load a polyline from a file and convert it to a polyline.

maximal_coordinates

Return the maximal coordinates in some polylines.

minimal_coordinates

Return the minimal coordinates in some polylines.

orient_angle

Orient a 180 degree turn.

points_distance

Return the distance between two points.

polyline_directions

Return the direction of the polyline at each of its points.

polyline_lengths

Measure the lengths of each of the segments of the polyline.

print_svg_polylines

Print a vector of polylines as an SVG file.

prune_repeated_points
round_lengths

Round lengths to integers.

scale_lengths

Scale a polyline by a factor.

scale_point

Scale a point by a factor.

scale_polyline

Scale a polyline by a factor.

spiropath

Generate spiropath(s) by rotating one shape around another.

spiropath_polyline

Compute the polyline of the traced point as we rotate one polyline around another.

transform

Scale and move the points to fit in a (0,0) -> (w,h) bounding box.