This site holds some Gimp plugins. Currently, they fall in four categories:

- Plugins to draw mathematically defined parametric curves approximately as Gimp paths (Bézier curves), with the aim of using only few control points.
- Plugins to do some transformations on Gimp paths (Bézier curves).
- Plugins to crop or slice paths.
- Plugins to draw tangents or normals to paths
- Plugins offering alternative interfaces to Gimp's Perspective Transform tool working on the active layer.
- Plugin to warp paths.
- Plugins to modify paths.

Simple plugin
for parametric curves |
Simple but probably quite adequate. |

Simple
plugin for polar curves |
Simple plugin for curves in polar coordinates. |

Advanced
plugin for parametric curves |
Better than the simple ones but more complicated. |

Some specific
parametric curves |
Lissajous Rhodonea Spiropath |

The first three plugins are general-purpose programs. They can be
applied to draw parametric curves from user-defined mathematical
formulas. Each of the them is meant to be invoked interactively in
Gimp's GUI. Each one offers two methods to feed the inputs. One way is
to type the inputs in the fields of the GUI. But alternatively the
inputs can be fed in a user-written file; this is a little more
difficult way but definitely much better: it gives larger possibilities
with the cost of little Python programming, and it is the only way to
save the inputs since otherwise no option for saving presets exists.
When you download any of the three plugins, you receive in the .ZIP file
also a file *doc.pdf* which describes the plugins in detail and
presents examples.

From the general-purpose advanced plugin some ready-made plugins are
derived for drawing some specific curves. Currently there are: *Lissajous*,
*Rhodonea* and *Spiropath*.

To download the simple plugins, go to *Simple
Parametric Curves* and scroll down to the Download section.
Clicking the download button you obtain a .ZIP file containing all that
is needed for the two simple plugins. The same page contains some
instructions but the best help you will find in the file *doc.pdf *
included in the .ZIP file.

To download the advanced plugin, go to *
Parametric Curves* and scroll down to the Downloads section.
Click the button saying "Click to download the plugin Parametric Curves
as a .ZIP file".

The same page contains some instructions. You might glance at the
sections "The general view" and "How to apply the plugin in the simple
way", but you had better to ignore the sections about "advanced inputs"
until later. Recall that the .ZIP file includes the documentation file *doc.pdf*.

The specialized plugins below were built around the code of the advanced plugin (with considerable amount of hand-work), so this way to use it may turn out to be the main usage of it.

Currently we have three special curve-drawing plugins, *Lissajous*,
which draws Lissajous curves, *Rhodonea*, which draws rose-like
curves, and *Spiropath*, which draws spirograph-like curves, all
as Gimp's paths. To download, go to *Applications*
and choose the only Download button there; it will download all three as
a .ZIP file.

Transform a path by an affine map |
Very basic plugin: affine transformations on Bézier curves. |

Transform a path by a Bézier arc |
A path is transformed by a conformal map constructed from a user-supplied Bézier arc. |

Transform a path by a Moebius map |
A path is transformed by a Möbius map. Actually there are four plugins; three are designed to allow the user to control the pole and/or the inverse pole. |

Transform a path by a Bezier arc quadrilateral |
A path is transformed by a conformal map constructed from a user-supplied Bézier path (curved quadrilateral). In fact, two plugins, easy and advanced. |

Fit a path in a triangle |
A path is translated and fitted in a given triangle without rotations or distortions. |

Fit a path in a convex quadrilateral |
A path is fitted in a given convex quadrilateral via a projective transformation, so distorted. |

Convert a path to polar coordinates |
An analog of Gimp's filter Image>Distorts>Polar coordinates but working with paths instead of images. |

Transform a path by exponential map |
A path is transformed by the complex exponential map, viewing the plane as the complex number plane. |

Crop path by circle |
Crop a path by a circle, given as a path (either a diameter or the center and one point). |

Crop path by convex polygon |
Crop a path by a convex polygon, given as a path. |

Crop path by general selection |
Crop a path by a general selection (not necessarily rectangular). May be slow. |

Crop path by rectangle |
Crop a path by a rectangle, such as a rectangular selection (or one of three more choices). |

Slice path by guides |
Slice a path by guides. |

Slice path by lines |
Slice a path by straight line segments, given as strokes of another path. |

Bounding box |
Draw the bounding box of a path. |

Common tangent or normal between two paths |
Draw one common tangent or normal between two paths. The user gives a line segment close to where the drawn tangent/normal should be. |

Parallel tangents or normals |
Draw tangents or normals to a path, parallel to a given line segment. |

Tangents or normals from a point |
Draw tangents or normals to a path from a point. The user inputs a line segment with one end at that point and the other end near that path, and the plugin snaps one end of the line segment to a tangent or normal. |

Tangents or normals from a stroke end of another path |
Similar as above except that instead of a point some stroke end of another path is used. The user inputs a line segment with one end near that path and the other end near that other path, and the plugin snaps both ends of that line segment. |

Perspective transform - 4 points to
4 points |
The transformation is defined by means of two 4-anchor paths: the anchors of one path are mapped onto the anchors of the second. |

Perspective transform - 4 points to rectangle corners |
Corrects quadrangles to rectangles. The transformation is defined by a 4-anchor path and a rectangle: the area inside the path is mapped onto the rectangle. |

Perspective transform - 4 points to circle (clock face) |
Corrects distorted circles to true circles. The transformation is defined by a 4-anchor path and a list of four hours on an imaginary clock face. |

Perspective transform - 2+2+2 points to circle (3 diameters) |
Corrects distorted circles to true circles. The transformation is defined by three paths showing three would-be diameters: the line segments that should become diameters of the corrected circle. |

Perspective transform - 1+2+3 points to circle (center and
2+3 points) |
Otherwise as the plugin above but the input is three paths: a 1-anchor path (the would-be center); a 2-anchors path (2 points on the distorted circle); a 3-anchors path (3 points on the distorted circle). |

Warp a path locally |
Warp a path inside a given circle. Three possible actions: Grow, Shrink, and Swirl. |

Simplify a path |
Diminish the number of anchors allowing some smoothing. |

Round path corners |
Given a path consisting of straight line segments, round its corners. |

Simple smooth path |
Given a path consisting of straight line segments, construct a smooth path passing through the same anchors. A simple algorithm. |

Join strokes |
Join close ends of the strokes of a path |