From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/animate/files/bye_0.eps | 317 +++++++++++++++++++++++++++ macros/latex/contrib/animate/files/bye_1.eps | 314 ++++++++++++++++++++++++++ macros/latex/contrib/animate/files/bye_2.eps | 317 +++++++++++++++++++++++++++ macros/latex/contrib/animate/files/bye_3.eps | 314 ++++++++++++++++++++++++++ macros/latex/contrib/animate/files/click.mp3 | Bin 0 -> 2574 bytes macros/latex/contrib/animate/files/exp.mp | 121 ++++++++++ macros/latex/contrib/animate/files/scarab.mp | 138 ++++++++++++ 7 files changed, 1521 insertions(+) create mode 100644 macros/latex/contrib/animate/files/bye_0.eps create mode 100644 macros/latex/contrib/animate/files/bye_1.eps create mode 100644 macros/latex/contrib/animate/files/bye_2.eps create mode 100644 macros/latex/contrib/animate/files/bye_3.eps create mode 100644 macros/latex/contrib/animate/files/click.mp3 create mode 100644 macros/latex/contrib/animate/files/exp.mp create mode 100644 macros/latex/contrib/animate/files/scarab.mp (limited to 'macros/latex/contrib/animate/files') diff --git a/macros/latex/contrib/animate/files/bye_0.eps b/macros/latex/contrib/animate/files/bye_0.eps new file mode 100644 index 0000000000..3bb488a052 --- /dev/null +++ b/macros/latex/contrib/animate/files/bye_0.eps @@ -0,0 +1,317 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%CreationDate: (Mon Aug 20 12:29:46 2007) +%%BoundingBox: 0 0 26 18 +%%HiResBoundingBox: 0 0 26 18 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 26 18 +userdict begin +DisplayImage +0 0 +26 18 +12.000000 +26 18 +0 +0 +ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D +DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffEAEAE2A59A7D6A5312AC8E10DBB012EECA1AEECA1A +C6AA12A680086A5312A59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffDAD5CB7262329A7A0EF1D21AFEDA1AFEDA1A +FEDA1AFEDA1AF1D21AEECA1AE1BB13986D06726232DAD5CBffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffE2E2DA6A5312C6AA12FEDA1AFEE222 +FEE222FEE222FEE222FEE222FEE222FEDA1AF1D21AEEC20ABA8E0A6A5312E2E2DAffffff +ffffffffffffffffffffffffffffffffffffffffffffffffFEF2F2948A64AC8E10FEDA1A +FEE222FEE222423212FEE222FEE222FEE222423212FEE222FEDA1AEECA1AE1BB139A7A0E +948A64FEFEF2423212423212423212ffffffffffffffffffffffffffffffDAD5CB6A5312 +F1D21AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222FEE222F1D21A +EEC20ADBB012423212423212BA8202EEC20ABA8202423212ffffffffffffffffffffffff +A59A7DAC8E10FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222 +FEE222FEDA1AEECA1ADBB012423212FEE29ABA8202BA8202EEC20A423212ffffffffffff +ffffffffffff7A623AE1BB13FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222 +423212FEE222FEE222FEDA1AEECA1AE1BB13423212423212FEE29ABA8202EEC20ABA8202 +423212ffffffffffffffffff654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222 +FEE222FEE222FEE222FEE222FEE222FEDA1AEECA1AE1BB13423212FEE29A423212FEE29A +EEC20ABA8202423212ffffffffffffffffff654A0EEECA1AFEDA1AFEE222FEE222FEE222 +FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEDA1AEECA1ADBB012423212EEC20A +FEE29AFEE29AEEC20ABA8202423212ffffffffffffffffff726232DBB012F1D21AFEE222 +FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222F1D21AEEC20ADBB012 +BA8E0A423212EEC20AEEC20ABA8202423212ffffffffffffffffffffffffA59A7DA68008 +EECA1AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEDA1A423212 +E1BB13D4A00A986D06A59A7D423212423212423212ffffffffffffffffffffffffffffff +DAD5CB6A5312E1BB13F1D21AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEDA1A +423212EEC20ADBB012D4A00A654A0EDAD5CBffffffffffffffffffffffffffffffffffff +ffffffffffffFEF2F2948A64A68008EEC20AEECA1AF1D21A423212423212423212423212 +423212423212EEC20ADBB012D4A00A986D06948A64FEF2F2ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffE2E2DA6A5312BA8E0AE1BB13EEC20AEECA1AEECA1A +EECA1AEECA1AEEC20AE1BB13DBB012D4A00AA680086A5312E2E2DAffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffDAD5CB726232986D06DBB012 +DBB012E1BB13E1BB13DBB012DBB012D4A00ACA9A0A8A6202726232DAD5CBffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffEAEAE2 +A59A7D654A0E986D06BA8E0AD4A00AD4A00ABA8E0A986D06654A0EA59A7DEAEAE2ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7DDAD5CBFEFEF2 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/macros/latex/contrib/animate/files/bye_1.eps b/macros/latex/contrib/animate/files/bye_1.eps new file mode 100644 index 0000000000..18d367de4c --- /dev/null +++ b/macros/latex/contrib/animate/files/bye_1.eps @@ -0,0 +1,314 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%CreationDate: (Mon Aug 20 12:29:47 2007) +%%BoundingBox: 0 0 26 18 +%%HiResBoundingBox: 0 0 26 18 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 26 18 +userdict begin +DisplayImage +0 0 +24 18 +12.000000 +24 18 +0 +0 +ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D +DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffEAEAE2A59A7D6A5312AC8E10DBB012EECA1AEECA1AC6AA12A68008 +6A5312A59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffDAD5CB7262329A7A0EF1D21AFEDA1AFEDA1AFEDA1AFEDA1AF1D21AEECA1A +E1BB13986D06726232DAD5CBffffffffffffffffffffffffffffffffffffffffffffffff +ffffffE2E2DA6A5312C6AA12FEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEDA1A +F1D21AEEC20ABA8E0A6A5312E2E2DAffffffffffffffffffffffffffffffffffffffffff +FEF2F2948A64AC8E10FEDA1AFEE222FEE222423212FEE222FEE222FEE222423212FEE222 +FEDA1AEECA1AE1BB139A7A0E948A64FEFEF2ffffff423212423212423212ffffffffffff +DAD5CB6A5312F1D21AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222 +FEE222F1D21AEEC20ADBB012654A0EDAD5CB423212FEE29ABA8202EEC20A423212423212 +A59A7DAC8E10FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222 +FEE222FEDA1AEECA1ADBB012986D06423212423212FEE29ABA8202EEC20ABA8202423212 +7A623AE1BB13FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222 +FEE222FEDA1AEECA1AE1BB13423212FEE29A423212FEE29ABA8202EEC20ABA8202423212 +654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222 +FEE222FEDA1AEECA1AE1BB13423212EEC20AFEE29A423212FEE29AFEE29ABA8202423212 +654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222 +FEE222FEDA1AEECA1ADBB012CA9A0A423212EEC20AFEE29AFEE29AEEC20ABA8202423212 +726232DBB012F1D21AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222 +FEE222F1D21AEEC20ADBB012BA8E0A7A6A3A423212EEC20AEEC20ABA8202423212ffffff +A59A7DA68008EECA1AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEE222FEE222 +FEDA1A423212E1BB13D4A00A986D06A59A7Dffffff423212423212423212ffffffffffff +DAD5CB6A5312E1BB13F1D21AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEDA1A +423212EEC20ADBB012D4A00A654A0EDAD5CBffffffffffffffffffffffffffffffffffff +FEF2F2948A64A68008EEC20AEECA1AF1D21A423212423212423212423212423212423212 +EEC20ADBB012D4A00A986D06948A64FEF2F2ffffffffffffffffffffffffffffffffffff +ffffffE2E2DA6A5312BA8E0AE1BB13EEC20AEECA1AEECA1AEECA1AEECA1AEEC20AE1BB13 +DBB012D4A00AA680086A5312E2E2DAffffffffffffffffffffffffffffffffffffffffff +ffffffffffffDAD5CB726232986D06DBB012DBB012E1BB13E1BB13DBB012DBB012D4A00A +CA9A0A8A6202726232DAD5CBffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffEAEAE2A59A7D654A0E986D06BA8E0AD4A00AD4A00ABA8E0A986D06 +654A0EA59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D +DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/macros/latex/contrib/animate/files/bye_2.eps b/macros/latex/contrib/animate/files/bye_2.eps new file mode 100644 index 0000000000..e610c254d0 --- /dev/null +++ b/macros/latex/contrib/animate/files/bye_2.eps @@ -0,0 +1,317 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%CreationDate: (Mon Aug 20 12:29:48 2007) +%%BoundingBox: 0 0 26 18 +%%HiResBoundingBox: 0 0 26 18 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 26 18 +userdict begin +DisplayImage +0 0 +26 18 +12.000000 +26 18 +0 +0 +ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D +DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffEAEAE2A59A7D6A5312AC8E10DBB012EECA1AEECA1A +C6AA12A680086A5312A59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffDAD5CB7262329A7A0EF1D21AFEDA1AFEDA1A +FEDA1AFEDA1AF1D21AEECA1AE1BB13986D06726232DAD5CBffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffE2E2DA6A5312C6AA12FEDA1AFEE222 +FEE222FEE222FEE222FEE222FEE222FEDA1AF1D21AEEC20ABA8E0A6A5312E2E2DAffffff +ffffffffffffffffffffffffffffffffffffffffffffffffFEF2F2948A64AC8E10FEDA1A +FEE222FEE222423212FEE222FEE222FEE222423212FEE222FEDA1AEECA1AE1BB139A7A0E +948A64FEFEF2ffffffffffffffffff423212423212423212ffffffffffffDAD5CB6A5312 +F1D21AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222FEE222F1D21A +EEC20ADBB012654A0EDAD5CBffffffffffffffffff423212FEE29ABA8202423212423212 +A59A7DAC8E10FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222 +FEE222FEDA1AEECA1ADBB012986D06A59A7D423212423212423212FEE29ABA8202EEC20A +BA82024232127A623AE1BB13FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222 +423212FEE222FEE222FEDA1AEECA1AE1BB13BA8E0A7A6A3A423212FEE29A423212FEE29A +BA8202EEC20ABA8202423212654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222 +FEE222FEE222FEE222FEE222FEE222FEDA1AEECA1AE1BB13CA9A0A6A5312423212FEE29A +FEE29ABA8202EEC20ABA8202423212ffffff654A0EEECA1AFEDA1AFEE222FEE222FEE222 +FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEDA1AEECA1ADBB012CA9A0A6A5312 +423212EEC20AFEE29AFEE29AEEC20ABA8202423212ffffff726232DBB012F1D21AFEE222 +FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222F1D21AEEC20ADBB012 +BA8E0A7A6A3Affffff423212EEC20AEEC20ABA8202423212ffffffffffffA59A7DA68008 +EECA1AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEDA1A423212 +E1BB13D4A00A986D06A59A7Dffffffffffff423212423212423212ffffffffffffffffff +DAD5CB6A5312E1BB13F1D21AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEDA1A +423212EEC20ADBB012D4A00A654A0EDAD5CBffffffffffffffffffffffffffffffffffff +ffffffffffffFEF2F2948A64A68008EEC20AEECA1AF1D21A423212423212423212423212 +423212423212EEC20ADBB012D4A00A986D06948A64FEF2F2ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffE2E2DA6A5312BA8E0AE1BB13EEC20AEECA1AEECA1A +EECA1AEECA1AEEC20AE1BB13DBB012D4A00AA680086A5312E2E2DAffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffDAD5CB726232986D06DBB012 +DBB012E1BB13E1BB13DBB012DBB012D4A00ACA9A0A8A6202726232DAD5CBffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffEAEAE2 +A59A7D654A0E986D06BA8E0AD4A00AD4A00ABA8E0A986D06654A0EA59A7DEAEAE2ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7DDAD5CBFEFEF2 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/macros/latex/contrib/animate/files/bye_3.eps b/macros/latex/contrib/animate/files/bye_3.eps new file mode 100644 index 0000000000..31eda8f61b --- /dev/null +++ b/macros/latex/contrib/animate/files/bye_3.eps @@ -0,0 +1,314 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%CreationDate: (Mon Aug 20 12:29:49 2007) +%%BoundingBox: 0 0 26 18 +%%HiResBoundingBox: 0 0 26 18 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 26 18 +userdict begin +DisplayImage +0 0 +24 18 +12.000000 +24 18 +0 +0 +ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D +DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffEAEAE2A59A7D6A5312AC8E10DBB012EECA1AEECA1AC6AA12A68008 +6A5312A59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffDAD5CB7262329A7A0EF1D21AFEDA1AFEDA1AFEDA1AFEDA1AF1D21AEECA1A +E1BB13986D06726232DAD5CBffffffffffffffffffffffffffffffffffffffffffffffff +ffffffE2E2DA6A5312C6AA12FEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEDA1A +F1D21AEEC20ABA8E0A6A5312E2E2DAffffffffffffffffffffffffffffffffffffffffff +FEF2F2948A64AC8E10FEDA1AFEE222FEE222423212FEE222FEE222FEE222423212FEE222 +FEDA1AEECA1AE1BB139A7A0E948A64FEFEF2ffffff423212423212423212ffffffffffff +DAD5CB6A5312F1D21AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222 +FEE222F1D21AEEC20ADBB012654A0EDAD5CB423212FEE29ABA8202EEC20A423212423212 +A59A7DAC8E10FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222 +FEE222FEDA1AEECA1ADBB012986D06423212423212FEE29ABA8202EEC20ABA8202423212 +7A623AE1BB13FEDA1AFEE222FEE222FEE222423212FEE222FEE222FEE222423212FEE222 +FEE222FEDA1AEECA1AE1BB13423212FEE29A423212FEE29ABA8202EEC20ABA8202423212 +654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222 +FEE222FEDA1AEECA1AE1BB13423212EEC20AFEE29A423212FEE29AFEE29ABA8202423212 +654A0EEECA1AFEDA1AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222 +FEE222FEDA1AEECA1ADBB012CA9A0A423212EEC20AFEE29AFEE29AEEC20ABA8202423212 +726232DBB012F1D21AFEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222FEE222 +FEE222F1D21AEEC20ADBB012BA8E0A7A6A3A423212EEC20AEEC20ABA8202423212ffffff +A59A7DA68008EECA1AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEE222FEE222 +FEDA1A423212E1BB13D4A00A986D06A59A7Dffffff423212423212423212ffffffffffff +DAD5CB6A5312E1BB13F1D21AFEDA1A423212FEE222FEE222FEE222FEE222FEE222FEDA1A +423212EEC20ADBB012D4A00A654A0EDAD5CBffffffffffffffffffffffffffffffffffff +FEF2F2948A64A68008EEC20AEECA1AF1D21A423212423212423212423212423212423212 +EEC20ADBB012D4A00A986D06948A64FEF2F2ffffffffffffffffffffffffffffffffffff +ffffffE2E2DA6A5312BA8E0AE1BB13EEC20AEECA1AEECA1AEECA1AEECA1AEEC20AE1BB13 +DBB012D4A00AA680086A5312E2E2DAffffffffffffffffffffffffffffffffffffffffff +ffffffffffffDAD5CB726232986D06DBB012DBB012E1BB13E1BB13DBB012DBB012D4A00A +CA9A0A8A6202726232DAD5CBffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffEAEAE2A59A7D654A0E986D06BA8E0AD4A00AD4A00ABA8E0A986D06 +654A0EA59A7DEAEAE2ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffFEFEF2DAD5CBA59A7D7A6A3A654A0E654A0E7A6A3AA59A7D +DAD5CBFEFEF2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/macros/latex/contrib/animate/files/click.mp3 b/macros/latex/contrib/animate/files/click.mp3 new file mode 100644 index 0000000000..9c0f72db5b Binary files /dev/null and b/macros/latex/contrib/animate/files/click.mp3 differ diff --git a/macros/latex/contrib/animate/files/exp.mp b/macros/latex/contrib/animate/files/exp.mp new file mode 100644 index 0000000000..85c5c42969 --- /dev/null +++ b/macros/latex/contrib/animate/files/exp.mp @@ -0,0 +1,121 @@ +% Jan Holecek, Alexander Grahn +% 2018/11/29 + +prologues:=3; +outputtemplate := "%j_%c.mps"; +outputformat := "mps"; + +verbatimtex +\documentclass{article} +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +%\usepackage{lmodern} + \usepackage[tt=false]{libertine} + \usepackage[libertine]{newtxmath} +\usepackage{amsmath} +\begin{document} +etex + +e := 2.718282; +N=8; +size := 5cm; +bars := 0.5mm; +diff := 0.05; +xmin := -2; +xmax := 2; +xo := -2; +ymin := 0; +ymax := e**xmax; +xcoe := size / (xmax - xmin); +ycoe := size / (ymax - ymin); + + +pair xaxis[], yaxis[], npnt; +xaxis[1] = (xmin * xcoe, 0); xaxis[2] = (xmax * xcoe, 0); +yaxis[1] = (0, ymin * ycoe); yaxis[2] = (0, ymax * ycoe); +npnt = (xmin * xcoe, ymax * ycoe); + +picture xlabel, ylabel, elabel, nlabel[]; +xlabel = btex $x$ etex; +ylabel = btex $y$ etex; +elabel = btex $y = e^x$ etex; +nlabel[1] = btex $n = 1$ etex; +nlabel[2] = btex $n = 2$ etex; +nlabel[3] = btex $n = 3$ etex; +nlabel[4] = btex $n = 4$ etex; +nlabel[5] = btex $n = 5$ etex; +nlabel[6] = btex $n = 6$ etex; +nlabel[7] = btex $n = 7$ etex; +nlabel[8] = btex $n = 8$ etex; + + +def pnt (expr x,y)= + ( x * xcoe, y * ycoe ) +enddef; + +def exp (expr x)= + pnt (x , e**x) +enddef; + +def taylor (expr s,x)= + begingroup + save i,v,w; + v = 1; + w = 1; + for i := 1 upto s: + w := (w * (x-xo)) / i; + v := v + w; + endfor; + pnt (x , v * (e**xo)) + endgroup +enddef; + +path pexp,ptaylor[]; + +pexp = exp(xmin) +for i:=xmin+diff step diff until xmax: + .. exp(i) +endfor; + +for j:=1 upto N: + ptaylor[j] := taylor (j,xmin) + for i:=xmin+diff step diff until xmax: + .. taylor(j,i) + endfor; +endfor; + +def axis= + drawarrow xaxis[1]--xaxis[2]; + drawarrow yaxis[1]--yaxis[2]; + for k:=-1,1: + draw (k * xcoe, -bars) -- (k * xcoe, bars); + endfor; + for k:=1 upto 6: + draw (-bars, k * ycoe) -- (bars, k * ycoe); + endfor; + draw pexp withcolor red; + label.lrt (xlabel, xaxis[2]); + label.ulft (ylabel, yaxis[2]); + label.top (elabel, point (length (pexp)) of pexp); +enddef; + +path bounds; +beginfig(0); + pickup pencircle scaled 0.4mm; + axis; + bounds:=bbox currentpicture; + setbounds currentpicture to bounds; + clip currentpicture to bounds; +endfig; + +for i:=1 upto N: + beginfig(i); + pickup pencircle scaled 0.4mm; + draw ptaylor[i] withcolor blue; + label.lrt ( nlabel[i], npnt); + setbounds currentpicture to bounds; + clip currentpicture to bounds; + endfig; +endfor; + +end. diff --git a/macros/latex/contrib/animate/files/scarab.mp b/macros/latex/contrib/animate/files/scarab.mp new file mode 100644 index 0000000000..7e04c256d2 --- /dev/null +++ b/macros/latex/contrib/animate/files/scarab.mp @@ -0,0 +1,138 @@ +% Maxime Chupin, Alexander Grahn +% 2018/11/29 + +prologues:=3; +outputtemplate := "%j_%c.mps"; +outputformat := "mps"; + +verbatimtex +\documentclass{article} +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +%\usepackage{lmodern} + \usepackage[tt=false]{libertine} + \usepackage[libertine]{newtxmath} +\usepackage{amsmath} +\begin{document} +etex + +u:=4cm; + +vardef proj(expr P,M,N)= + save H; + pair H; + H=whatever [M,N]; + H-P=whatever * (M - N) rotated 90; + H +enddef; + +path dr,cercle,drb,scara; +pair A,B,C,D,Q,T,O',P,O,M; +O:=(0,0); +O':=(-u/3,0); +A:=(u/sqrt(2),u/sqrt(2)) shifted O'; +B:=(u/sqrt(2),-u/sqrt(2)) shifted O'; +C:=(-u/sqrt(2),-u/sqrt(2))shifted O'; +D:=(-u/sqrt(2),u/sqrt(2)) shifted O'; +dr:=A--C; +drb:=B--D; + +%scarabaeus construction +for i:=0 upto 100: + if i=0: + P:=A; + Q:=O'; + M:=proj(O,P,Q); + scara:=M; + else: + scara:=M; + for j:=1 upto 4: + k:=4*(i-1)+j; + if (k<200) or (k=200): + P:=point (k*0.005) of dr; + cercle:=halfcircle + scaled 2u rotated 45 shifted P; + if k=0: + Q:=O'; + fi; + if (k<>0) and (k<>200): + Q:=cercle intersectionpoint drb; + fi; + if k=200: + Q:=O'; + fi; + else: + P:= point (2-k*0.005) of dr; + cercle:=halfcircle + scaled 2u rotated (-135) shifted P; + if k<400: + Q:=cercle intersectionpoint drb; + fi; + if k=400: + Q:=O'; + fi; + fi; + M:=proj(O,P,Q); + scara:=scara--M; + endfor; + fi; + beginfig(i) %red scarabaeus segments + setbounds currentpicture to + (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle; + pickup pencircle scaled 1pt; + draw scara withcolor red; + clip currentpicture to + (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle; + endfig; + beginfig(i+101) %moving construction lines and labels + setbounds currentpicture to + (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle; + draw 12[P,Q]--12[Q,P] dashed evenly; + draw O--M dashed evenly; + pickup pencircle scaled 1.4pt; + draw P--Q withcolor blue; + label.rt(btex $2l$ etex, 0.5[P,Q]); + dotlabel.urt(btex $P$ etex, P); + dotlabel.llft(btex $Q$ etex,Q); + dotlabel.top(btex $M$ etex,M); + clip currentpicture to + (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle; + endfig; + if (i/2.-floor(i/2.))=0: %gray lines every second image + beginfig(i/2+202) + setbounds currentpicture to + (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle; + draw P--Q withcolor 0.8 white; + clip currentpicture to + (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle; + endfig; + fi; +endfor; + +%coordinate axes and stationary stuff +beginfig(253); + setbounds currentpicture to + (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle; + path ida,mida; + drawarrow(-1.5u,0)--(1u,0); + drawarrow(0,-1.2u)--(0,1.2u); + ida:=12[A,C]--12[C,A]; + mida:=(12[D,B]--12[B,D]); + draw ida dashed evenly; + draw mida dashed evenly; + label.top(btex $a$ etex, 0.5[O,O']); + label.top(btex $x$ etex, (0.8u,0)); + label.rt(btex $y$ etex, (0,u)); + label.bot(btex\itshape{\underline{scarabaeus}} etex,(-1.1u,1.1u)); + label.bot(btex $r=l\cos 2t-a\cos t$ etex, (-u/2,1.1u)); + dotlabel.urt(btex $O'$ etex, O'); + dotlabel.urt(btex $O$ etex, O); + dotlabel.rt(btex $A$ etex,A); + dotlabel.rt(btex $B$ etex,B); + dotlabel.lft(btex $C$ etex,C); + dotlabel.lft(btex $D$ etex,D); + clip currentpicture to + (u,1.2u)--(u,-1.2u)--(-1.5u,-1.2u)--(-1.5u,1.2u)--cycle; +endfig; + +end. -- cgit v1.2.3