%!PS-Adobe-2.0 /page-begin { gsave 72 dup scale 0.025 setlinewidth 1 setlinecap 1 setlinejoin normalFont } def /page-end { grestore showpage } def /largeFont { /Helvetica-Bold findfont 0.32 scalefont setfont } def /normalFont { /Helvetica-Bold findfont 0.22 scalefont setfont } def /smallFont { /Helvetica-Bold findfont 0.16 scalefont setfont } def /lightGreen { 0.25 1.0 0.5 setrgbcolor } def /green { 0 1.0 0 setrgbcolor } def /darkGreen { 0.0 0.6 0.3 setrgbcolor } def /yellow { 1 1 0 setrgbcolor } def /pink { 0.0 0.6 0 setrgbcolor } def /black { 0 0 0 } def /base 2 def /height 1 def /rectangle { 0 0 moveto base 0 lineto 0 height rlineto 0 height lineto closepath } def /parallelogram { 0 0 moveto base 0 lineto skew height rlineto skew height lineto closepath } def /triangle { 0 0 moveto 0 height lineto skew height lineto closepath } def %%Pages: 26 % ------------------------------------------------------ %%Page: 1 1 page-begin largeFont 4.25 5 moveto (The area of a parallelogram) dup stringwidth pop -0.5 mul 0 rmoveto show page-end %%Page: 2 2 page-begin 2 7 moveto (The area of a parallelogram is equal to) show 2 6.75 moveto (the product of its base and its height.) show /skew 1 def gsave 2.8 4 translate gsave lightGreen newpath -1 height moveto base 2 add height lineto -1 0 moveto base 2 add 0 lineto stroke grestore newpath parallelogram gsave lightGreen fill grestore black stroke smallFont base 2 div 0 moveto (base) stringwidth pop /w exch def w -2 div -0.2 rmoveto (base) show /llx -0.4 def newpath llx 0 moveto llx height 2 div -0.072 add lineto llx height 2 div 0.18 add moveto llx height lineto stroke llx (height) stringwidth pop -2 div add height 2 div moveto (height) show newpath 0 -0.15 moveto base w sub 2 div 0.05 sub -0.15 lineto base w add 2 div -0.15 moveto 0.05 0 rmoveto base -0.15 lineto stroke grestore grestore page-end %%Page: 3 3 page-begin largeFont 4.5 5.5 moveto (Why?) dup stringwidth pop -0.5 mul 0 rmoveto show page-end %%Page: 4 4 page-begin 2 7 moveto (For a rectangle this amounts essentially ) show 2 6.75 moveto (to the basic meaning of area.) show gsave 3.0 4 translate gsave lightGreen newpath -1 height moveto base 1 add height lineto -1 0 moveto base 1 add 0 lineto stroke grestore newpath rectangle gsave lightGreen fill grestore stroke smallFont base 2 div 0 moveto (base) stringwidth pop /w exch def w -2 div -0.2 rmoveto (base) show /llx -0.4 def newpath llx 0 moveto llx height 2 div -0.072 add lineto llx height 2 div 0.18 add moveto llx height lineto stroke llx (height) stringwidth pop -2 div add height 2 div moveto (height) show newpath 0 -0.15 moveto base w sub 2 div 0.05 sub -0.15 lineto base w add 2 div -0.15 moveto 0.05 0 rmoveto base -0.15 lineto stroke grestore grestore page-end %%Page: 5 5 page-begin 1.5 8.5 moveto darkGreen (Theorem.) show 0 setgray 2.5 8.0 moveto (A rectangle and a parallelogram) show 2.5 7.75 moveto (with the same base and height) show 2.5 7.5 moveto (have the same area.) show /skew 1 def gsave 3.0 4.5 translate gsave lightGreen newpath -1 height moveto base 1.5 add height lineto -1 0 moveto base 1.5 add 0 lineto stroke grestore newpath rectangle gsave lightGreen fill grestore stroke grestore gsave 3.0 3 translate gsave lightGreen newpath -1 height moveto base 1.5 add height lineto -1 0 moveto base 1.5 add 0 lineto stroke grestore newpath parallelogram gsave lightGreen fill grestore stroke grestore page-end %%Page: 6 6 page-begin 0 -0.5 translate 1.0 9.5 moveto (If the parallelogram is not badly skewed,) show % 3.5 9.25 moveto ( this is easy to see.) show 1.0 9.25 moveto (Decompose the rectangle) show % 3.5 8.75 moveto ( by chopping a triangle off one end.) show 1.0 9.0 moveto (Rearrange the pieces) show % 3.5 8.25 moveto ( to make up the parallelogram.) show /skew 1 def 0 0.5 translate gsave 3.0 6.5 translate newpath rectangle gsave lightGreen fill grestore stroke grestore gsave 3.0 5.0 translate newpath rectangle gsave lightGreen fill grestore stroke newpath triangle gsave yellow fill grestore stroke grestore gsave 3.0 3.5 translate newpath parallelogram gsave lightGreen fill grestore stroke base 0 translate newpath triangle gsave yellow fill grestore stroke grestore gsave 3.0 2.0 translate newpath parallelogram gsave lightGreen fill grestore stroke grestore page-end %%Page: 7 7 page-begin 1.0 9.0 moveto (But if it is badly skewed,) show % 3.0 9.25 moveto ( this reasoning fails.) show /skew 2.75 def /llx 2.0 def gsave llx 6.5 translate newpath rectangle gsave lightGreen fill grestore stroke grestore gsave llx 5.0 translate newpath rectangle gsave lightGreen fill grestore stroke newpath triangle gsave yellow fill grestore stroke grestore gsave llx 3.5 translate newpath parallelogram gsave lightGreen fill grestore stroke base 0 translate newpath triangle gsave yellow fill grestore stroke grestore gsave llx 2.0 translate newpath parallelogram gsave lightGreen fill grestore stroke grestore page-end %%Page: 8 8 page-begin 0 -3 translate 1.0 9.5 moveto (There are many different ways to modify the proof) show 1.0 9.25 moveto (to remain valid no matter how badly the parallelogram is skewed.) show 1.0 9.00 moveto (For example:) show 1 -0.25 translate 1.0 8.75 moveto (1. Do it in several small steps) show 1.0 8.5 moveto (2. Allow subtraction (Euclid's proof)) show 1.0 8.25 moveto (3. Slices) show page-end %%Page: 9 9 page-begin 1.0 9.0 moveto (1. Do it in several small steps) show save /skew 0 def gsave 2 6.5 translate newpath parallelogram gsave lightGreen fill grestore stroke grestore /skew 2.75 0.5 mul def gsave 2 5 translate newpath parallelogram gsave lightGreen fill grestore stroke grestore /skew 2.75 def gsave 2 3.5 translate newpath parallelogram gsave lightGreen fill grestore stroke grestore restore page-end %%Page: 10 10 page-begin 1.0 9.0 moveto (1. Do it in several small steps) show 0 0 translate save /skew 0 def gsave 2 6.5 translate newpath parallelogram gsave lightGreen fill grestore stroke /skew 2.75 0.5 mul def newpath triangle gsave yellow fill grestore stroke grestore /skew 2.75 0.5 mul def gsave 2 5 translate newpath parallelogram gsave lightGreen fill grestore stroke base 0 translate newpath triangle gsave yellow fill grestore stroke grestore /skew 2.75 0.5 mul def gsave 2 3.5 translate newpath parallelogram gsave lightGreen fill grestore stroke /skewtriangle { 0 0 moveto 2.75 height lineto 2.75 0.5 mul height lineto closepath } def newpath skewtriangle gsave yellow fill grestore stroke grestore /skew 2.75 def gsave 2 2.0 translate newpath parallelogram gsave lightGreen fill grestore stroke base 0 translate newpath skewtriangle gsave yellow fill grestore stroke grestore restore page-end %%Page: 11 11 page-begin 1.0 9.0 moveto (2. Allow subtraction (Euclid's proof)) show 0 -0.5 translate /skew 2.75 def /smallTriangle { 0 height moveto skew base sub 0 rlineto skew base sub neg dup skew div height mul rlineto closepath } def 0 -1 translate gsave 2 8.0 translate newpath rectangle gsave lightGreen fill grestore stroke newpath triangle gsave lightGreen fill grestore stroke base 0 translate newpath smallTriangle gsave pink fill grestore stroke grestore gsave 2 6.5 translate newpath rectangle gsave lightGreen fill grestore stroke newpath triangle gsave yellow fill grestore stroke grestore gsave 2 5.0 translate newpath parallelogram gsave lightGreen fill grestore stroke base 0 translate newpath triangle gsave yellow fill grestore stroke grestore gsave 2 3.5 translate newpath parallelogram gsave lightGreen fill grestore stroke base 0 translate newpath triangle gsave lightGreen fill grestore stroke newpath smallTriangle gsave pink fill grestore stroke grestore page-end %%Page: 12 12 page-begin /skew 0 def /dskew 2.75 10 div def % N /mkBands { 1 dict begin /N exch def N { newpath 0 0 moveto base 0 rlineto 0 height N div rlineto base neg 0 rlineto closepath gsave lightGreen fill grestore stroke skew N div height N div translate } repeat end } def /drawBands { 1 dict begin /N exch def N { newpath 0 0 moveto base 0 rlineto 0 height N div rlineto base neg 0 rlineto closepath stroke skew N div height N div translate } repeat end } def /mkBackground { 1 dict begin gsave /N exch def N { newpath 0 0 moveto base 0 rlineto 0 height N div rlineto base neg 0 rlineto closepath gsave 0.8 setgray fill grestore 0.5 setgray stroke 0 height N div translate } repeat grestore end } def /slicePage { 1 9 moveto (3. Slices) show gsave 2 5 translate 8 mkBackground 8 mkBands grestore /skew skew dskew add def } def slicePage page-end %%Page: 13 13 page-begin slicePage page-end %%Page: 14 14 page-begin slicePage page-end %%Page: 15 15 page-begin slicePage page-end %%Page: 16 16 page-begin slicePage page-end %%Page: 17 17 page-begin slicePage page-end %%Page: 18 18 page-begin slicePage page-end %%Page: 19 19 page-begin slicePage page-end %%Page: 20 20 page-begin slicePage page-end %%Page: 21 21 page-begin slicePage page-end %%Page: 22 22 page-begin slicePage page-end %%Page: 23 23 page-begin save /skew 2.75 def gsave 2 5 translate newpath parallelogram gsave yellow fill grestore stroke grestore slicePage /skew 2.75 def gsave 2 5 translate newpath parallelogram stroke grestore restore page-end %%Page: 24 24 page-begin save /skew 2.75 def gsave 2 5 translate newpath parallelogram gsave yellow fill grestore stroke grestore save /lightGreen { yellow } def slicePage restore /skew 2.75 def gsave 2 5 translate newpath parallelogram gsave lightGreen fill grestore stroke 8 drawBands grestore restore page-end %%Page: 25 25 page-begin 1 9 moveto (The same proof shows that) show 1 8.75 moveto (two triangles with the same base and height) show 1 8.50 moveto (have the same area.) show /P [ 0 0] def /Q [ 2 0] def /R [ 1 2] def /N 8 def gsave 2 5.5 translate newpath P aload pop moveto Q aload pop lineto R aload pop lineto closepath gsave yellow fill grestore stroke /dl R 0 get P 0 get sub N div def /dr Q 0 get R 0 get sub N div def /d Q 0 get P 0 get sub dl dr add 0.5 mul sub def /dh R 1 get P 1 get sub N div def /dx 0.032 def gsave N { newpath dl 0.5 mul 0 moveto 0 dh rlineto d 0 rlineto 0 dh neg rlineto closepath gsave lightGreen fill grestore stroke gsave 0.5 setgray newpath dl 0.5 mul dh 0.5 mul moveto dx 0 rmoveto d dx sub dx sub 0 rlineto stroke grestore dl dh translate /d d dr sub dl sub def } repeat /d d dr sub dl sub def grestore grestore /R [ 3 2 ] def gsave 2 3 translate newpath P aload pop moveto Q aload pop lineto R aload pop lineto closepath gsave yellow fill grestore stroke /dl R 0 get P 0 get sub N div def /dr Q 0 get R 0 get sub N div def /d Q 0 get P 0 get sub dl dr add 0.5 mul sub def /dh R 1 get P 1 get sub N div def gsave N { newpath dl 0.5 mul 0 moveto 0 dh rlineto d 0 rlineto 0 dh neg rlineto closepath gsave lightGreen fill grestore stroke gsave 0.5 setgray newpath dl 0.5 mul dh 0.5 mul moveto dx 0 rmoveto d dx sub dx sub 0 rlineto stroke grestore dl dh translate /d d dr sub dl sub def } repeat /d d dr sub dl sub def grestore grestore page-end %%Page: 26 26 page-begin largeFont 3.5 5 moveto (Q. E. D.) show page-end %%Trailer %%EOF