This site holds some Gimp2 plugins.

**Note: ***The plugins are written for Gimp2. They do not work
for Gimp3 unless somebody ports them.*

The plugins fall in the following 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.
- Plugins to chop (the strokes of) paths.
- Plugins to replicate paths.

We have some plugins which take as input a parametric
curve (mathematical function) and output a Gimp's path which approximates
the curve, generally very well. There are currently three general-purpose
plugins and five to draw some specific curves.

To get the plugins, go to *Parametric
curves *and choose the right one of the two download buttons
at the bottom of the page.

General-purpose plugins |
Parametric curve (cartesian) Parametric curve (polar) Parametric curve (read function from file) |

Some specific curves |
Fourier3 with control of symmetry Fourier3 Lissajous Rhodonea Simple harmonograph Spiropath |

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. |

G2-continuity |
Given a path, make a G2-continuous path through its anchors. This is another smoothing tool. |

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

Chop a path at its anchors |
All strokes will be 2-anchor strokes |

Chop a path by another path |
The strokes are chopped at the intersection points with another given path |

Chop a path by lengths |
From the strokes are chopped pieces of equal lengths |

Replicate path
along circle |
Replicate a path following a circle (or circle sector), optionally distorting the path to follow the circular arc. |

Replicate path along another path |
Replicate a path following strokes of another path, optionally distorting to follow the arc, and optionally tapering. |

Replicate path by affine mapping |
Replicate a path by applying an affine transformation repeatedly. |