% cc.ps, art work. Title: "Two Views"
% larger circle: colors are all combinations satisfying:
% - 0,1, and 0.5 values in three color components,
% - at either 1 or 2 0.5 values
% - not 0 and 1 at the same time (i.e., not 1 0.5 0)
% smaller circle: colors are combinations of
% 0 or 1 values in three color components,
% but not 3 0's (white) or 3 1's (black)
%
% Explanation:
% Small upper image: all primary colors, simple,
% not necessarily bad.
% Large lower image: more complicated, interesting.
% Outer circle: darker versions of colors in
% outer circle of upper image.
% Inner circle: lighter versions of colors in
% inner circle of upper image.
% Middle two circles: odd colors.
% Patterns in lower image:
% "Bluish" colors alternate back and forth
% Similarly for "redish" and "greenish" colors.
%
/r 200 def % size of larger circle
/path1 { % stack: rp; a third segment of a circle
/rp exch def
newpath
0 0 moveto % everything centered at origin
rp 120 cos mul rp 120 sin mul lineto
0 0 rp 120 0 arcn
closepath
} def % path1
/inch {72 mul} def
/back { % make background black
newpath
0 0 moveto
8.5 inch 0 lineto
8.5 inch 11.7 inch lineto
8.5 inch neg 11.7 inch lineto
closepath
1 1 1 0 setcmykcolor % black
fill
} def % back
/doit { % do larger circle
% circle 1 (outer)
r path1 % feed r in as size
0.5 1 1 0 setcmykcolor
fill
120 rotate
r path1
1 1 0.5 0 setcmykcolor
fill
120 rotate
r path1
1 0.5 1 0 setcmykcolor
fill
120 rotate
% circle 2
180 rotate
/s r .8 mul def
s path1
0.5 1 0.5 0 setcmykcolor
fill
120 rotate
s path1
1 0.5 0.5 0 setcmykcolor
fill
120 rotate
s path1
0.5 0.5 1 0 setcmykcolor
fill
120 rotate
180 neg rotate
% circle 3
120 neg rotate
/t r .6 mul def
t path1
0.5 0 0.5 0 setcmykcolor
fill
120 rotate
t path1
0 0.5 0.5 0 setcmykcolor
fill
120 rotate
t path1
0.5 0.5 0 0 setcmykcolor
fill
120 rotate
120 rotate
% circle 4 (inner)
60 neg rotate
/u r .4 mul def
u path1
0.5 0 0 0 setcmykcolor
fill
120 rotate
u path1
0 0 0.5 0 setcmykcolor
fill
120 rotate
u path1
0 0.5 0 0 setcmykcolor
fill
120 rotate
60 rotate
} def % doit
/doit2 { % do smaller circle
% circle 1 (outer)
/s r 0.5 mul def
s path1
0 1 1 0 setcmykcolor
fill
120 rotate
s path1
1 1 0 0 setcmykcolor
fill
120 rotate
s path1
1 0 1 0 setcmykcolor
fill
120 rotate
% circle 4 (inner)
180 rotate
/t r 0.3 mul def
t path1
0 1 0 0 setcmykcolor
fill
120 rotate
t path1
1 0 0 0 setcmykcolor
fill
120 rotate
t path1
0 0 1 0 setcmykcolor
fill
120 rotate
180 neg rotate
} def % doit2
back % black background
300 300 translate
doit % larger circle in lower half
0 350 translate
doit2 % smaller circle in upper half
showpage