Creating a Serpentine Marbling pattern was
not much of a challenge because the folds did not branch and merge.
Some patterns look as though the tines meet and separate.
One beautiful marbling pattern used for endpapers looks like an array
of patterned scallop shells. With their sinews splitting and merging,
it is difficult to see how such patterns are generated.
Dan St. John of Chena River Marblers was kind enough to
explain that this pattern is produced by sinusoidal motion of a comb
having two sets of tines offset both in the direction and
perpendicular to the direction of the stroke.
Splitting the offset comb into two parts and stroking each separately
allows these patterns to be produced with the tools already developed.
In the progression below, the contents of the PostScript procedure
Composite-map are displayed with the change from the previous
contents in red. Composite-map takes
an x and y coordinate pair on the stack and leaves the transformed x
and y on the stack.
Here are paint circles stroked upward with a fine-toothed comb.
- exch 180 add exch 110 add
- 0 1 [ 0 25 50 75 100 125 150 175 200
225 250 275 300 325 350 375 ]
0 Line-deformation
The first line moves the center of the paint-circles to the centerline
of the drawing; and down to counteract the upward drag of the combing.
Make horizontal sinusoidal displacements like the
serpentine case.
- exch 180 add exch 110 add
- 0 1 [ 0 25 50 75 100 125 150 175 200
225 250 275 300 325 350 375 ]
0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
Stroke two tines straight upward.
- exch 180 add exch 110 add
- 0 1 [ 0 25 50 75 100 125 150 175 200
225 250 275 300 325 350 375 ]
0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
- 0 1 [ 125 325 ] 0 Line-deformation
Subtract the sinusoidal displacement; now those last two strokes are
sinusoidal.
- exch 180 add exch 110 add
- 0 1 [ 0 25 50 75 100 125 150 175 200
225 250 275 300 325 350 375 ]
0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
- 0 1 [ 125 325 ] 0 Line-deformation
- dup 2 mul sin -45 mul 3 2 roll add exch
Now apply the opposite horizontal sinusoidal displacement.
- exch 180 add exch 110 add
- 0 1 [ 0 25 50 75 100 125 150 175 200
225 250 275 300 325 350 375 ]
0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
- 0 1 [ 125 325 ] 0 Line-deformation
- dup 2 mul sin -90 mul 3 2 roll add exch
One displacement of -90*sin replaces two displacements of -45*sin.
Stroke three tines straight upward.
- exch 180 add exch 110 add
- 0 1 [ 0 25 50 75 100 125 150 175 200
225 250 275 300 325 350 375 ]
0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
- 0 1 [ 125 325 ] 0 Line-deformation
- dup 2 mul sin -90 mul 3 2 roll add exch
- 0 1 [ 25 225 425 ] 0 Line-deformation
The third tine is off-screen to the right.
Finally, subtract the sinusoidal displacement.
- exch 180 add exch 110 add
- 0 1 [ 0 25 50 75 100 125 150 175 200
225 250 275 300 325 350 375 ]
0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
- 0 1 [ 125 325 ] 0 Line-deformation
- dup 2 mul sin -90 mul 3 2 roll add exch
- 0 1 [ 25 225 425 ] 0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
[image is linked to PostScript file]
Variations
Reversing the direction of the initial combing results in a variant
looking more like giant clam shells.
- exch 180 add exch 180 add
- 0 -1 [ 0 25 50 75 100 125 150 175 200
225 250 275 300 325 350 375 ]
0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
- 0 1 [ 125 325 ] 0 Line-deformation
- dup 2 mul sin -90 mul 3 2 roll add exch
- 0 1 [ 25 225 425 ] 0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
[image is linked to PostScript file]
Reversing the direction of the final combing results in a variant like
a book cover I have seen.
- exch 180 add exch 110 add
- 0 1 [ 0 25 50 75 100 125 150 175 200
225 250 275 300 325 350 375 ]
0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
- 0 1 [ 125 325 ] 0 Line-deformation
- dup 2 mul sin -90 mul 3 2 roll add exch
- 0 -1 [ 25 225 425 ] 0 Line-deformation
- dup 2 mul sin 45 mul 3 2 roll add exch
[image is linked to PostScript file]
The dense crowding of contours in this pattern makes the sinusoidal
channels speckled when
raster-rendered.
[image is linked to PostScript file]
Oversampling by a factor of two in both directions reduces the
speckling significantly.
Drawing the contours rather than filling them makes images resembling
topographic maps. This image is oversampled.
Looking at a print of the entire projection of the paint circles, Carl
Mikkelsen noticed that outlines of the top and bottom of the figure
are similar. This naturally leads to the next
chapter, which extends marbling to a two-dimensional manifold.
Copyright © 2004, 2007, 2010, 2016 Aubrey Jaffer
I am a guest and not a member of the MIT Computer Science and Artificial Intelligence Laboratory.
My actions and comments do not reflect in any way on MIT.
|
| | Topological Computer Graphics
|
| agj @ alum.mit.edu
| Go Figure!
|