[gimp-help] Apply Spyrogimp patch from Elad Shahar. This fixes issue #142.(I have a dream: devs supplying gimp-h
- From: Julien Hardlin <jhardlin src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp-help] Apply Spyrogimp patch from Elad Shahar. This fixes issue #142.(I have a dream: devs supplying gimp-h
- Date: Thu, 28 Mar 2019 17:07:53 +0000 (UTC)
commit ffcaab1baad8064548455c1e3ca9e042c0e2923f
Author: Julien Hardelin <jhardlin orange fr>
Date: Thu Mar 28 18:07:14 2019 +0100
Apply Spyrogimp patch from Elad Shahar. This fixes issue #142.(I have a dream: devs supplying gimp-help
patches for the new features they create)
images/C/filters/render/spyrogimp.png | Bin 11459 -> 14869 bytes
images/C/filters/render/spyrogimp1.png | Bin 0 -> 17548 bytes
images/C/filters/render/spyrogimp2.png | Bin 0 -> 11559 bytes
images/C/filters/render/spyrogimp3.png | Bin 0 -> 9377 bytes
src/filters/render/spyrogimp.xml | 524 +++++++++++++++++++++++++--------
5 files changed, 407 insertions(+), 117 deletions(-)
---
diff --git a/images/C/filters/render/spyrogimp.png b/images/C/filters/render/spyrogimp.png
index 515906d3f..207e6e2f0 100644
Binary files a/images/C/filters/render/spyrogimp.png and b/images/C/filters/render/spyrogimp.png differ
diff --git a/images/C/filters/render/spyrogimp1.png b/images/C/filters/render/spyrogimp1.png
new file mode 100644
index 000000000..c517688c9
Binary files /dev/null and b/images/C/filters/render/spyrogimp1.png differ
diff --git a/images/C/filters/render/spyrogimp2.png b/images/C/filters/render/spyrogimp2.png
new file mode 100644
index 000000000..d7574db85
Binary files /dev/null and b/images/C/filters/render/spyrogimp2.png differ
diff --git a/images/C/filters/render/spyrogimp3.png b/images/C/filters/render/spyrogimp3.png
new file mode 100644
index 000000000..5ff65ddb5
Binary files /dev/null and b/images/C/filters/render/spyrogimp3.png differ
diff --git a/src/filters/render/spyrogimp.xml b/src/filters/render/spyrogimp.xml
index 7058336f7..b3d276ebd 100644
--- a/src/filters/render/spyrogimp.xml
+++ b/src/filters/render/spyrogimp.xml
@@ -17,15 +17,6 @@
<figure>
<title>Example for the <quote>Spyrogimp</quote> filter</title>
- <mediaobject>
- <imageobject>
- <imagedata format="JPG"
- fileref="images/filters/examples/taj_orig.jpg" />
- </imageobject>
- <caption>
- <para>Original image</para>
- </caption>
- </mediaobject>
<mediaobject>
<imageobject>
<imagedata format="JPG"
@@ -38,10 +29,9 @@
</figure>
<para>
- <!--
- Describe what the filter does, which algorithms it uses.
- Give the user an idea what to use the filter for
- -->
+ This filter draws Spirographs, Epitrochoids, and Lissajous curves.
+ Immediate feedback is provided, by drawing to a temporary
+ layer.
</para>
</sect3>
@@ -58,14 +48,71 @@
</para>
</sect3>
+ <sect3>
+ <title>Selection and Tool</title>
+ <para>
+ Much of the behavior of the plugin is determined by options set outside
+ of the plugin, such as the current selection, or settings for gimp
+ tools. These settings can be changed while the plugin is running.
+ </para>
+ <note>
+ <para>
+ In contrast to options within the plugin, changing the current selection
+ or tool settings will not redraw the pattern. To draw the change, click
+ the <guibutton>Redraw</guibutton> button at the bottom of the plugin.
+ </para>
+ </note>
+
+ <sect4>
+ <title>The Current Selection</title>
+ <para>
+ As in most plugins, the current selection determines the area where the
+ pattern will be rendered. Typically, this would be a rectangular
+ selection. There is however, an additional way the selection can be
+ used.
+ </para>
+ <para>
+ The selection can be used as the shape of the fixed gear
+ (under the <guilabel>Fixed Gear</guilabel> tab).
+ The plugin will attempt to extract shapes from the selection, and draw
+ a pattern inside of each shape.
+ This is more interesting if you select a non-rectangular selection.
+ </para>
+ <para>
+ To have the pattern hug the boundaries of the shapes, use
+ <guilabel>hole percent</guilabel>=100.
+ </para>
+ </sect4>
+
+ <sect4>
+ <title>Tool Settings</title>
+ <para>
+ Spyrogimp uses gimp tools to perform the drawing.
+ All the settings with which the drawings are done are taken from the chosen tool.
+ For example, if you choose to use the
+ <guimenuitem>Pencil</guimenuitem> tool (by choosing it from the
+ <guilabel>Tool</guilabel> menu)then all the settings of the Gimp Pencil
+ tool will be used for drawing. You can change any of the tool settings
+ while the plugin is running, and press the <guibutton>Redraw</guibutton>
+ button to see how the pattern looks.
+ </para>
+ </sect4>
+
+ <sect4>
+ <title>Gradient Settings</title>
+ <para>
+ When using the <guilabel>long gradient</guilabel> mode, some settings
+ from the gradient tool are used.
+ </para>
+ </sect4>
+
+ </sect3>
+
<sect3>
<title>Options</title>
<para>
- <!--
- Describe how the filter options are organized in general.
- This part is optional, but helps if the filter options dialog is a bit
- more complex e.g. has some tabs etc.
- -->
+ Most of the options are organized under three tabs: Curve Pattern,
+ Fixed Gear, and Size.
</para>
<figure>
<title><quote>Spyrogimp</quote> options</title>
@@ -75,105 +122,348 @@
fileref="images/filters/render/spyrogimp.png" />
</imageobject>
</mediaobject>
+
</figure>
+ <note>
+ <para>
+ This filter has been totally reimplemented since gimp
+ 2.10.10 . If you are using an older version of gimp, your dialog will
+ look different.
+ </para>
+ </note>
+ <sect4>
+ <title>Options Above the Tabs</title>
+ <variablelist>
+ <varlistentry>
+ <term>Curve Type</term>
+ <listitem>
+ <para>
+ The available curve types are: <guimenuitem>Spyrograph</guimenuitem>,
+ <guimenuitem>Epitrochoid</guimenuitem>, <guimenuitem>Sine</guimenuitem>, and
+ <guimenuitem>Lissajous</guimenuitem>. These correspond to
+ physical models for drawing them, using either gears or springs.
+ Spyrograph and Epitrochoid curves are obtained by using two gears
+ - a fixed gear, and a moving gear.
+ A <guimenuitem>Spyrograph</guimenuitem> pattern is obtained when
+ the moving gear is rotated inside the fixed gear.
+ When the moving gear is outside the fixed gear, an
+ <guimenuitem>Epitrochoid</guimenuitem> pattern is generated.
+ The <guimenuitem>Sine</guimenuitem> curve uses the fixed gear, but
+ instead of a moving gear, there is a spring that moves
+ perpendicular to the fixed gear's edge.
+ The <guimenuitem>Lissajous</guimenuitem> curve is generated by two springs - that move on
+ the x and y axis - it does not use the fixed ring at all, and thus is not affected by
+ changing it.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Tool</term>
+ <listitem>
+ <para>
+ The gimp tool with which to draw the pattern. The first tool is named
+ <guimenuitem>Preview</guimenuitem> and its purpose is to draw quickly, rather than
+ beautifully - so the pattern can be previewed. The other available tools are:
+ <guimenuitem>PaintBrush</guimenuitem>, <guimenuitem>Pencil</guimenuitem>,
+ <guimenuitem>AirBrush</guimenuitem>, <guimenuitem>Stroke</guimenuitem>,
+ <guimenuitem>Ink</guimenuitem>, and <guimenuitem>MyPaintBrush</guimenuitem>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Long Gradient</term>
+ <listitem>
+ <para>
+ When unchecked, the current tool settings will be used - this can either
+ produce a gradient or not, depending on the tool settings.
+ When checked, the plugin will produce a long gradient to match the length of the pattern,
+ based on the current gradient, the "Reverse" setting, and the
+ <guilabel>Repeat</guilabel> mode from the gradient tool settings.
+ Setting the <guilabel>Repeat</guilabel> mode to <guimenuitem>Triangle Wave</guimenuitem>
+ will produce a pattern that changes continuously, with no abrupt breaks. This is done
+ by using the gradient followed by its reverse. Any other <guilabel>Repeat</guilabel> mode
+ will simply use the gradient from start to finish.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect4>
+
+ <sect4>
+ <title>Curve Pattern Tab</title>
+ <figure>
+ <title>
+ <quote>Spyrogimp</quote> filter options (Curve Pattern)
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata format="PNG" fileref="images/filters/render/spyrogimp1.png"/>
+ </imageobject>
+ <caption>
+ <para>
+ The inner <guilabel>Toy Kit</guilabel> tab is shown on the right.
+ </para>
+ </caption>
+ </mediaobject>
+ </figure>
+ <para>
+ Specify pattern using either the <guilabel>Gears</guilabel> or <guilabel>Toy Kit</guilabel> tabs.
+ The pattern is specified only by the active tab. Toy Kit is similar to Gears,
+ but it uses gears and hole numbers which are found in toy kits.
+ If you follow the instructions from the toy kit manuals, you should obtain similar results.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>Fixed Gear Teeth</term>
+ <listitem>
+ <para>
+ Number of teeth of fixed gear. The size of the fixed gear is
+ proportional to the number of teeth.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Moving Gear Teeth</term>
+ <listitem>
+ <para>
+ Number of teeth of moving gear. The size of the moving gear is
+ proportional to the number of teeth.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Hole percent</term>
+ <listitem>
+ <para>
+ How far is the hole from the center of the moving gear.
+ 100% means that the hole is at the gear's edge.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>
+ The <guilabel>Toy Kit</guilabel> tab also has <guilabel>Fixed Gear Teeth</guilabel>
+ and <guilabel>Moving Gear Teeth</guilabel> options, however, these are menus
+ which limited to gear sizes that are provided with toy kits for drawing Spyrographs.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>Hole Number</term>
+ <listitem>
+ <para>
+ Hole #1 is at the edge of the gear.
+ The maximum hole number is near the center.
+ The maximum hole number is different for each gear.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>
+ Below the tabs there is an additional option.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>Rotation</term>
+ <listitem>
+ <para>
+ Rotation of the pattern, in degrees.
+ The starting position of the moving gear in the fixed gear.
+ Note that this also changes the pattern when drawing Lissajous curves.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect4>
+
+ <sect4>
+ <title>Fixed Gear Tab</title>
+ <figure>
+ <title>
+ <quote>Spyrogimp</quote> filter options (Fixed Gear)
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata format="PNG" fileref="images/filters/render/spyrogimp2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <variablelist>
+ <varlistentry>
+ <term>Shape</term>
+ <listitem>
+ <para>
+ The shape of the fixed gear to be used inside current selection.
+ <itemizedlist>
+ <listitem>
+ <para>
+ <guimenuitem>Circle</guimenuitem>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <guimenuitem>Rack</guimenuitem> is a long round-edged shape provided in the toy kits.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <guimenuitem>Frame</guimenuitem> hugs the boundaries of the rectangular selection,
+ use hole=100 in Gear notation to touch boundary.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <guimenuitem>Selection</guimenuitem> will hug boundaries of current selection -
+ try something non-rectangular.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <guimenuitem>Polygon-Star</guimenuitem> morphs from an n-sided polygon (morph=0)
+ to an n-sided star (morph=0.3) to a crazy flower (morph=1).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <guimenuitem>Sine</guimenuitem> with morph=0, it is just like a circle,
+ but becomes more wavy as morph increases.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <guimenuitem>Bumps</guimenuitem> morphs from a polygon (morph=0) to a scalloped circle.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Sides</term>
+ <listitem>
+ <para>
+ Number of sides of the shape. This applies only to the <guimenuitem>Polygon-Star</guimenuitem>,
+ <guimenuitem>Sine</guimenuitem>, and <guimenuitem>Bumps</guimenuitem> shapes.
+ Otherwise this option is disabled.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Morph</term>
+ <listitem>
+ <para>
+ Morph fixed gear shape. This applies only to the <guimenuitem>Polygon-Star</guimenuitem>,
+ <guimenuitem>Sine</guimenuitem>, and <guimenuitem>Bumps</guimenuitem> shapes.
+ Otherwise this option is disabled
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Rotation</term>
+ <listitem>
+ <para>
+ Rotation of the fixed gear, in degrees.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect4>
+
+ <sect4>
+ <title>Size Tab</title>
+ <figure>
+ <title>
+ <quote>Spyrogimp</quote> filter options (Size)
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata format="PNG"
+ fileref="images/filters/render/spyrogimp3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <variablelist>
+ <varlistentry>
+ <term>Margin (px)</term>
+ <listitem>
+ <para>
+ Margin from the edge of selection. This controls the size of the pattern.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Make width and height equal</term>
+ <listitem>
+ <para>
+ When unchecked, the pattern will fill the current image or selection.
+ When checked, the pattern will have same width and height, and will be centered.
+ The difference between checked and unchecked will only be noticed if the
+ size of the width and height of the selection differ.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect4>
+
+ <sect4>
+ <title>Buttons Below the Tabs</title>
+ <variablelist>
+ <varlistentry>
+ <term>Redraw</term>
+ <listitem>
+ <para>
+ If you change the settings of a tool, change color, or change the selection
+ (i.e., any settings outside of the plugin that effect the pattern),
+ press this to preview how the pattern looks.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Reset</term>
+ <listitem>
+ <para>
+ Resets the dialog to its default options.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Cancel</term>
+ <listitem>
+ <para>
+ Delete the temporary layer, and exit the plugin.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>OK</term>
+ <listitem>
+ <para>
+ Render pattern to image. If <guilabel>Keep Layer</guilabel> is unchecked, this might take
+ some extra time to complete, as the pattern needs to be redrawn on the active layer.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Keep Layer</term>
+ <listitem>
+ <para>
+ Determines what will happen to the temporary layer once <guibutton>OK</guibutton> is pressed.
+ If checked, then once OK is pressed, the temporary layer is kept, and the plugin exits quickly.
+ If unchecked, the layer is deleted, and the pattern is redrawn on the active layer.
+ </para>
+ <para>
+ One reason to not keep the layer, is that by using specific paint application modes,
+ redrawing the pattern on the active layer can interact with it in interesting ways, that
+ produce a different pattern had it been drawn on a new layer.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect4>
- <variablelist>
- <varlistentry>
- <term>Type</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Shape</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Outer teeth</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Inner teeth</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Margin (pixels)</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Hole ratio</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Start angle</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Tool</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Brush</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Color method</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Color</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Gradient</term>
- <listitem>
- <para>
- TODO
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
</sect3>
-</sect2>
+
+</sect2>
\ No newline at end of file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]