From Evil Mad Scientist Wiki
Jump to: navigation, search
This wiki page is part of the documentation for The Original Egg-Bot.
Click here to return to the Egg-Bot overview.

<<< Reorder Paths for Speed || Stretch


In Inkscape -- and on your monitor -- your drawing is flat. But, when you plot your drawing on a round object, you subject your drawing to a transformation which changes its appearance. A horizontal line in your drawing will have the same physical length when printed on paper regardless of where that line appears in your drawing. That is not the case when you plot horizontal lines onto a sphere or egg. A horizontal line in drawing becomes a line of latitude when plotted with the Eggbot. Moving this horizontal line up or down in your drawing (away from the midline of the page) moves the corresponding line of latitude towards one egg pole or the other. But, something happens to lines of latitude as they approach either pole: their circumference decreases. And, any line segment along a line of latitude decreases in length as the line of latitude approaches either pole [1]. The result of this effect is that if you put two identically sized figures in your drawing, the resulting egg plot will produce them with different sizes if one of the figures is closer to the equator than the other. The object closer to the equator will be larger than the one closer to a pole. This effect of shrinking near the poles can be annoying when, for example, plotting several lines of text. It can causes squaers to appear bloated near the equator and shrunken near the poles.

To combat this effect, it is possible to horizontally stretch elements of your drawing. The amount of stretch should increase the closer the object is to a pole. Such stretching is what this extension does. When applied to the drawing,


it produces the result,


Note how the closer a horizontal line is to either the top or bottom edge of the drawing -- the poles of your egg -- the more that line is stretched.

The stretching is done such that a vertical line through the horizontal midpoint is unchanged. If nothing is selected when the extension is applied, then the horizontal midpoint is at half the page's width. If, however, one or more objects are selected, then the horizontal midpoint is the midpoint of the shortest horizontal line spanning all the selected objects (i.e., the horizontal midpoint of the bounding box containing all the selected objects) [2].

The Stretch extension has two adjustable settings. The first setting, vertical smoothing, is used to break long line segments into shorter segments before stretching. To illustrate the effect of this setting, consider the following figure,


From left to right, the vertical smoothing values were 200, 100, and 10. The smaller the value, the smoother the result will be. A value between 5 and 10 is generally sufficient. The second value you can set, curve smoothing, is the same value as in the Eggbot Control extension. It effects how smoothly arcs, circles, eliipses, and curves are rendered.

In the following example, text within a box is shown unstretched on the left and stretched on the right,


The box and text were stretched as a whole (i.e., they were not individually stretched). The result of plotting the two on an egg is shown below. The egg on the left is the unstretched box and text. The egg on the right shows the stretched text and box. The picture of the egg on the right does not clearly show the effect of the stretching -- in real life the box looks very rectilinear. The results do not show well in a photograph: the photographic process is, by its very nature, producing yet another transformation as it maps the three-dimensional, spherical egg plot to a two-dimensional flat image.


Apply this extension right before plotting after first saving your drawing. This extension will reduce every object in your drawing to sequences of line segments. Objects drawn as circles, squares, etc. will be reduced to sequences of line segments. Inkscape will no longer recognize them as being anything but a bunch of line segments.


1. Note that the angular length of the line segment stays the same just as the angular length of a complete line of latitude -- 360 degrees -- remains unchanged.
2. This spanning horizontal line or bounding box does not take into account the cylindrical nature of your drawing. I.e., it does not recognize that left and right edges of your drawing touch when plotted on an egg. If you have such objects, drag them elsewhere in your drawing, stretch them and then drag them back to the edges.

<<< Reorder Paths for Speed || Stretch