Practical Design with Artlandia

(Artlandia^®) Demo Series

Copyright © 1998-2001 by Artlandia, Inc. This notebook demonstrates some of the designer tools available in Artlandia. The notebook may be copied or distributed freely, as long as it is distributed in its entirety. All other rights reserved. In particular, reproduction of individual images without the prior written permission of the copyright holder is expressly prohibited. Questions and comments are welcome at info@artlandia.com. More information about Artlandia and related products is available at http://www.artlandia.com. For more information about the Graphica books visit http://www.graphica.com. Artlandia is a registered trademark of Artlandia, Inc. Graphica is a trademark of Wolfram Media, Inc. All other product names are trademarks of their producers. The notebook excerpted from The Artlandia Guide, Champaign, IL: Artlandia, Inc., 1998.

Artlandia is a Mathematica-based application that lets you easily create patterns, ornaments, and designs for fun or practical purposes. Images generated with Artlandia adorn textiles, wallcoverings, gift wraps, and book and magazine covers; other images have been used for fine art pieces. Following describes how one such image was produced.

The Zigzags Pattern

The Zigzags pattern is constructed by embellishing a few wavy lines with zigzags overlapped with intermittent dots.

Load Artlandia.

<< Artlandia`

These are the image colors and the background color for the pattern.

colors = {Banana, GeraniumLake, LightSalmon, Gold};
background = Raspberry;

ColorBar[Flatten[{background,  colors}], 
      OrderingFunction -> None];

Wavy lines are computed using the Artlandia's ad hoc function SmoothArray that creates a high-order interpolation of a shorter natural array.

This is a typical smooth array.

ListPlot[SmoothArray[100]];

This sets the number of wavy lines and the number of points in each line.

lines = 20; points = 50;

This creates wavy lines. By giving the smooth arrays appropriate bounds, we make them barely intersect. Then we spread the lines horizontally using the function Crown.

\(\(traces = 
        \(Crown[SmoothArray[points, {1, 1.4} + #\/2], 
              {{0, 0}, {0, lines\  .75}}] &\)/@Range[lines];\)\)

Here are the traces of the wavy lines.

Show[Graphics[Map[Point, traces, {2}]], 
      AspectRatio -> Automatic];

This sets the thickness and the point size multiplier for the embellishments.

thickness  =  NaturalArray[lines, {1, 1.5}];

psizemultiplier = 2;

In the next step, we create randomly colored zigzags around each wavy line and decorate the wavy lines with colored dots. The zigzags are computed using the ad hoc function Zigzag. By selecting the length of the array of points that form the zigzags equal to the number of points in the wavy lines, we make the dots centered between the segments.

Show[
        Graphics[
          MapThread[{{RandomElement[colors], AbsoluteThickness[#], 
                  Zigzag[Length[#2],  { .5,  .75} #, #2]}, {RandomElement[
                    colors], AbsolutePointSize[psizemultiplier #], 
                  Point /@ #2}} &, {thickness, traces}]], 
        AspectRatio -> Automatic, PlotRange -> All, 
        Background -> background];

This trims the previous pattern from all sides.

Zoom[%,  .9];

The trimming sets the appropriate plot range and is an alternative to explicitly specifying control points when we form a tile from a graphics.

This makes a tile of the symmetry group 𝓅4ℊ based on the above pattern. By setting the option Boundary to True we retain in the pattern all the parts of the lines that intersect the boundary of the unit cell.

Tile[%, 𝓅4ℊ,  Boundary -> True]

This is the 2 × 2 tiling made from the tile, trimmed from all sides.

Zoom[
      Tiling[%, {2, 2}, Background -> background, 
        AspectRatio -> Automatic, PlotRange -> All],  .7];

A similar image has been successfully licensed to a textile manufacturer.