Fixed the documentation and the figures.

This commit is contained in:
Ron Wein 2006-03-13 14:18:11 +00:00
parent eb95c007b8
commit d1a2141f27
19 changed files with 1829 additions and 69 deletions

5
.gitattributes vendored
View File

@ -1053,16 +1053,21 @@ Minkowski_sum_2/demo/Minkowski_sum_2/Offset_demo.C -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/approx_offset.fig -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/approx_offset.pstex -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/approx_offset.pstex_t -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/convex_offset.eps -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/convex_offset.fig -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/convex_offset.pdf -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/ex_offset.fig -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/ex_offset.pdf -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/offset_conv.eps -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/offset_conv.fig -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/offset_conv.pdf -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/offset_decomp.eps -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/offset_decomp.fig -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/offset_decomp.pdf -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/onecyc_in.eps -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/onecyc_in.fig -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/onecyc_in.pdf -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/onecyc_out.eps -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/onecyc_out.fig -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/onecyc_out.pdf -text
Minkowski_sum_2/doc_tex/Minkowski_sum_2/fig/sum_triangles.fig -text

View File

@ -0,0 +1,277 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: convex_offset.fig
%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5
%%CreationDate: Mon Mar 13 16:15:37 2006
%%For: wein@lap-halperin2 (Ron Wein,M-18,+972-3-6406114,+972-9-9580491)
%%BoundingBox: 0 0 129 108
%Magnification: 0.5000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 108 moveto 0 0 lineto 129 0 lineto 129 108 lineto closepath clip newpath
-120.1 198.8 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0 slj 0 slc
0.03150 0.03150 sc
%
% Fig objects follow
%
%
% here starts figure with depth 60
% Polyline
0 slj
0 slc
0.000 slw
n 4725 5625 m 6300 5625 l 7200 4725 l 5850 3600 l 4725 4725 l
cp gs col17 1.00 shd ef gr
% here ends figure;
%
% here starts figure with depth 55
% Ellipse
7.500 slw
[15 45] 45 sd
1 slc
n 5850 3600 452 452 0 360 DrawEllipse gs col0 s gr
[] 0 sd
% Ellipse
[15 45] 45 sd
n 7200 4725 452 452 0 360 DrawEllipse gs col0 s gr
[] 0 sd
% Ellipse
[15 45] 45 sd
n 6300 5625 452 452 0 360 DrawEllipse gs col0 s gr
[] 0 sd
% Ellipse
[15 45] 45 sd
n 4725 4725 452 452 0 360 DrawEllipse gs col0 s gr
[] 0 sd
% Ellipse
[15 45] 45 sd
n 4725 5625 452 452 0 360 DrawEllipse gs col0 s gr
[] 0 sd
% here ends figure;
%
% here starts figure with depth 50
% Arc
7.500 slw
0 slc
gs clippath
7598 4448 m 7509 4352 l 7465 4393 l 7554 4489 l 7554 4489 l 7515 4403 l 7598 4448 l cp
eoclip
n 7208.2 4723.1 446.0 46.0105 -49.4818 arcn
gs col0 s gr
gr
% arrowhead
0 slj
n 7598 4448 m 7515 4403 l 7554 4489 l col0 s
% Arc
gs clippath
5621 3180 m 5520 3263 l 5558 3309 l 5659 3227 l 5659 3227 l 5571 3261 l 5621 3180 l cp
eoclip
n 5858.0 3570.4 424.6 -45.7945 -136.2957 arcn
gs col0 s gr
gr
% arrowhead
n 5621 3180 m 5571 3261 l 5659 3227 l col0 s
% Arc
gs clippath
4256 4607 m 4247 4736 l 4306 4741 l 4316 4611 l 4316 4611 l 4280 4699 l 4256 4607 l cp
eoclip
n 4661.6 4701.3 384.2 -130.7002 176.6119 arcn
gs col0 s gr
gr
% arrowhead
n 4256 4607 m 4280 4699 l 4316 4611 l col0 s
% Arc
gs clippath
4606 6097 m 4736 6108 l 4741 6048 l 4611 6037 l 4611 6037 l 4699 6075 l 4606 6097 l cp
eoclip
n 4705.2 5649.0 428.4 -175.7209 87.4915 arcn
gs col0 s gr
gr
% arrowhead
n 4606 6097 m 4699 6075 l 4611 6037 l col0 s
% Arc
gs clippath
6556 6041 m 6654 5957 l 6615 5911 l 6517 5995 l 6517 5995 l 6605 5960 l 6556 6041 l cp
eoclip
n 6323.1 5672.5 405.3 93.5489 42.0626 arcn
gs col0 s gr
gr
% arrowhead
n 6556 6041 m 6605 5960 l 6517 5995 l col0 s
% Polyline
[15 30] 30 sd
n 4725 6075 m 4725 5625 l
4275 5625 l gs col0 s gr [] 0 sd
% Polyline
[15 30] 30 sd
n 7515 5040 m 7200 4725 l
7502 4372 l gs col0 s gr [] 0 sd
% Polyline
[15 30] 30 sd
n 4410 4410 m 4725 4725 l
4275 4725 l gs col0 s gr [] 0 sd
% Polyline
[15 30] 30 sd
n 6300 6075 m 6300 5625 l
6615 5940 l gs col0 s gr [] 0 sd
% Polyline
gs clippath
7455 5143 m 7546 5050 l 7504 5008 l 7412 5100 l 7412 5100 l 7497 5058 l 7455 5143 l cp
eoclip
n 6620 5946 m
7515 5040 l gs col0 s gr gr
% arrowhead
n 7455 5143 m 7497 5058 l 7412 5100 l col0 s
% Polyline
gs clippath
6252 3307 m 6151 3224 l 6113 3270 l 6214 3353 l 6214 3353 l 6164 3273 l 6252 3307 l cp
eoclip
n 7498 4377 m
6144 3257 l gs col0 s gr gr
% arrowhead
n 6252 3307 m 6164 3273 l 6214 3353 l col0 s
% Polyline
[15 30] 30 sd
n 5535 3285 m 5850 3600 l
6152 3247 l gs col0 s gr [] 0 sd
% Polyline
gs clippath
4470 4307 m 4378 4399 l 4420 4441 l 4512 4349 l 4512 4349 l 4428 4392 l 4470 4307 l cp
eoclip
n 5535 3285 m
4410 4410 l gs col0 s gr gr
% arrowhead
n 4470 4307 m 4428 4392 l 4512 4349 l col0 s
% Polyline
gs clippath
4245 5510 m 4245 5640 l 4305 5640 l 4305 5510 l 4305 5510 l 4275 5600 l 4245 5510 l cp
eoclip
n 4275 4725 m
4275 5625 l gs col0 s gr gr
% arrowhead
n 4245 5510 m 4275 5600 l 4305 5510 l col0 s
% Polyline
gs clippath
6185 6105 m 6315 6105 l 6315 6045 l 6185 6045 l 6185 6045 l 6275 6075 l 6185 6105 l cp
eoclip
n 4725 6075 m
6300 6075 l gs col0 s gr gr
% arrowhead
n 6185 6105 m 6275 6075 l 6185 6045 l col0 s
% Polyline
n 3825 2925 m 7875 2925 l 7875 6300 l 3825 6300 l
cp gs col0 s gr
% here ends figure;
%
% here starts figure with depth 45
% Polyline
0 slj
1 slc
15.000 slw
n 4725 5625 m 6300 5625 l 7200 4725 l 5850 3600 l 4725 4725 l
4725 5625 l cp gs col0 s gr
% here ends figure;
$F2psEnd
rs
showpage
%%Trailer
%EOF

View File

@ -3,7 +3,7 @@ Landscape
Center
Metric
A4
55.00
50.00
Single
-2
1200 2

View File

@ -3,7 +3,7 @@ Landscape
Center
Inches
Letter
100.00
30.00
Single
-2
1200 2

View File

@ -0,0 +1,279 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: offset_conv.fig
%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5
%%CreationDate: Mon Mar 13 16:16:18 2006
%%For: wein@lap-halperin2 (Ron Wein,M-18,+972-3-6406114,+972-9-9580491)
%%BoundingBox: 0 0 129 108
%Magnification: 0.5000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 108 moveto 0 0 lineto 129 0 lineto 129 108 lineto closepath clip newpath
-120.1 198.8 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0 slj 0 slc
0.03150 0.03150 sc
%
% Fig objects follow
%
%
% here starts figure with depth 60
% Polyline
0 slj
0 slc
0.000 slw
n 4500 5625 m 7200 5625 l 7200 3600 l 6300 4725 l 4500 3825 l
cp gs col17 1.00 shd ef gr
% here ends figure;
%
% here starts figure with depth 50
% Arc
15.000 slw
0 slc
gs clippath
6666 4367 m 6539 4274 l 6486 4347 l 6613 4440 l 6613 4440 l 6543 4333 l 6666 4367 l cp
eoclip
n 6308.3 4724.0 458.4 -143.4528 -61.7913 arcn
gs col8 s gr
gr
% arrowhead
0 slj
7.500 slw
n 6666 4367 m 6543 4333 l 6613 4440 l col8 s
% Arc
15.000 slw
gs clippath
6918 3179 m 6803 3287 l 6864 3353 l 6980 3244 l 6980 3244 l 6862 3294 l 6918 3179 l cp
eoclip
n 7199.0 3594.3 454.0 0.5969 -141.2354 arcn
gs col8 s gr
gr
% arrowhead
7.500 slw
n 6918 3179 m 6862 3294 l 6980 3244 l col8 s
% Arc
15.000 slw
gs clippath
7674 5773 m 7696 5616 l 7607 5603 l 7584 5760 l 7584 5760 l 7647 5648 l 7674 5773 l cp
eoclip
n 7200.0 5625.0 450.0 90.0000 0.0000 arcn
gs col8 s gr
gr
% arrowhead
7.500 slw
n 7674 5773 m 7647 5648 l 7584 5760 l col8 s
% Arc
15.000 slw
gs clippath
4018 3678 m 4003 3835 l 4093 3844 l 4107 3686 l 4107 3686 l 4052 3802 l 4018 3678 l cp
eoclip
n 4488.6 3801.6 439.2 -59.2771 176.9438 arcn
gs col8 s gr
gr
% arrowhead
7.500 slw
n 4018 3678 m 4052 3802 l 4107 3686 l col8 s
% Arc
15.000 slw
gs clippath
4352 6095 m 4507 6121 l 4522 6033 l 4366 6007 l 4366 6007 l 4478 6071 l 4352 6095 l cp
eoclip
n 4511.2 5613.8 461.4 178.6028 91.3972 arcn
gs col8 s gr
gr
% arrowhead
7.500 slw
n 4352 6095 m 4478 6071 l 4366 6007 l col8 s
% Polyline
n 3825 2925 m 7875 2925 l 7875 6300 l 3825 6300 l
cp gs col0 s gr
% Polyline
15.000 slw
gs clippath
6002 4306 m 5904 4429 l 5974 4485 l 6072 4362 l 6072 4362 l 5963 4428 l 6002 4306 l cp
eoclip
n 6849 3315 m
5949 4446 l gs col8 s gr gr
% arrowhead
7.500 slw
n 6002 4306 m 5963 4428 l 6072 4362 l col8 s
% Polyline
15.000 slw
gs clippath
7695 3743 m 7695 3585 l 7605 3585 l 7605 3743 l 7605 3743 l 7650 3623 l 7695 3743 l cp
eoclip
n 7650 5625 m
7650 3600 l gs col8 s gr gr
% arrowhead
7.500 slw
n 7695 3743 m 7650 3623 l 7605 3743 l col8 s
% Polyline
15.000 slw
gs clippath
7057 6120 m 7215 6120 l 7215 6030 l 7057 6030 l 7057 6030 l 7177 6075 l 7057 6120 l cp
eoclip
n 4500 6075 m
7200 6075 l gs col8 s gr gr
% arrowhead
7.500 slw
n 7057 6120 m 7177 6075 l 7057 6030 l col8 s
% Polyline
15.000 slw
gs clippath
4849 3441 m 4708 3371 l 4668 3451 l 4809 3521 l 4809 3521 l 4722 3428 l 4849 3441 l cp
eoclip
n 6515 4325 m
4702 3418 l gs col8 s gr gr
% arrowhead
7.500 slw
n 4849 3441 m 4722 3428 l 4809 3521 l col8 s
% Polyline
15.000 slw
gs clippath
4005 5482 m 4005 5640 l 4095 5640 l 4095 5482 l 4095 5482 l 4050 5602 l 4005 5482 l cp
eoclip
n 4050 3825 m
4050 5625 l gs col8 s gr gr
% arrowhead
7.500 slw
n 4005 5482 m 4050 5602 l 4095 5482 l col8 s
% here ends figure;
%
% here starts figure with depth 45
% Polyline
0 slj
1 slc
15.000 slw
n 4500 5625 m 7200 5625 l 7200 3600 l 6300 4725 l 4500 3825 l
4500 5625 l cp gs col0 s gr
% here ends figure;
%
% here starts figure with depth 40
% Ellipse
7.500 slw
[60] 0 sd
n 5572 3402 180 180 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col8 s gr
[] 0 sd
% Ellipse
[60] 0 sd
n 6472 4572 180 180 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col8 s gr
[] 0 sd
% Ellipse
[60] 0 sd
n 5602 5632 180 180 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col8 s gr
[] 0 sd
% here ends figure;
%
% here starts figure with depth 35
/Times-Bold ff 269.88 scf sf
5503 3485 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold ff 269.88 scf sf
6407 4666 m
gs 1 -1 sc (2) col0 sh gr
/Times-Bold ff 269.88 scf sf
5534 5726 m
gs 1 -1 sc (1) col0 sh gr
% here ends figure;
$F2psEnd
rs
showpage
%%Trailer
%EOF

View File

@ -3,7 +3,7 @@ Landscape
Center
Metric
A4
100.00
50.00
Single
-2
1200 2
@ -41,6 +41,6 @@ Single
2 1 0 2 8 7 50 -1 -1 0.000 0 0 -1 1 0 2
0 0 1.00 90.00 120.00
4050 3825 4050 5625
4 0 0 35 -1 2 17 0.0000 0 195 150 5503 3485 0\001
4 0 0 35 -1 2 17 0.0000 0 195 150 6407 4666 2\001
4 0 0 35 -1 2 17 0.0000 0 195 150 5534 5726 1\001
4 0 0 35 -1 2 17 0.0000 0 195 135 5503 3485 0\001
4 0 0 35 -1 2 17 0.0000 0 195 135 6407 4666 2\001
4 0 0 35 -1 2 17 0.0000 0 195 135 5534 5726 1\001

View File

@ -0,0 +1,302 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: offset_decomp.fig
%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5
%%CreationDate: Mon Mar 13 16:16:33 2006
%%For: wein@lap-halperin2 (Ron Wein,M-18,+972-3-6406114,+972-9-9580491)
%%BoundingBox: 0 0 129 108
%Magnification: 0.5000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 108 moveto 0 0 lineto 129 0 lineto 129 108 lineto closepath clip newpath
-120.1 198.8 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0 slj 0 slc
0.03150 0.03150 sc
%
% Fig objects follow
%
%
% here starts figure with depth 60
% Polyline
0 slj
0 slc
0.000 slw
n 4500 5625 m 7200 5625 l 7200 3600 l 6300 4725 l 4500 3825 l
cp gs col17 1.00 shd ef gr
% here ends figure;
%
% here starts figure with depth 50
% Arc
30.000 slw
0 slc
gs clippath
4006 3698 m 3996 3836 l 4101 3843 l 4110 3706 l 4110 3706 l 4051 3807 l 4006 3698 l cp
eoclip
[60] 0 sd
n 4488.6 3801.6 439.2 -59.2771 176.9438 arcn
gs col21 s gr
gr
[] 0 sd
% arrowhead
0 slj
7.500 slw
n 4006 3698 m 4051 3807 l 4110 3706 l col21 s
% Arc
30.000 slw
gs clippath
5866 4977 m 5952 5085 l 6034 5020 l 5948 4912 l 5948 4912 l 5973 5027 l 5866 4977 l cp
eoclip
[15 15] 15 sd
n 6294.2 4721.2 445.5 -142.6609 134.1310 arcn
gs col8 s gr
gr
[] 0 sd
% arrowhead
7.500 slw
n 5866 4977 m 5973 5027 l 5948 4912 l col8 s
% Arc
30.000 slw
gs clippath
7690 5756 m 7711 5619 l 7607 5604 l 7587 5741 l 7587 5741 l 7654 5645 l 7690 5756 l cp
eoclip
[15 15] 15 sd
n 7203.8 5619.7 453.3 134.6822 0.9239 arcn
gs col8 s gr
gr
[] 0 sd
% arrowhead
7.500 slw
n 7690 5756 m 7654 5645 l 7587 5741 l col8 s
% Arc
30.000 slw
gs clippath
7635 5369 m 7549 5261 l 7467 5326 l 7553 5434 l 7553 5434 l 7529 5320 l 7635 5369 l cp
eoclip
[60] 0 sd
n 7204.0 5625.2 447.8 90.7630 -45.4702 arcn
gs col21 s gr
gr
[] 0 sd
% arrowhead
7.500 slw
n 7635 5369 m 7529 5320 l 7553 5434 l col21 s
% Arc
30.000 slw
gs clippath
6897 3187 m 6797 3282 l 6870 3358 l 6970 3262 l 6970 3262 l 6858 3298 l 6897 3187 l cp
eoclip
[15 15] 15 sd
n 7199.0 3594.3 454.0 0.5969 -141.2354 arcn
gs col8 s gr
gr
[] 0 sd
% arrowhead
7.500 slw
n 6897 3187 m 6858 3298 l 6970 3262 l col8 s
% Arc
30.000 slw
gs clippath
6643 4359 m 6537 4271 l 6469 4351 l 6575 4439 l 6575 4439 l 6529 4332 l 6643 4359 l cp
eoclip
n 6191.9 4796.1 574.6 -41.6887 -55.7864 arcn
gs col21 s gr
gr
% arrowhead
7.500 slw
n 6643 4359 m 6529 4332 l 6575 4439 l col21 s
% Arc
30.000 slw
gs clippath
4370 6108 m 4507 6129 l 4522 6025 l 4385 6005 l 4385 6005 l 4482 6072 l 4370 6108 l cp
eoclip
[60] 0 sd
n 4511.2 5613.8 461.4 178.6028 91.3972 arcn
gs col21 s gr
gr
[] 0 sd
% arrowhead
7.500 slw
n 4370 6108 m 4482 6072 l 4385 6005 l col21 s
% Polyline
n 3825 2925 m 7875 2925 l 7875 6300 l 3825 6300 l
cp gs col0 s gr
% Polyline
30.000 slw
[60] 0 sd
gs clippath
3997 5502 m 3997 5640 l 4102 5640 l 4102 5502 l 4102 5502 l 4050 5607 l 3997 5502 l cp
eoclip
n 4050 3825 m
4050 5625 l gs col21 s gr gr
[] 0 sd
% arrowhead
7.500 slw
n 3997 5502 m 4050 5607 l 4102 5502 l col21 s
% Polyline
30.000 slw
[60] 0 sd
gs clippath
4835 3426 m 4712 3364 l 4665 3458 l 4788 3519 l 4788 3519 l 4718 3426 l 4835 3426 l cp
eoclip
n 6515 4325 m
4702 3418 l gs col21 s gr gr
[] 0 sd
% arrowhead
7.500 slw
n 4835 3426 m 4718 3426 l 4788 3519 l col21 s
% Polyline
30.000 slw
[15 15] 15 sd
gs clippath
5984 4317 m 5898 4425 l 5980 4490 l 6066 4382 l 6066 4382 l 5960 4432 l 5984 4317 l cp
eoclip
n 6849 3315 m
5949 4446 l gs col8 s gr gr
[] 0 sd
% arrowhead
7.500 slw
n 5984 4317 m 5960 4432 l 6066 4382 l col8 s
% Polyline
30.000 slw
[15 15] 15 sd
gs clippath
6760 5889 m 6858 5987 l 6932 5913 l 6834 5815 l 6834 5815 l 6872 5927 l 6760 5889 l cp
eoclip
n 5985 5040 m
6885 5940 l gs col8 s gr gr
[] 0 sd
% arrowhead
7.500 slw
n 6760 5889 m 6872 5927 l 6834 5815 l col8 s
% Polyline
30.000 slw
[15 15] 15 sd
gs clippath
7702 3723 m 7702 3585 l 7597 3585 l 7597 3723 l 7597 3723 l 7650 3618 l 7702 3723 l cp
eoclip
n 7650 5625 m
7650 3600 l gs col8 s gr gr
[] 0 sd
% arrowhead
7.500 slw
n 7702 3723 m 7650 3618 l 7597 3723 l col8 s
% Polyline
30.000 slw
[60] 0 sd
gs clippath
6739 4460 m 6641 4362 l 6567 4436 l 6665 4534 l 6665 4534 l 6628 4423 l 6739 4460 l cp
eoclip
n 7515 5310 m
6615 4410 l gs col21 s gr gr
[] 0 sd
% arrowhead
7.500 slw
n 6739 4460 m 6628 4423 l 6665 4534 l col21 s
% Polyline
30.000 slw
[60] 0 sd
gs clippath
7077 6127 m 7215 6127 l 7215 6022 l 7077 6022 l 7077 6022 l 7182 6075 l 7077 6127 l cp
eoclip
n 4500 6075 m
7200 6075 l gs col21 s gr gr
[] 0 sd
% arrowhead
7.500 slw
n 7077 6127 m 7182 6075 l 7077 6022 l col21 s
% here ends figure;
%
% here starts figure with depth 45
% Polyline
0 slj
1 slc
15.000 slw
n 4500 5625 m 7200 5625 l 7200 3600 l 6300 4725 l 4500 3825 l
4500 5625 l cp gs col0 s gr
% Polyline
0 slc
[60 30 15 30] 0 sd
n 6300 4725 m
7200 5625 l gs col0 s gr [] 0 sd
% here ends figure;
$F2psEnd
rs
showpage
%%Trailer
%EOF

View File

@ -3,7 +3,7 @@ Landscape
Center
Metric
A4
100.00
50.00
Single
-2
1200 2

View File

@ -0,0 +1,484 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: onecyc_in.fig
%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5
%%CreationDate: Mon Mar 13 16:13:43 2006
%%For: wein@lap-halperin2 (Ron Wein,M-18,+972-3-6406114,+972-9-9580491)
%%BoundingBox: 0 0 195 131
%Magnification: 0.3000
%%EndComments
/MyAppDict 100 dict dup begin def
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 131 moveto 0 0 lineto 195 0 lineto 195 131 lineto closepath clip newpath
-21.4 146.0 translate
1 -1 scale
% This junk string is used by the show operators
/PATsstr 1 string def
/PATawidthshow { % cx cy cchar rx ry string
% Loop over each character in the string
{ % cx cy cchar rx ry char
% Show the character
dup % cx cy cchar rx ry char char
PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
false charpath % cx cy cchar rx ry char
/clip load PATdraw
% Move past the character (charpath modified the
% current point)
currentpoint % cx cy cchar rx ry char x y
newpath
moveto % cx cy cchar rx ry char
% Reposition by cx,cy if the character in the string is cchar
3 index eq { % cx cy cchar rx ry
4 index 4 index rmoveto
} if
% Reposition all characters by rx ry
2 copy rmoveto % cx cy cchar rx ry
} forall
pop pop pop pop pop % -
currentpoint
newpath
moveto
} bind def
/PATcg {
7 dict dup begin
/lw currentlinewidth def
/lc currentlinecap def
/lj currentlinejoin def
/ml currentmiterlimit def
/ds [ currentdash ] def
/cc [ currentrgbcolor ] def
/cm matrix currentmatrix def
end
} bind def
% PATdraw - calculates the boundaries of the object and
% fills it with the current pattern
/PATdraw { % proc
save exch
PATpcalc % proc nw nh px py
5 -1 roll exec % nw nh px py
newpath
PATfill % -
restore
} bind def
% PATfill - performs the tiling for the shape
/PATfill { % nw nh px py PATfill -
PATDict /CurrentPattern get dup begin
setfont
% Set the coordinate system to Pattern Space
PatternGState PATsg
% Set the color for uncolored pattezns
PaintType 2 eq { PATDict /PColor get PATsc } if
% Create the string for showing
3 index string % nw nh px py str
% Loop for each of the pattern sources
0 1 Multi 1 sub { % nw nh px py str source
% Move to the starting location
3 index 3 index % nw nh px py str source px py
moveto % nw nh px py str source
% For multiple sources, set the appropriate color
Multi 1 ne { dup PC exch get PATsc } if
% Set the appropriate string for the source
0 1 7 index 1 sub { 2 index exch 2 index put } for pop
% Loop over the number of vertical cells
3 index % nw nh px py str nh
{ % nw nh px py str
currentpoint % nw nh px py str cx cy
2 index oldshow % nw nh px py str cx cy
YStep add moveto % nw nh px py str
} repeat % nw nh px py str
} for
5 { pop } repeat
end
} bind def
% PATkshow - kshow with the current pattezn
/PATkshow { % proc string
exch bind % string proc
1 index 0 get % string proc char
% Loop over all but the last character in the string
0 1 4 index length 2 sub {
% string proc char idx
% Find the n+1th character in the string
3 index exch 1 add get % string proc char char+1
exch 2 copy % strinq proc char+1 char char+1 char
% Now show the nth character
PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
false charpath % string proc char+1 char char+1
/clip load PATdraw
% Move past the character (charpath modified the current point)
currentpoint newpath moveto
% Execute the user proc (should consume char and char+1)
mark 3 1 roll % string proc char+1 mark char char+1
4 index exec % string proc char+1 mark...
cleartomark % string proc char+1
} for
% Now display the last character
PATsstr dup 0 4 -1 roll put % string proc (char+1)
false charpath % string proc
/clip load PATdraw
neewath
pop pop % -
} bind def
% PATmp - the makepattern equivalent
/PATmp { % patdict patmtx PATmp patinstance
exch dup length 7 add % We will add 6 new entries plus 1 FID
dict copy % Create a new dictionary
begin
% Matrix to install when painting the pattern
TilingType PATtcalc
/PatternGState PATcg def
PatternGState /cm 3 -1 roll put
% Check for multi pattern sources (Level 1 fast color patterns)
currentdict /Multi known not { /Multi 1 def } if
% Font dictionary definitions
/FontType 3 def
% Create a dummy encoding vector
/Encoding 256 array def
3 string 0 1 255 {
Encoding exch dup 3 index cvs cvn put } for pop
/FontMatrix matrix def
/FontBBox BBox def
/BuildChar {
mark 3 1 roll % mark dict char
exch begin
Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata]
PaintType 2 eq Multi 1 ne or
{ XStep 0 FontBBox aload pop setcachedevice }
{ XStep 0 setcharwidth } ifelse
currentdict % mark [paintdata] dict
/PaintProc load % mark [paintdata] dict paintproc
end
gsave
false PATredef exec true PATredef
grestore
cleartomark % -
} bind def
currentdict
end % newdict
/foo exch % /foo newlict
definefont % newfont
} bind def
% PATpcalc - calculates the starting point and width/height
% of the tile fill for the shape
/PATpcalc { % - PATpcalc nw nh px py
PATDict /CurrentPattern get begin
gsave
% Set up the coordinate system to Pattern Space
% and lock down pattern
PatternGState /cm get setmatrix
BBox aload pop pop pop translate
% Determine the bounding box of the shape
pathbbox % llx lly urx ury
grestore
% Determine (nw, nh) the # of cells to paint width and height
PatHeight div ceiling % llx lly urx qh
4 1 roll % qh llx lly urx
PatWidth div ceiling % qh llx lly qw
4 1 roll % qw qh llx lly
PatHeight div floor % qw qh llx ph
4 1 roll % ph qw qh llx
PatWidth div floor % ph qw qh pw
4 1 roll % pw ph qw qh
2 index sub cvi abs % pw ph qs qh-ph
exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph
% Determine the starting point of the pattern fill
%(px, py)
4 2 roll % nw nh pw ph
PatHeight mul % nw nh pw py
exch % nw nh py pw
PatWidth mul exch % nw nh px py
end
} bind def
% Save the original routines so that we can use them later on
/oldfill /fill load def
/oldeofill /eofill load def
/oldstroke /stroke load def
/oldshow /show load def
/oldashow /ashow load def
/oldwidthshow /widthshow load def
/oldawidthshow /awidthshow load def
/oldkshow /kshow load def
% These defs are necessary so that subsequent procs don't bind in
% the originals
/fill { oldfill } bind def
/eofill { oldeofill } bind def
/stroke { oldstroke } bind def
/show { oldshow } bind def
/ashow { oldashow } bind def
/widthshow { oldwidthshow } bind def
/awidthshow { oldawidthshow } bind def
/kshow { oldkshow } bind def
/PATredef {
MyAppDict begin
{
/fill { /clip load PATdraw newpath } bind def
/eofill { /eoclip load PATdraw newpath } bind def
/stroke { PATstroke } bind def
/show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
/ashow { 0 0 null 6 3 roll PATawidthshow }
bind def
/widthshow { 0 0 3 -1 roll PATawidthshow }
bind def
/awidthshow { PATawidthshow } bind def
/kshow { PATkshow } bind def
} {
/fill { oldfill } bind def
/eofill { oldeofill } bind def
/stroke { oldstroke } bind def
/show { oldshow } bind def
/ashow { oldashow } bind def
/widthshow { oldwidthshow } bind def
/awidthshow { oldawidthshow } bind def
/kshow { oldkshow } bind def
} ifelse
end
} bind def
false PATredef
% Conditionally define setcmykcolor if not available
/setcmykcolor where { pop } {
/setcmykcolor {
1 sub 4 1 roll
3 {
3 index add neg dup 0 lt { pop 0 } if 3 1 roll
} repeat
setrgbcolor - pop
} bind def
} ifelse
/PATsc { % colorarray
aload length % c1 ... cn length
dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
} ifelse } ifelse
} bind def
/PATsg { % dict
begin
lw setlinewidth
lc setlinecap
lj setlinejoin
ml setmiterlimit
ds aload pop setdash
cc aload pop setrgbcolor
cm setmatrix
end
} bind def
/PATDict 3 dict def
/PATsp {
true PATredef
PATDict begin
/CurrentPattern exch def
% If it's an uncolored pattern, save the color
CurrentPattern /PaintType get 2 eq {
/PColor exch def
} if
/CColor [ currentrgbcolor ] def
end
} bind def
% PATstroke - stroke with the current pattern
/PATstroke {
countdictstack
save
mark
{
currentpoint strokepath moveto
PATpcalc % proc nw nh px py
clip newpath PATfill
} stopped {
(*** PATstroke Warning: Path is too complex, stroking
with gray) =
cleartomark
restore
countdictstack exch sub dup 0 gt
{ { end } repeat } { pop } ifelse
gsave 0.5 setgray oldstroke grestore
} { pop restore pop } ifelse
newpath
} bind def
/PATtcalc { % modmtx tilingtype PATtcalc tilematrix
% Note: tiling types 2 and 3 are not supported
gsave
exch concat % tilingtype
matrix currentmatrix exch % cmtx tilingtype
% Tiling type 1 and 3: constant spacing
2 ne {
% Distort the pattern so that it occupies
% an integral number of device pixels
dup 4 get exch dup 5 get exch % tx ty cmtx
XStep 0 dtransform
round exch round exch % tx ty cmtx dx.x dx.y
XStep div exch XStep div exch % tx ty cmtx a b
0 YStep dtransform
round exch round exch % tx ty cmtx a b dy.x dy.y
YStep div exch YStep div exch % tx ty cmtx a b c d
7 -3 roll astore % { a b c d tx ty }
} if
grestore
} bind def
/PATusp {
false PATredef
PATDict begin
CColor PATsc
end
} bind def
% left45
11 dict begin
/PaintType 1 def
/PatternType 1 def
/TilingType 1 def
/BBox [0 0 1 1] def
/XStep 1 def
/YStep 1 def
/PatWidth 1 def
/PatHeight 1 def
/Multi 2 def
/PaintData [
{ clippath } bind
{ 20 20 true [ 20 0 0 -20 0 20 ]
{<8020004010002008001004000802000401000200
8001004000802000401080200040100020080010
0400080200040100020080010040008020004010>}
imagemask } bind
] def
/PaintProc {
pop
exec fill
} def
currentdict
end
/P4 exch def
% vertical lines
11 dict begin
/PaintType 1 def
/PatternType 1 def
/TilingType 1 def
/BBox [0 0 1 1] def
/XStep 1 def
/YStep 1 def
/PatWidth 1 def
/PatHeight 1 def
/Multi 2 def
/PaintData [
{ clippath } bind
{ 8 16 true [ 8 0 0 -16 0 16 ]
{<11111111111111111111111111111111>}
imagemask } bind
] def
/PaintProc {
pop
exec fill
} def
currentdict
end
/P10 exch def
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0 slj 0 slc
0.01800 0.01800 sc
%
% Fig objects follow
%
%
% here starts figure with depth 50
% Polyline
0 slj
0 slc
0.000 slw
n 1950 2100 m 11925 2100 l 11925 7500 l 1950 7500 l
cp
% Polyline
15.000 slw
n 2250 6750 m 9750 6750 l 7500 2250 l 6000 2250 l 8250 5250 l 3000 5250 l
5250 2250 l 2250 2250 l
cp gs /PC [[1.00 1.00 1.00] [0.00 0.56 0.00]] def
15.00 15.00 sc P4 [16 0 0 -16 150.00 150.00] PATmp PATsp ef gr PATusp gs col12 s gr
% Polyline
n 11325 5175 m 10575 4425 l 9825 5175 l 10575 5925 l
cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 1.00]] def
15.00 15.00 sc P10 [8 0 0 -16 655.00 295.00] PATmp PATsp ef gr PATusp gs col1 s gr
% Polyline
7.500 slw
n 1200 900 m 12000 900 l 12000 8100 l 1200 8100 l
cp gs col0 s gr
% here ends figure;
$F2psEnd
rs
end
showpage
%%Trailer
%EOF

View File

@ -3,7 +3,7 @@ Landscape
Center
Inches
Letter
100.00
30.00
Single
-2
1200 2

View File

@ -0,0 +1,374 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: onecyc_out.fig
%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5
%%CreationDate: Mon Mar 13 16:14:08 2006
%%For: wein@lap-halperin2 (Ron Wein,M-18,+972-3-6406114,+972-9-9580491)
%%BoundingBox: 0 0 185 131
%Magnification: 0.3000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 131 moveto 0 0 lineto 185 0 lineto 185 131 lineto closepath clip newpath
-16.0 146.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0 slj 0 slc
0.01800 0.01800 sc
%
% Fig objects follow
%
%
% here starts figure with depth 70
% Polyline
0 slj
0 slc
7.500 slw
n 5625 1875 m 6000 1500 l 7500 1500 l 8250 2250 l 10500 6750 l 9750 7500 l
2250 7500 l 1500 6750 l 1500 2250 l 2250 1500 l 5250 1500 l
cp gs col4 0.50 tnt ef gr gs col4 s gr
% here ends figure;
%
% here starts figure with depth 60
% Polyline
0 slj
0 slc
7.500 slw
n 5625 2750 m 4312 4500 l 6937 4500 l
cp gs col7 1.00 shd ef gr gs col4 s gr
% here ends figure;
%
% here starts figure with depth 50
% Ellipse
7.500 slw
[60] 0 sd
n 5625 2295 225 225 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col8 s gr
[] 0 sd
% Polyline
0 slj
0 slc
n 900 900 m 11100 900 l 11100 8100 l 900 8100 l
cp gs col0 s gr
% here ends figure;
%
% here starts figure with depth 40
% Polyline
0 slj
0 slc
15.000 slw
gs clippath
7364 5148 m 7470 5290 l 7547 5233 l 7441 5091 l 7441 5091 l 7475 5216 l 7364 5148 l cp
eoclip
n 5250 2250 m
7500 5250 l gs col0 s gr gr
% arrowhead
n 7364 5148 m 7475 5216 l 7441 5091 l 7364 5148 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
8101 5919 m 8226 6044 l 8294 5976 l 8169 5851 l 8169 5851 l 8220 5970 l 8101 5919 l cp
eoclip
n 7500 5250 m
8250 6000 l gs col0 s gr gr
% arrowhead
n 8101 5919 m 8220 5970 l 8169 5851 l 8101 5919 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
8919 5398 m 9044 5273 l 8976 5205 l 8851 5330 l 8851 5330 l 8970 5280 l 8919 5398 l cp
eoclip
n 8250 6000 m
9000 5250 l gs col0 s gr gr
% arrowhead
n 8919 5398 m 8970 5280 l 8851 5330 l 8919 5398 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
8398 4580 m 8273 4455 l 8205 4523 l 8330 4648 l 8330 4648 l 8280 4530 l 8398 4580 l cp
eoclip
n 9000 5250 m
8250 4500 l gs col0 s gr gr
% arrowhead
n 8398 4580 m 8280 4530 l 8330 4648 l 8398 4580 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
3162 4452 m 2985 4452 l 2985 4548 l 3162 4548 l 3162 4548 l 3042 4500 l 3162 4452 l cp
eoclip
n 8250 4500 m
3000 4500 l gs col0 s gr gr
% arrowhead
n 3162 4452 m 3042 4500 l 3162 4548 l 3162 4452 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
2330 5101 m 2205 5226 l 2273 5294 l 2398 5169 l 2398 5169 l 2280 5220 l 2330 5101 l cp
eoclip
n 3000 4500 m
2250 5250 l gs col0 s gr gr
% arrowhead
n 2330 5101 m 2280 5220 l 2398 5169 l 2330 5101 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
2851 5919 m 2976 6044 l 3044 5976 l 2919 5851 l 2919 5851 l 2970 5970 l 2851 5919 l cp
eoclip
n 2250 5250 m
3000 6000 l gs col0 s gr gr
% arrowhead
n 2851 5919 m 2970 5970 l 2919 5851 l 2851 5919 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
3669 5398 m 3794 5273 l 3726 5205 l 3601 5330 l 3601 5330 l 3720 5280 l 3669 5398 l cp
eoclip
n 3000 6000 m
3750 5250 l gs col0 s gr gr
% arrowhead
n 3669 5398 m 3720 5280 l 3601 5330 l 3669 5398 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
5941 2408 m 6047 2266 l 5970 2209 l 5864 2351 l 5864 2351 l 5975 2284 l 5941 2408 l cp
eoclip
n 3750 5250 m
6000 2250 l gs col0 s gr gr
% arrowhead
n 5941 2408 m 5975 2284 l 5864 2351 l 5941 2408 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
5398 1580 m 5273 1455 l 5205 1523 l 5330 1648 l 5330 1648 l 5280 1530 l 5398 1580 l cp
eoclip
n 6000 2250 m
5250 1500 l gs col0 s gr gr
% arrowhead
n 5398 1580 m 5280 1530 l 5330 1648 l 5398 1580 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
1580 2101 m 1455 2226 l 1523 2294 l 1648 2169 l 1648 2169 l 1530 2220 l 1580 2101 l cp
eoclip
n 2250 1500 m
1500 2250 l gs col0 s gr gr
% arrowhead
n 1580 2101 m 1530 2220 l 1648 2169 l 1580 2101 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
1452 6588 m 1452 6765 l 1548 6765 l 1548 6588 l 1548 6588 l 1500 6708 l 1452 6588 l cp
eoclip
n 1500 2250 m
1500 6750 l gs col0 s gr gr
% arrowhead
n 1452 6588 m 1500 6708 l 1548 6588 l 1452 6588 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
2101 7419 m 2226 7544 l 2294 7476 l 2169 7351 l 2169 7351 l 2220 7470 l 2101 7419 l cp
eoclip
n 1500 6750 m
2250 7500 l gs col0 s gr gr
% arrowhead
n 2101 7419 m 2220 7470 l 2169 7351 l 2101 7419 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
9588 7548 m 9765 7548 l 9765 7452 l 9588 7452 l 9588 7452 l 9708 7500 l 9588 7548 l cp
eoclip
n 2250 7500 m
9750 7500 l gs col0 s gr gr
% arrowhead
n 9588 7548 m 9708 7500 l 9588 7452 l 9588 7548 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
10419 6898 m 10544 6773 l 10476 6705 l 10351 6830 l 10351 6830 l 10470 6780 l 10419 6898 l cp
eoclip
n 9750 7500 m
10500 6750 l gs col0 s gr gr
% arrowhead
n 10419 6898 m 10470 6780 l 10351 6830 l 10419 6898 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
8365 2373 m 8286 2215 l 8200 2258 l 8279 2416 l 8279 2416 l 8269 2288 l 8365 2373 l cp
eoclip
n 10500 6750 m
8250 2250 l gs col0 s gr gr
% arrowhead
n 8365 2373 m 8269 2288 l 8279 2416 l 8365 2373 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
7648 1580 m 7523 1455 l 7455 1523 l 7580 1648 l 7580 1648 l 7530 1530 l 7648 1580 l cp
eoclip
n 8250 2250 m
7500 1500 l gs col0 s gr gr
% arrowhead
n 7648 1580 m 7530 1530 l 7580 1648 l 7648 1580 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
6162 1452 m 5985 1452 l 5985 1548 l 6162 1548 l 6162 1548 l 6042 1500 l 6162 1452 l cp
eoclip
n 7500 1500 m
6000 1500 l gs col0 s gr gr
% arrowhead
n 6162 1452 m 6042 1500 l 6162 1548 l 6162 1452 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
5330 2101 m 5205 2226 l 5273 2294 l 5398 2169 l 5398 2169 l 5280 2220 l 5330 2101 l cp
eoclip
n 6000 1500 m
5250 2250 l gs col0 s gr gr
% arrowhead
n 5330 2101 m 5280 2220 l 5398 2169 l 5330 2101 l cp gs col7 1.00 shd ef gr col0 s
% Polyline
gs clippath
2412 1452 m 2235 1452 l 2235 1548 l 2412 1548 l 2412 1548 l 2292 1500 l 2412 1452 l cp
eoclip
n 5250 1500 m
2250 1500 l gs col0 s gr gr
% arrowhead
n 2412 1452 m 2292 1500 l 2412 1548 l 2412 1452 l cp gs col7 1.00 shd ef gr col0 s
% here ends figure;
%
% here starts figure with depth 30
% Ellipse
7.500 slw
[60] 0 sd
n 5670 3840 300 300 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col8 s gr
[] 0 sd
% Ellipse
[60] 0 sd
n 5700 6270 300 300 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col8 s gr
[] 0 sd
% Ellipse
[60] 0 sd
n 3075 5175 300 300 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col8 s gr
[] 0 sd
% Ellipse
[60] 0 sd
n 8250 5175 300 300 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col8 s gr
[] 0 sd
% Ellipse
[60] 0 sd
n 9825 2595 300 300 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col8 s gr
[] 0 sd
% here ends figure;
%
% here starts figure with depth 25
/Times-Bold ff 400.00 scf sf
5580 3975 m
gs 1 -1 sc (0) col0 sh gr
/Times-Bold ff 400.00 scf sf
5610 6405 m
gs 1 -1 sc (1) col0 sh gr
/Times-Bold ff 400.00 scf sf
2985 5310 m
gs 1 -1 sc (2) col0 sh gr
/Times-Bold ff 400.00 scf sf
8160 5310 m
gs 1 -1 sc (2) col0 sh gr
/Times-Bold ff 366.67 scf sf
5550 2430 m
gs 1 -1 sc (2) col0 sh gr
/Times-Bold ff 400.00 scf sf
9735 2730 m
gs 1 -1 sc (0) col0 sh gr
% here ends figure;
$F2psEnd
rs
showpage
%%Trailer
%EOF

View File

@ -3,25 +3,25 @@ Landscape
Center
Inches
Letter
100.00
30.00
Single
-2
1200 2
6 5370 3540 5970 4140
1 3 1 1 8 6 30 -1 20 4.000 1 0.0000 5670 3840 300 300 5670 3840 5970 3840
4 0 0 25 -1 2 24 0.0000 0 270 210 5580 3975 0\001
4 0 0 25 -1 2 24 0.0000 0 270 195 5580 3975 0\001
-6
6 5400 5970 6000 6570
1 3 1 1 8 6 30 -1 20 4.000 1 0.0000 5700 6270 300 300 5700 6270 6000 6270
4 0 0 25 -1 2 24 0.0000 0 270 210 5610 6405 1\001
4 0 0 25 -1 2 24 0.0000 0 270 195 5610 6405 1\001
-6
6 2775 4875 3375 5475
1 3 1 1 8 6 30 -1 20 4.000 1 0.0000 3075 5175 300 300 3075 5175 3375 5175
4 0 0 25 -1 2 24 0.0000 0 270 210 2985 5310 2\001
4 0 0 25 -1 2 24 0.0000 0 270 195 2985 5310 2\001
-6
6 7950 4875 8550 5475
1 3 1 1 8 6 30 -1 20 4.000 1 0.0000 8250 5175 300 300 8250 5175 8550 5175
4 0 0 25 -1 2 24 0.0000 0 270 210 8160 5310 2\001
4 0 0 25 -1 2 24 0.0000 0 270 195 8160 5310 2\001
-6
6 5400 2070 5850 2520
1 3 1 1 8 6 50 -1 20 4.000 1 0.0000 5625 2295 225 225 5625 2295 5850 2295
@ -29,7 +29,7 @@ Single
-6
6 9525 2295 10125 2895
1 3 1 1 8 6 30 -1 20 4.000 1 0.0000 9825 2595 300 300 9825 2595 10125 2595
4 0 0 25 -1 2 24 0.0000 0 270 210 9735 2730 0\001
4 0 0 25 -1 2 24 0.0000 0 270 195 9735 2730 0\001
-6
2 3 0 1 4 7 60 0 20 0.000 0 0 -1 0 0 4
5625 2750 4312 4500 6937 4500 5625 2750

View File

@ -48,8 +48,8 @@ in $P$ and in $Q$ and performing ``merge sort'' on the edges.
\begin{ccTexOnly}
\begin{center}
\begin{tabular}{c c}
\psfig{figure=Minkowski_sum_2/fig/onecyc_in.eps,width=2.5in,silent=} ~&~
\psfig{figure=Minkowski_sum_2/fig/onecyc_out.eps,width=2.5in,silent=}
\includegraphics{Minkowski_sum_2/fig/onecyc_in} ~&~
\includegraphics{Minkowski_sum_2/fig/onecyc_out} \\
\end{tabular}
\end{center}
\end{ccTexOnly}
@ -122,6 +122,10 @@ generates a smaller intermediate arrangement, hence it is faster and
consumes less space.
\end{description}
\subsection{Computing Minkowski Sum using Convolutions}
\label{mink_ssec:sum_conv}
%------------------------------------------------------
The function \ccc{minkowski_sum (P, Q)} accepts two simple polygons $P$
and $Q$, represented using the \ccc{Polygon_2<Kernel,Container>}
class-template and uses the convolution method in order to compute and
@ -154,11 +158,39 @@ in the example program \ccc{ex_sum_triangles.C}.}
The following example program constructs the Minkwoski sum of two triangles,
as depicted in Figure~\ref{mink_fig:sum_tri}. The result in this case is
a convex hexagon:
a convex hexagon. This program, as other example porgrams in this chapter,
includes the auxiliary header file \ccc{ms_rational_nt.h} which defines
\ccc{Number_type} as either \ccc{Gmpq} or \ccc{Quotient<MP_Float>},
depending on whther the {\sc Gmp} library is installed or not.
The file \ccc{print_util.h} includes auxiliary functions for printing polygons.
\ccIncludeExampleCode{../examples/Minkowski_sum_2/ex_sum_triangles.C}
% RWRW : Here should come another example, with non-convex polygons.
\begin{figure}[t]
\begin{ccTexOnly}
\begin{center}
\input{Minkowski_sum_2/fig/tight.pstex_t}
\end{center}
\end{ccTexOnly}
\begin{ccHtmlOnly}
<p><center>
<img src="./fig/tight.gif" border=0 alt="Minkowski sum of two non-convex polygon that contains holes">
</center>
\end{ccHtmlOnly}
\caption{Computing the Minkowski sum of two non-convex polygons $P$ and $Q$,
as done in the example programs \ccc{ex_sum_with_holes.C} and
\ccc{ex_sum_by_decomposition.C}.}
\label{mink_fig:sum_holes}
\end{figure}
In the following program we compute the Minkowski sum of two polygons
that are read from an input file. In this case, the sum is not simple
and contains four holes, as illustrated in Figure~\ref{mink_fig:sum_holes}.
Note that this example uses the predefined \cgal\ kernel with exact
constrcutions. In general, instantiating polygons with this kernel yield
the fastest running times for Minkowski-sum computations.
\ccIncludeExampleCode{../examples/Minkowski_sum_2/ex_sum_with_holes.C}
\subsection{Decomposition Strategies}
\label{mink_ssec:decomp}
@ -179,14 +211,15 @@ introduced in~\cite{???}. The convex decompositions that it creates
usually yield efficient running times for Minkowski sum computations:
\begin{itemize}
\item
The class \ccc{Optimal_convex_decomposition} uses the dynamic-programming
algorithm of Greene~\cite{g-dpcp-83} for computing an optimal decomposition
of a polygon into a minimal number of convex sub-polygons. The main drawback
of this strategy is that it runs in $O(n^4)$ time and $O(n^3)$ in the worst
case,where $n$ is the number of vertices in the input polygon.
The class \ccc{Optimal_convex_decomposition<Kernel>} uses the
dynamic-programming algorithm of Greene~\cite{g-dpcp-83} for computing an
optimal decomposition of a polygon into a minimal number of convex
sub-polygons. The main drawback of this strategy is that it runs in $O(n^4)$
time and $O(n^3)$ in the worst case,where $n$ is the number of vertices in
the input polygon.
%
\item
The class \ccc{Hertel_Mehlhorn_convex_decomposition} implements the
The class \ccc{Hertel_Mehlhorn_convex_decomposition<Kernel>} implements the
approximation algorithm suggested by Hertel and Mehlhorn~\cite{hm-ftsp-83},
which triangulates the input polygon and proceeds by throwing away
unnecessary triangulation edges.
@ -195,7 +228,7 @@ the number of sub-polygons it generates is not more than four
times the optimum.
%
\item
The class \ccc{Greene_convex_decomposition} is an implementation of
The class \ccc{Greene_convex_decomposition<Kernel>} is an implementation of
Greene's approximation algorithm~\cite{g-dpcp-83}, which computes a
convex decomposition of the polygon based on its partitioning into
$y$-monotone polygons. This algorithm runs in $O(n \log n)$ time
@ -203,7 +236,7 @@ and $O(n)$ space, and has the same approximation guarantee as
Hertel and Mehlhorn's algorithm.
%
\item
The class \ccc{short_side_angle_bisecttor_convex_decomposition} uses
The class \ccc{Small_side_angle_bisecttor_convex_decomposition<Kernel>} uses
a heuristic improvement to the angle-bisector decomposition method
suggested by Chazelle and Dobkin~\cite{cd-ocd-85}, which runs in
$O(n^2)$ time. It starts by examining each pair of reflex vertices
@ -219,7 +252,12 @@ diagonal that is closest to the angle bisector emanating from this
vertex.
\end{itemize}
% RWRW : Here comes an example.
The following example demonstrates the computation of the Minkowski sum
of the same input polygons as used in \ccc{ex_sum_with_holes.C} (as
depicted in Figure~\ref{mink_fig:sum_holes}), using the small-side
angle-bisector decomposition strategy:
\ccIncludeExampleCode{../examples/Minkowski_sum_2/ex_sum_by_decomposition.C}
\section{Offsetting a Polygon}
\label{mink_sec:offset}
@ -233,9 +271,9 @@ is widely known as \emph{offsetting} the polygon $P$ by a radius $r$.
\begin{ccTexOnly}
\begin{center}
\begin{tabular}{ccc}
\psfig{figure=Minkowski_sum_2/fig/convex_offset.eps,width=1.8in,silent=} &
\psfig{figure=Minkowski_sum_2/fig/offset_decomp.eps,width=1.8in,silent=} &
\psfig{figure=Minkowski_sum_2/fig/offset_conv.eps,width=1.8in,silent=} \\
\includegraphics{Minkowski_sum_2/fig/convex_offset} &
\includegraphics{Minkowski_sum_2/fig/offset_decomp} &
\includegraphics{Minkowski_sum_2/fig/offset_conv} \\
{\small (a)} & {\small (b)} & {\small (c)}
\end{tabular}
\end{center}
@ -285,43 +323,44 @@ illustration. We finally compute the winding numbers of the faces of the
arrangement induced by the convolution cycle to obtain the offset
polygon.
%RWRW : From here ...
\begin{figure}[t]
\begin{ccTexOnly}
\begin{center}
\includegraphics{Minkowski_sum_2/fig/ex_offset}
\end{center}
\end{ccTexOnly}
\begin{ccHtmlOnly}
<p><center>
<img src="./fig/ex_offset.gif" border=0 alt="Offsetting a polygon">
</center>
\end{ccHtmlOnly}
\caption{The offset computation performed by the example programs
\ccc{ex_exact_offset.C} and \ccc{ex_approx_offset.C}. The input polygon
is shaded and the boundary of its offset is drawn in a thick black line.}
\label{mink_fig:ex_offset}
\end{figure}
\ccIncludeExampleCode{../examples/Minkowski_sum_2/ex_exact_offset.C}
\subsection{Approximating the Offset with a Guaranteed Error-Bound}
\label{mink_ssec:approx_offset}
%------------------------------------------------------------------
\begin{figure}[t]
\begin{ccTexOnly}
\begin{center}
\input{Minkowski_sum_2/fig/approx_offset.pstex_t}
\end{center}
\end{ccTexOnly}
\begin{ccHtmlOnly}
<p><center>
<img src="./fig/tight.gif" border=0 alt="Approximating an offset edge">
</center>
\end{ccHtmlOnly}
\caption{Approximating the offset edge $o_1 o_2$ induced by the polygon
edge $p_1 p_2$ by two line segments $o'_1 q'$ and $q' o'_2$.}
\label{mink_fig:approx_offset}
\end{figure}
\ccIncludeExampleCode{../examples/Minkowski_sum_2/ex_approx_offset.C}
The circular arcs of the convolution cycle are clearly supported
by rational circles. Let us examine how the offset edges look
like. We consider the polygon edge directed from $v_1 = (x_1,
y_1)$ to $v_2 = (x_2, y_2)$, we denote by $\theta$ the angle
$\vec{v_1 v_2}$ forms with the $x$ axis. Let $\ell = \sqrt{(x_2 -
x_1)^2 + (y_2 - y_1)^2}$ be the edge length, so we have
$\cos\theta = \frac{1}{\ell}(x_2 - x_1)$ and $\sin\theta =
\frac{1}{\ell}(y_2 - y_1)$. As we traverse the polygon edges in a
counterclockwise orientation, we construct the offset edge $p_1
p_2$ that corresponds to $v_1 v_2$ by shifting either polygon
vertex by a vector whose length is $r$ and which forms an angle of
$\phi = \theta - \frac{\pi}{2}$ with the $x$-axis. It is easy to
see that:
\begin{eqnarray}
\sin\phi &=& \sin\theta\cdot\cos\frac{\pi}{2} -
\cos\theta\cdot\sin\frac{\pi}{2}
= - \cos\theta = \frac{1}{\ell}(x_1 - x_2) \ , \\
\cos\phi &=& \cos\theta\cdot\cos\frac{\pi}{2} +
\sin\theta\cdot\sin\frac{\pi}{2}
= \sin\theta = \frac{1}{\ell}(y_2 - y_1) \ .
\end{eqnarray}
Thus, $p_j = \left( x_j + \frac{r}{\ell}(y_2 - y_1), y_j +
\frac{r}{\ell}(x_1 - x_2) \right)$ for $j = 1,2$. Indeed, the
coordinates of these points are one-root numbers, but the segment
$p_1 p_2$ is supported by a line whose coefficient are
\emph{irrational}: it is easy to show that if the supporting line
of $v_1 v_2$ is $a x + b y + c = 0$ (where $a,b,c \in {\mathbb Q}$),
then the line supporting $p_1 p_2$ is $a x + b y + (c + \ell r) =
0$, where $\ell$ is usually an irrational number. The coordinates
of the intersection points between two offset edges, or between an
offset edge and a circular arc that represents an offset vertex,
are therefore \emph{not} one-root numbers. It should be mentioned
that the locus of all points lying at distance $r$ from the line
$a x + b y + c = 0$ is given by $\frac{(a x + b y + c)^2}{a^2 +
b^2} = r^2$, which is a degenerate conic curve (a pair of parallel
lines) with rational coefficients. Offset polygons can therefore
by constructed in an exact manner using the conic-arc
traits-class.