This site holds some Gimp plugins. Currently, they fall in four categories:
|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
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.|
||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
||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|