%PARC logo
%written by John Warnock
%last edited by Maureen Stone

(!dx) 0 .def
(!dy) 0 .def
(trans) ((!dy) .exch !dy .add .store (!dx) .exch !dx .add .store).cvx .def
(settrans) ((!dy) .exch .store (!dx) .exch .store).cvx .def
(dotrans) (!dy .add .exch !dx .add .exch).cvx .def
(lineto) (dotrans .lineto).cvx .def
(moveto) (dotrans .moveto).cvx .def
(movetonext) (dotrans .movetonext).cvx .def

(P)
(
0 0 movetonext
0 6 lineto
3 3.5 trans
270 450 2.5 36 (lineto) .cvx narc
-3 -3.5 trans
3 0 lineto
).cvx .def

(P')
(
0 dt .add 0 dt .add movetonext
0 dt .add 6 dt .sub lineto
3 3.5 trans
270 450 2.5 dt .sub 36 (lineto) .cvx narc
-3 -3.5 trans
3 dt .sub 1. dt .add lineto
3 dt .sub 0 dt .add lineto
).cvx .def


(A)
(
0 0 movetonext
4 6 lineto
6 6  lineto
6.25 5.75  lineto
6.25 .25  lineto
6 0  lineto
3.75 0 lineto
3.75 1.5 .75 .mul lineto
3 0 lineto
).cvx .def

(A')
(
0 dt 1 1 1.5 .div .add .5 .exp .mul dt 1.5 .div .add .add 0 dt .add movetonext
4 dt 1.5 .div .add 6 dt .sub lineto
6 dt 1.414 .div .sub 6 dt .sub  lineto
6.25 5.75 dt 1.414 .mul .sub  lineto
6.25 .25 dt 1.414 .mul .add    lineto
6 dt 1.414 .div .sub 0 dt .add  lineto
3.75 dt .add 0 dt .add lineto
3.75 dt .add 3.75 dt .add 3 dt 1.5 .div .sub .sub 1.5 .mul dt .add  lineto
3 dt 1.5 .div .sub 0 dt .add lineto
).cvx .def

(R)
(
.25 0 movetonext
0 .25 lineto
0 5.75  lineto
.25 6  lineto
3 3.5 trans
270 450 2.5 36 (lineto) .cvx narc
-3 -3.5 trans
3 0  lineto

3 1 movetonext
3 4. lineto
7. 0  lineto
4 0 lineto
).cvx .def

(R')
(
.25 dt 1.414 .div .add  0 dt .add movetonext
0 .25 dt 1.414 .mul .add lineto
0 5.75 dt 1.414 .mul .sub lineto
.25 dt 1.414 .div .add 6 dt  .sub  lineto
3 3.5 trans
270 dt 2.5 .atan .sub 450 2.5 dt .sub 36 (lineto) .cvx narc
-3 -3.5 trans
3 dt .sub 0 dt .add  lineto

3 1 dt 1.414 .mul .add movetonext
3 4. dt 1.414 .mul .sub lineto
7. dt 1.414 .mul .sub dt .sub 0 dt .add  lineto
4 dt 1.414 .div .add   0 dt .add  lineto
).cvx .def


(C)
(
.pushdc
(fp)(movetonext).cvx .def
3 3 trans
5 355 3 72 (fp (fp)(lineto).cvx .def) .cvx narc
-3 -3 trans
.popdc
3 3 3. 5 .sin .mul .add  lineto
3 3 3. 5 .sin .mul .neg .add  lineto
).cvx .def

(C')
((fp)(movetonext).cvx .def
.pushdc
3 3 trans
5 dt 3 .atan .add 355 dt 3 .atan .sub 3 dt .sub 72 (fp (fp)(lineto).cvx .def) .cvx narc
-3 -3 trans
.popdc
3 dt .sub 3 3. 5 .sin .mul .add dt .add  lineto
3 dt .sub  3 3. 5 .sin .mul dt .add  .neg .add  lineto
).cvx .def

(parc)
(0 0 settrans
.pushdc
1 1.5 .scale
.true .setopaque
 .pushdc
.black 
.flushpath
P 3 0 trans A 6.25 0 trans R 5. 0 trans C
.drawarea
.popdc
.pushdc
.white
0 0 settrans
.flushpath
P' 3 0 trans A' 6.25 0 trans R' 5. 0 trans C'
.drawarea .popdc
.pushdc
0 0 settrans
.flushpath
P' 3 0 trans A' 6.25 0 trans R' 5 0 trans C' 3 6.25 .add 5. .add .neg 0 trans
.cliparea
1 30. .div .dup .scale
1 1 1.5 .div .scale 
-.5 72 .mul -4.5 72 .mul .translate
0 0 .setcp (parc.ais) .drawimage
.popdc .popdc
).cvx .def
(dt) .1 .def