commit 3092484fdc897bc16ebaa8fbc80781f663165155 Author: Sven Date: Mon Dec 23 07:42:39 2024 +0100 Init diff --git a/10_1.png b/10_1.png new file mode 100644 index 0000000..81b4a6a Binary files /dev/null and b/10_1.png differ diff --git a/10_2.png b/10_2.png new file mode 100644 index 0000000..eff29d3 Binary files /dev/null and b/10_2.png differ diff --git a/10_3.png b/10_3.png new file mode 100644 index 0000000..32008b9 Binary files /dev/null and b/10_3.png differ diff --git a/10_4.png b/10_4.png new file mode 100644 index 0000000..e527a66 Binary files /dev/null and b/10_4.png differ diff --git a/10_5.png b/10_5.png new file mode 100644 index 0000000..f43074c Binary files /dev/null and b/10_5.png differ diff --git a/10_6.png b/10_6.png new file mode 100644 index 0000000..f8ee023 Binary files /dev/null and b/10_6.png differ diff --git a/Aufgabe15_Vorlage.pdf b/Aufgabe15_Vorlage.pdf new file mode 100644 index 0000000..b5f954e Binary files /dev/null and b/Aufgabe15_Vorlage.pdf differ diff --git a/Frage11.png b/Frage11.png new file mode 100644 index 0000000..4c77c9b Binary files /dev/null and b/Frage11.png differ diff --git a/Frage12_Vorlage.pdf b/Frage12_Vorlage.pdf new file mode 100644 index 0000000..57907db Binary files /dev/null and b/Frage12_Vorlage.pdf differ diff --git a/Frage13_1.png b/Frage13_1.png new file mode 100644 index 0000000..aae67e7 Binary files /dev/null and b/Frage13_1.png differ diff --git a/Frage13_2.png b/Frage13_2.png new file mode 100644 index 0000000..0e208e6 Binary files /dev/null and b/Frage13_2.png differ diff --git a/Frage13_3.png b/Frage13_3.png new file mode 100644 index 0000000..03b3a35 Binary files /dev/null and b/Frage13_3.png differ diff --git a/Frage14_1.png b/Frage14_1.png new file mode 100644 index 0000000..480f0f9 Binary files /dev/null and b/Frage14_1.png differ diff --git a/Frage14_Vorlage.pdf b/Frage14_Vorlage.pdf new file mode 100644 index 0000000..c1fe3cc Binary files /dev/null and b/Frage14_Vorlage.pdf differ diff --git a/Pearson0001.pgf b/Pearson0001.pgf new file mode 100644 index 0000000..29d0618 --- /dev/null +++ b/Pearson0001.pgf @@ -0,0 +1,14 @@ +\begin{tikzpicture} +\usetikzlibrary{plotmarks} +\draw[color=gray, thin] (-3,0) -- (3,0); +%http://tex.stackexchange.com/questions/64567/how-to-draw-circle-square-and-triangle-marks-in-tikz-picture + +\draw[color=blue!50, ultra thick] (-1.4625,0) -- (1.4625,0); +%\node[mark size=2.5pt,color=blue!50, fill=none] at (-1.5,0) {\pgfuseplotmark{*}}; +%\node[mark size=2.5pt,color=blue!50] at (1.5,0) {\pgfuseplotmark{*}}; + +\draw[fill=blue!50,color=blue!50, ultra thick] (-1.5, 0) circle (.075); +\draw[fill=blue!50,color=blue!50, ultra thick] (1.5, 0) circle (.075); +\node[color=blue!50,] at (-1.5,0.35) {\textbf{a}}; +\node[color=blue!50] at (1.5,0.35) {\textbf{b}}; +\end{tikzpicture} \ No newline at end of file diff --git a/Pearson0001.tikz b/Pearson0001.tikz new file mode 100644 index 0000000..8d31e34 --- /dev/null +++ b/Pearson0001.tikz @@ -0,0 +1,14 @@ +++++\begin{tikzpicture} +\usetikzlibrary{plotmarks} +\draw[color=gray, thick] (-3,0) -- (3,0); +%http://tex.stackexchange.com/questions/64567/how-to-draw-circle-square-and-triangle-marks-in-tikz-picture + +\draw[color=blue!50, ultra thick] (-1.4625,0) -- (1.4625,0); +%\node[mark size=2.5pt,color=blue!50, fill=none] at (-1.5,0) {\pgfuseplotmark{*}}; +%\node[mark size=2.5pt,color=blue!50] at (1.5,0) {\pgfuseplotmark{*}}; + +\draw[color=blue!50, ultra thick] (-1.5, 0) circle (.075); +\draw[color=blue!50, ultra thick] (1.5, 0) circle (.075); +\node[color=blue!50] at (-1.5,0.35) {A}; +\node[color=blue!50] at (1.5,0.35) {B}; +\end{tikzpicture} \ No newline at end of file diff --git a/Pearson0002.pgf b/Pearson0002.pgf new file mode 100644 index 0000000..b9d4082 --- /dev/null +++ b/Pearson0002.pgf @@ -0,0 +1,14 @@ +\begin{tikzpicture} +\usetikzlibrary{plotmarks} +\draw[color=gray, thin] (-3,0) -- (3,0); +%http://tex.stackexchange.com/questions/64567/how-to-draw-circle-square-and-triangle-marks-in-tikz-picture + +\draw[color=blue!50, ultra thick] (-1.4625,0) -- (1.4625,0); +%\node[mark size=2.5pt,color=blue!50, fill=none] at (-1.5,0) {\pgfuseplotmark{*}}; +%\node[mark size=2.5pt,color=blue!50] at (1.5,0) {\pgfuseplotmark{*}}; + +\draw[color=blue!50, ultra thick] (-1.5, 0) circle (.075); +\draw[color=blue!50, ultra thick] (1.5, 0) circle (.075); +\node[color=blue!50,] at (-1.5,0.35) {\textbf{a}}; +\node[color=blue!50] at (1.5,0.35) {\textbf{b}}; +\end{tikzpicture} \ No newline at end of file diff --git a/Pearson0003.pgf b/Pearson0003.pgf new file mode 100644 index 0000000..fd0e536 --- /dev/null +++ b/Pearson0003.pgf @@ -0,0 +1,14 @@ +\begin{tikzpicture} +\usetikzlibrary{plotmarks} +\draw[color=gray, thin] (-3,0) -- (3,0); +%http://tex.stackexchange.com/questions/64567/how-to-draw-circle-square-and-triangle-marks-in-tikz-picture + +\draw[color=blue!50, ultra thick] (-1.4625,0) -- (1.4625,0); +%\node[mark size=2.5pt,color=blue!50, fill=none] at (-1.5,0) {\pgfuseplotmark{*}}; +%\node[mark size=2.5pt,color=blue!50] at (1.5,0) {\pgfuseplotmark{*}}; + +\draw[fill=blue!50,color=blue!50, ultra thick] (-1.5, 0) circle (.075); +\draw[color=blue!50, ultra thick] (1.5, 0) circle (.075); +\node[color=blue!50] at (-1.5,0.35) {\textbf{a}}; +\node[color=blue!50] at (1.5,0.35) {\textbf{b}}; +\end{tikzpicture} \ No newline at end of file diff --git a/Pearson0004.pgf b/Pearson0004.pgf new file mode 100644 index 0000000..888219e --- /dev/null +++ b/Pearson0004.pgf @@ -0,0 +1,14 @@ +\begin{tikzpicture} +\usetikzlibrary{plotmarks} +\draw[color=gray, thin] (-3,0) -- (3,0); +%http://tex.stackexchange.com/questions/64567/how-to-draw-circle-square-and-triangle-marks-in-tikz-picture + +\draw[color=blue!50, ultra thick] (-1.4625,0) -- (1.4625,0); +%\node[mark size=2.5pt,color=blue!50, fill=none] at (-1.5,0) {\pgfuseplotmark{*}}; +%\node[mark size=2.5pt,color=blue!50] at (1.5,0) {\pgfuseplotmark{*}}; + +\draw[color=blue!50, ultra thick] (-1.5, 0) circle (.075); +\draw[fill=blue!50,color=blue!50, ultra thick] (1.5, 0) circle (.075); +\node[color=blue!50] at (-1.5,0.35) {\textbf{a}}; +\node[color=blue!50] at (1.5,0.35) {\textbf{b}}; +\end{tikzpicture} \ No newline at end of file diff --git a/VektorenInEbeneVeranschaulichung01.eps b/VektorenInEbeneVeranschaulichung01.eps new file mode 100644 index 0000000..9510665 --- /dev/null +++ b/VektorenInEbeneVeranschaulichung01.eps @@ -0,0 +1,2658 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.94b Copyright 2004 Radical Eye Software +%%Title: F:/MathematikFHTW/2dgrafiken/2dgrafiken.dvi +%%CreationDate: Wed May 31 12:35:52 2006 +%%Pages: 1 +%%PageOrder: Ascend +%%BoundingBox: 0 0 595 842 +%%DocumentFonts: CMR10 CMMI10 CMR7 +%%DocumentPaperSizes: a4 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: C:\texmf\MiKTeX\bin\dvips.exe -P pdf +%+ F:/MathematikFHTW/2dgrafiken/2dgrafiken.dvi +%DVIPSParameters: dpi=8000 +%DVIPSSource: TeX output 2006.05.31:1235 +%%BeginProcSet: tex.pro 0 0 +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S +/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy +setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask +restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: alt-rule.pro 0 0 +%! +% Patch by TVZ +% Makes dvips files draw rules with stroke rather than fill. +% Makes narrow rules more predictable at low resolutions +% after distilling to PDF. +% May have unknown consequences for very thick rules. +% Tested only with dvips 5.85(k). +TeXDict begin +/QV { + gsave newpath /ruleY X /ruleX X + Rx Ry gt + { ruleX ruleY Ry 2 div sub moveto Rx 0 rlineto Ry } + { ruleX Rx 2 div add ruleY moveto 0 Ry neg rlineto Rx } + ifelse + setlinewidth 0 setlinecap stroke grestore +} bind def +end + +%%EndProcSet +%%BeginProcSet: pstricks.pro 0 0 +%! +% PostScript prologue for pstricks.tex. +% Version 1.00, 2005/09/18 +% For distribution, see pstricks.tex. +% +/tx@Dict 200 dict def tx@Dict begin +/ADict 25 dict def +/CM { matrix currentmatrix } bind def +/SLW /setlinewidth load def +/CLW /currentlinewidth load def +/CP /currentpoint load def +/ED { exch def } bind def +/L /lineto load def +/T /translate load def +/TMatrix { } def +/RAngle { 0 } def +/Atan { /atan load stopped { pop pop 0 } if } def +/ATAN1 {neg -1 atan 180 sub } def % atan(x) (only one parameter) +/Div { dup 0 eq { pop } { div } ifelse } def % control the division +/NET { neg exch neg exch T } def % change coordinate system to the negative one +/Pyth { dup mul exch dup mul add sqrt } def % Pythagoras, epects 2 parameter +/PtoC { 2 copy cos mul 3 1 roll sin mul } def % Polar to Cartesian +%----------------- hv added 20050516 --------------- +/Pi 3.14159265359 def +/TwoPi 6.28318530718 def +/Euler 2.71828182846 def +/RadtoDeg { 180 mul Pi div } def % convert from radian to degrees +/DegtoRad { Pi mul 180 div } def % viceversa +%----------------- hv end--------------------------- +/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } def +/PathLength { flattenpath /z 0 def + { /y1 ED /x1 ED /y2 y1 def /x2 x1 def + }{ /y ED /x ED PathLength@ } {} { /y y2 def /x x2 def PathLength@ } + /pathforall load stopped { pop pop pop pop } if z } def +/STP { .996264 dup scale } def +/STV { SDict begin normalscale end STP } def +% +%%-------------- DG begin patch 15 ---------------%% +%/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def +%PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y +%mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul +%/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ] +%0 } ifelse setdash stroke } def +/DashLine { + dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def PathLength } ifelse + /b ED /x1 ED /y1 ED /x ED /y ED + /z y x add y1 add x1 add def + /Coef b a .5 sub 2 mul y mul sub z Div round + z mul a .5 sub 2 mul y mul add b exch Div def + /y y Coef mul def + /x x Coef mul def + /y1 y1 Coef mul def + /x1 x1 Coef mul def + x1 0 gt y1 0 gt or x 0 gt or y 0 gt and + { [ y x y1 x1 ] 1 a sub y mul } + { [ 1 0 ] 0 } ifelse + setdash stroke +} def +%%-------------- DG end patch 15 ---------------%% +/DotLine { + /b PathLength def + /a ED /z ED /y CLW def + /z y z add def + a 0 gt { + /b b a div def + }{ + a 0 eq { + /b b y sub def + }{ a -3 eq { + /b b y add def } if + } ifelse + } ifelse + [ 0 b b z Div round Div dup 0 le { pop 1 } if ] + a 0 gt { 0 }{ y 2 div a -2 gt { neg }if } ifelse + setdash 1 setlinecap stroke +} def +% +/LineFill { % hv ------------ patch 7 ------------- + gsave + abs /hatchWidthInc ED + abs /hatchSepInc ED + abs CLW add /a ED + a 0 dtransform round exch round exch + 2 copy idtransform + exch Atan rotate + idtransform pop /a ED + .25 .25 itransform pathbbox + /y2 ED + a Div ceiling cvi /x2 ED /y1 ED + a Div cvi /x1 ED /y2 y2 y1 sub def + clip + newpath + 2 setlinecap + systemdict + /setstrokeadjust known { true setstrokeadjust } if + x2 x1 sub 1 add { + x1 a mul y1 moveto 0 y2 rlineto stroke + /x1 x1 1 add + hatchWidthInc 0 gt { CLW add } if + def + hatchSepInc 0 gt hatchWidthInc 0 gt or { + /a a hatchSepInc add def + CLW hatchWidthInc add SLW + } if + } repeat + grestore + pop pop } def +% +%gsave abs CLW add /a ED a 0 dtransform round exch round exch +%2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25 +%% DG/SR modification begin - Dec. 12, 1997 - Patch 2 +%%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a +%itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a +%% DG/SR modification end +%Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict +%/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1 +%% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) +%% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore } +%% def +%a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore +%pop pop } def +%% DG/SR modification end +% +/BeginArrow { ADict begin /@mtrx CM def gsave 2 copy T 2 index sub neg +exch 3 index sub exch Atan rotate newpath } def +/EndArrow { @mtrx setmatrix CP grestore end } def +/Arrow { CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1 +scale } if w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill +grestore } def +/Tbar { CLW mul add /z ED z -2 div CLW 2 div moveto z 0 rlineto stroke 0 +CLW moveto } def +/Bracket { CLW mul add dup CLW sub 2 div /x ED mul CLW add /y ED /z CLW 2 +div def x neg y moveto x neg CLW 2 div L x CLW 2 div L x y L stroke 0 +CLW moveto } def +/RoundBracket { CLW mul add dup 2 div /x ED mul /y ED /mtrx CM def 0 CLW +2 div T x y mul 0 ne { x y scale } if 1 1 moveto .85 .5 .35 0 0 0 +curveto -.35 0 -.85 .5 -1 1 curveto mtrx setmatrix stroke 0 CLW moveto } +def +/SD { 0 360 arc fill } def +/EndDot { { /z DS def } { /z 0 def } ifelse /b ED 0 z DS SD b { 0 z DS +CLW sub SD } if 0 DS z add CLW 4 div sub moveto } def +/Shadow { [ { /moveto load } { /lineto load } { /curveto load } { +/closepath load } /pathforall load stopped { pop pop pop pop CP /moveto +load } if ] cvx newpath 3 1 roll T exec } def +/NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch +cvi def } def +/NArray { % holds the coordinates and on top of stack the showpoints boolean + /f ED + counttomark 2 div dup cvi /n ED + n eq not { exch pop } if + f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse +} def +/Line { + NArray n 0 eq not + { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub def + n { Lineto } repeat + CP 4 2 roll ArrowB L pop pop + } if +} def +/Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 } + ifelse { pop } repeat a } def +/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq + and { pop pop /n n 1 sub def } if } def +/Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop } + repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1 + ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1 + moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto + Lineto pop pop closepath } ifelse } def +/Diamond { + /mtrx CM def + T rotate + /h ED + /w ED + dup 0 eq { pop } { CLW mul neg + /d ED + /a w h Atan def + /h d a sin Div h add def + /w d a cos Div w add def } ifelse + mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 div + /ArrowA { moveto } def + /ArrowB { } def + false Line + closepath mtrx setmatrix } def +% DG modification begin - Jan. 15, 1997 +%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq { +%pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 +%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0 +%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +%setmatrix } def +/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup +CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 +div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0 +d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) +% setmatrix } def +setmatrix pop } def +% DG/SR modification end +/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth +def } def +/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth +def } def +/CC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1 +def CCA /dx dx0 l1 c exp mul dx1 l0 c exp mul add def /dy dy0 l1 c exp +mul dy1 l0 c exp mul add def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos +abs b exp a mul dx dy Pyth Div 2 div def /x2 x l0 dx mul m mul sub def +/y2 y l0 dy mul m mul sub def /dx l1 dx mul m mul neg def /dy l1 dy mul +m mul neg def } def +/IC { /c c 1 add def c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } +ifelse /a a 2 mul 3 div 45 cos b exp div def CCA /dx 0 def /dy 0 def } +def +/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def +/NC { CC x1 y1 x2 y2 x y curveto } def +/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def +/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def +/NAC { x2 y2 x y curveto CC x1 y1 } def +/EAC { x2 y2 x y ArrowB curveto pop pop } def +/OpenCurve { + NArray n 3 lt + { n { pop pop } repeat } + { BOC /n n 3 sub def n { NC } repeat EOC } ifelse +} def +/AltCurve { { false NArray n 2 mul 2 roll [ n 2 mul 3 sub 1 roll ] aload +/Points ED n 2 mul -2 roll } { false NArray } ifelse n 4 lt { n { pop +pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse } def +/ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt { +CheckClosed } if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC } +repeat closepath pop pop } ifelse } def +/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def +/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def +/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } +def +/FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix +rotate matrix concatmatrix exch findfont exch makefont setfont } def +/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto +x1 y1 lineto closepath } def +/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1 +y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div +exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse +/b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto +x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath } +ifelse } def +/Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add +/y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq { +pop pop Rect } { OvalFrame } ifelse } def +/BezierNArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop +} if n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat f { ] +aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def +/OpenBezier { BezierNArray n 1 eq { pop pop } { ArrowA n 4 sub 3 idiv { 6 +2 roll 4 2 roll curveto } repeat 6 2 roll 4 2 roll ArrowB curveto } +ifelse } def +/ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv { +6 2 roll 4 2 roll curveto } repeat closepath } ifelse } def +/BezierShowPoints { gsave Points aload length 2 div cvi /n ED moveto n 1 +sub { lineto } repeat CLW 2 div SLW [ 4 4 ] 0 setdash stroke grestore } +def +/Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1 +sub 3 div def /dy y0 y1 sub 3 div def x0 dx sub y0 dy add x1 y1 ArrowA +x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB curveto /Points [ x1 y1 x0 +y0 x0 2 mul x1 sub y1 ] def } def +/Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 } +if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if +/dx ED dy div round dy mul /y0 ED dx div round dx mul /x0 ED dy div +round cvi /y2 ED dx div round cvi /x2 ED dy div round cvi /y1 ED dx div +round cvi /x1 ED /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1 sub +0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div CLW 2 div add def +/Helvetica findfont b scalefont setfont /b b .95 mul CLW 2 div add def } +if systemdict /setstrokeadjust known { true setstrokeadjust /t { } def } +{ /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add +exch itransform } bind def } ifelse gsave n 0 gt { 1 setlinecap [ 0 dy n +div ] dy n div 2 div setdash } { 2 setlinecap } ifelse /i x1 def /f y1 +dy mul n 0 gt { dy n div 2 div h mul sub } if def /g y2 dy mul n 0 gt { +dy n div 2 div h mul add } if def x2 x1 sub w mul 1 add dup 1000 gt { +pop 1000 } if { i dx mul dup y0 moveto b 0 gt { gsave c i a cvs dup +stringwidth pop /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg} +{z1} ifelse rmoveto show grestore } if dup t f moveto g t L stroke /i i +w add def } repeat grestore gsave n 0 gt +% DG/SR modification begin - Nov. 7, 1997 - Patch 1 +%{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash } +{ 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash } +% DG/SR modification end +{ 2 setlinecap } ifelse /i y1 def /f x1 dx mul +n 0 gt { dx n div 2 div w mul sub } if def /g x2 dx mul n 0 gt { dx n +div 2 div w mul add } if def y2 y1 sub h mul 1 add dup 1000 gt { pop +1000 } if { newpath i dy mul dup x0 exch moveto b 0 gt { gsave c i a cvs +dup stringwidth pop /z2 ED w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt +{z1} {b neg} ifelse rmoveto show grestore } if dup f exch t moveto g +exch t L stroke /i i h add def } repeat grestore } def +/ArcArrow { /d ED /b ED /a ED gsave newpath 0 -1000 moveto clip newpath 0 +1 0 0 b grestore c mul /e ED pop pop pop r a e d PtoC y add exch x add +exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c +mul neg d } def +/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def +% +/ArcAdjust { +% given a target length (targetLength) and an initial angle (angle0) [in the stack], +% let M(angle0)=(rx*cos(angle0),ry*sin(angle0))=(x0,y0). +% This computes an angle t such that (x0,y0) is at distance targetLength from the point M(t)=(rx*cos(t),ry*sin(t)). +% NOTE: this an absolute angle, it does not have to be added or substracted to angle0 +% contrary to TvZ's code. +% To achieve, this, one iterates the following process: start with some angle t, +% compute the point M' at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]. +% Now take t' (= new angle) so that (0,0) M(t') and M' are aligned. +% +% Another difference with TvZ's code is that we need d (=add/sub) to be defined. +% the value of d = add/sub is used to know on which side we have to move. +% It is only used in the initialisation of the angle before the iteration. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Input stack: 1: target length 2: initial angle +% variables used : rx, ry, d (=add/sub) +% + /targetLength ED /angle0 ED + /x0 rx angle0 cos mul def + /y0 ry angle0 sin mul def +% we are looking for an angle t such that (x0,y0) is at distance targetLength from the point M(t)=(rx*cos(t),ry*sin(t))) +%initialisation of angle (using 1st order approx = TvZ's code) + targetLength 57.2958 mul + angle0 sin rx mul dup mul + angle0 cos ry mul dup mul + add sqrt div +% if initialisation angle is two large (more than 90 degrees) set it to 90 degrees +% (if the ellipse is very curved at the point where we draw the arrow, the value can be much more than 360 degrees !) +% this should avoid going on the wrong side (more than 180 degrees) or go near +% a bad attractive point (at 180 degrees) + dup 90 ge { pop 90 } if + angle0 exch d +% maximum number of times to iterate the iterative procedure: + 30 +% iterative procedure: takes an angle t on top of stack, computes a better angle (an put it on top of stack) + { dup +% compute distance D between (x0,y0) and M(t) + dup cos rx mul x0 sub dup mul exch sin ry mul y0 sub dup mul add sqrt +% if D almost equals targetLength, we stop + dup targetLength sub abs 1e-5 le { pop exit } if +% stack now contains D t +% compute the point M(t') at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]: +% M(t')= ( (x(t)-x0)*targetLength/d+x0 , (y(t)-y0)*targetLength/d+y0 ) + exch dup cos rx mul x0 sub exch sin ry mul y0 sub +% stack contains: y(t)-y0, x(t)-x0, d + 2 index Div targetLength mul y0 add ry Div exch + 2 index Div targetLength mul x0 add rx Div +% stack contains x(t')/rx , y(t')/ry , d +% now compute t', and remove D from stack + atan exch pop + } repeat +% we don't look at what happened... in particular, if targetLength is greater than the diameter of the ellipse... +% the final angle will be around /angle0 + 180. maybe we should treat this pathological case... +%after iteration, stack contains an angle t such that M(t) is the tail of the arrow +% to give back the result as a an angle relative to angle0 we could add the following line: +% angle0 sub 0 exch d +% +} def +% +/EllipticArcArrow { + /d ED % add/sub + /b ED % arrow procedure + /a1 ED % angle + gsave + newpath + 0 -1000 moveto + clip % Set clippath far from arrow. + newpath + 0 1 0 0 b % Draw arrow to determine length. + grestore +% Length of arrow is on top of stack. Next 3 numbers are junk. +% + a1 exch ArcAdjust % Angular position of base of arrow. + /a2 ED + pop pop pop + a2 cos rx mul x add + a2 sin ry mul y add + a1 cos rx mul x add + a1 sin ry mul y add +% Now arrow tip coor and base coor are on stack. + b pop pop pop pop % Draw arrow, and discard coordinates. + a2 CLW 8 div +% change value of d (test it by looking if `` 1 1 d '' gives 2 or not ) + 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse + ArcAdjust +% resets original value of d + 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse % Adjust angle to give overlap. +} def +%%------------------ tvz/DG/hv (2004-05-10) end -------------------%% +% +/Rot { CP CP translate 3 -1 roll neg rotate NET } def +/RotBegin { tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } +def } if /TMatrix [ TMatrix CM ] cvx def /a ED a Rot /RAngle [ RAngle +dup a add ] cvx def } def +/RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ] +cvx def } def +/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def +/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def +/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def +/Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s +abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b +div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } { +h1 abs h sub dup s mul abs } ifelse } def +/UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s +mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q +{ x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add +exch } def +/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible +/IfVisible true def } if } { IfVisible { Invisible /IfVisible false def +} if } ifelse } def +/InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def +/Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit +neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def +/IfVisible true def } def +end +% END pstricks.pro + +%%EndProcSet +%%BeginProcSet: pst-dots.pro 0 0 +%!PS-Adobe-2.0 +%%Title: Dot Font for PSTricks +%%Creator: Timothy Van Zandt +%%Creation Date: May 7, 1993 +%% Version 97 patch 1, 99/12/16 +%% Modified by Etienne Riga - Dec. 16, 1999 +%% to add /Diamond, /SolidDiamond and /BoldDiamond +10 dict dup begin + /FontType 3 def + /FontMatrix [ .001 0 0 .001 0 0 ] def + /FontBBox [ 0 0 0 0 ] def + /Encoding 256 array def + 0 1 255 { Encoding exch /.notdef put } for + Encoding + dup (b) 0 get /Bullet put + dup (c) 0 get /Circle put + dup (C) 0 get /BoldCircle put + dup (u) 0 get /SolidTriangle put + dup (t) 0 get /Triangle put + dup (T) 0 get /BoldTriangle put + dup (r) 0 get /SolidSquare put + dup (s) 0 get /Square put + dup (S) 0 get /BoldSquare put + dup (q) 0 get /SolidPentagon put + dup (p) 0 get /Pentagon put + dup (P) 0 get /BoldPentagon put +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + dup (l) 0 get /SolidDiamond put + dup (d) 0 get /Diamond put + (D) 0 get /BoldDiamond put +% DG/SR modification end + /Metrics 13 dict def + Metrics begin + /Bullet 1000 def + /Circle 1000 def + /BoldCircle 1000 def + /SolidTriangle 1344 def + /Triangle 1344 def + /BoldTriangle 1344 def + /SolidSquare 886 def + /Square 886 def + /BoldSquare 886 def + /SolidPentagon 1093.2 def + /Pentagon 1093.2 def + /BoldPentagon 1093.2 def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /SolidDiamond 1008 def + /Diamond 1008 def + /BoldDiamond 1008 def +% DG/SR modification end + /.notdef 0 def + end + /BBoxes 13 dict def + BBoxes begin + /Circle { -550 -550 550 550 } def + /BoldCircle /Circle load def + /Bullet /Circle load def + /Triangle { -571.5 -330 571.5 660 } def + /BoldTriangle /Triangle load def + /SolidTriangle /Triangle load def + /Square { -450 -450 450 450 } def + /BoldSquare /Square load def + /SolidSquare /Square load def + /Pentagon { -546.6 -465 546.6 574.7 } def + /BoldPentagon /Pentagon load def + /SolidPentagon /Pentagon load def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /Diamond { -428.5 -742.5 428.5 742.5 } def + /BoldDiamond /Diamond load def + /SolidDiamond /Diamond load def +% DG/SR modification end + /.notdef { 0 0 0 0 } def + end + /CharProcs 20 dict def + CharProcs begin + /Adjust { + 2 copy dtransform floor .5 add exch floor .5 add exch idtransform + 3 -1 roll div 3 1 roll exch div exch scale + } def + /CirclePath { 0 0 500 0 360 arc closepath } def + /Bullet { 500 500 Adjust CirclePath fill } def + /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath + eofill } def + /BoldCircle { 500 500 Adjust CirclePath .8 .8 scale CirclePath + eofill } def + /BoldCircle { CirclePath .8 .8 scale CirclePath eofill } def + /TrianglePath { 0 660 moveto -571.5 -330 lineto 571.5 -330 lineto + closepath } def + /SolidTriangle { TrianglePath fill } def + /Triangle { TrianglePath .85 .85 scale TrianglePath eofill } def + /BoldTriangle { TrianglePath .7 .7 scale TrianglePath eofill } def + /SquarePath { -450 450 moveto 450 450 lineto 450 -450 lineto + -450 -450 lineto closepath } def + /SolidSquare { SquarePath fill } def + /Square { SquarePath .89 .89 scale SquarePath eofill } def + /BoldSquare { SquarePath .78 .78 scale SquarePath eofill } def + /PentagonPath { + -337.8 -465 moveto + 337.8 -465 lineto + 546.6 177.6 lineto + 0 574.7 lineto + -546.6 177.6 lineto + closepath + } def + /SolidPentagon { PentagonPath fill } def + /Pentagon { PentagonPath .89 .89 scale PentagonPath eofill } def + /BoldPentagon { PentagonPath .78 .78 scale PentagonPath eofill } def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /DiamondPath { 0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto + 428.5 0 lineto closepath } def + /SolidDiamond { DiamondPath fill } def + /Diamond { DiamondPath .85 .85 scale DiamondPath eofill } def + /BoldDiamond { DiamondPath .7 .7 scale DiamondPath eofill } def +% DG/SR modification end + /.notdef { } def + end + /BuildGlyph { + exch + begin + Metrics 1 index get exec 0 + BBoxes 3 index get exec + setcachedevice + CharProcs begin load exec end + end + } def + /BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec + } bind def +end +/PSTricksDotFont exch definefont pop +%END pst-dots.pro + +%%EndProcSet +%%BeginProcSet: pst-grad.pro 0 0 +%! +% PostScript prologue for pst-grad.tex. +% Version 1.04, 2004/06/23 (adding %GradientCircle style - D.G.) +% prepared by Herbert Voss +% For copying restrictions, see pstricks.tex. +% +% For the PSTricks gradient fillstyle.% +% Based on some EPS files by leeweyr!bill@nuchat.sccsi.com (W. R. Lee).% +% Syntax:% D.G. modification begin - Apr. 9, %1998 +%%%%%% R0 G0 B0 R1 G1 B1 NumLines MidPoint Angle GradientFill +% ifGradientCircle GradientScale %GradientPosX GradientPosY +% R0 G0 B0 R1 G1 B1 NumLines MidPoint %Angle GradientFill +% D.G. modification end +% +/tx@GradientDict 40 dict def +tx@GradientDict begin +/GradientFill { + rotate + /MidPoint ED + /NumLines ED + /LastBlue ED + /LastGreen ED + /LastRed ED + /FirstBlue ED + /FirstGreen ED +/FirstRed ED +% D.G. modification begin - Apr. 9, 1998 +/GradientPosY ED +/GradientPosX ED + /GradientScale ED + /ifGradientCircle ED +% D.G. modification end + % This avoids gaps due to rounding errors: + clip + pathbbox %leave llx,lly,urx,ury on stack +% D.G. modification begin - Apr. 10, 1998 + 4 copy /ury ED /urx ED /lly ED /llx ED +% D.G. modification end + /y ED /x ED +% D.G. modification begin - Apr. 10, 1998 +ifGradientCircle + {0 GradientPosX eq + {0 GradientPosX eq {2 copy translate} if} if} + {2 copy translate} ifelse +% D.G. modification end + y sub neg /y ED + x sub neg /x ED % This avoids gaps due to rounding errors: + LastRed FirstRed add 2 div + LastGreen FirstGreen add 2 div + LastBlue FirstBlue add 2 div + setrgbcolor +% D.G. modification begin - Jul. 23, 1997 / Apr. 9, 1998 + ifGradientCircle + {/YSizePerLine y NumLines div def + /CurrentY y 2 div def + /MidLine NumLines 2 div 1 MidPoint sub mul abs cvi def} + {fill + /YSizePerLine y NumLines div def + /CurrentY 0 def + /MidLine NumLines 1 MidPoint sub mul abs cvi def} ifelse +% DG modification end + MidLine NumLines 2 sub gt + { /MidLine NumLines def } + { MidLine 2 lt { /MidLine 0 def } if } + ifelse + MidLine 0 gt + { + /Red FirstRed def + /Green FirstGreen def + /Blue FirstBlue def + /RedIncrement LastRed FirstRed sub MidLine 1 sub div def + /GreenIncrement LastGreen FirstGreen sub MidLine 1 sub div def + /BlueIncrement LastBlue FirstBlue sub MidLine 1 sub div def + MidLine { GradientLoop } repeat + } if + MidLine NumLines lt + { + /Red LastRed def + /Green LastGreen def + /Blue LastBlue def + /RedIncrement FirstRed LastRed sub NumLines MidLine sub 1 sub div def + /GreenIncrement FirstGreen LastGreen sub NumLines MidLine sub 1 sub div def + /BlueIncrement FirstBlue LastBlue sub NumLines MidLine sub 1 sub div def + NumLines MidLine sub { GradientLoop } repeat } + if + } def/GradientLoop { +% D.G. modification begin - Jul. 23, 1997 / Apr. 9, 1998 + ifGradientCircle + {CurrentY 0 gt { +% The default center used is the center of the bounding box of the object + 0 GradientPosX eq {0 GradientPosX eq + {/GradientPosX urx llx sub 2 div def + /GradientPosY ury lly sub 2 div def} if} if + GradientPosX GradientPosY CurrentY GradientScale mul 0 360 arc + Red Green Blue setrgbcolor fill + /CurrentY CurrentY YSizePerLine sub def + /Blue Blue BlueIncrement add def + /Green Green GreenIncrement add def + /Red Red RedIncrement add def} if} {0 CurrentY moveto x 0 rlineto + 0 YSizePerLine rlineto x neg 0 rlineto closepath + Red Green Blue setrgbcolor fill /CurrentY CurrentY YSizePerLine add def + /Blue Blue BlueIncrement add def /Green Green GreenIncrement add def + /Red Red RedIncrement add def} ifelse% D.G. modification end + }def + end +% END pst-grad.pro + +%%EndProcSet +%%BeginProcSet: pst-coil.pro 0 0 +%! +% PostScript prologue for pst-coil.tex. +% Version 97 patch 1, 98/06/02 +% For distribution, see pstricks.tex. +% +/tx@CoilDict 40 dict def tx@CoilDict begin +/CoilLoop { /t ED t sin AspectSin mul t 180 div AspectCos mul add t cos +lineto } def +/Coil { /Inc ED dup sin /AspectSin ED cos /AspectCos ED /ArmB ED /ArmA ED +/h ED /w ED /y1 ED /x1 ED /y0 ED /x0 ED x0 y0 translate y1 y0 sub x1 x0 +sub 2 copy Pyth /TotalLength ED Atan rotate /BeginAngle ArmA AspectCos +Div w h mul Div 360 mul def /EndAngle TotalLength ArmB sub AspectCos Div +w h mul Div 360 mul def 1 0 0 0 ArrowA ArmA 0 lineto /mtrx CM def w h +mul 2 Div w 2 Div scale BeginAngle Inc EndAngle { CoilLoop } for +EndAngle CoilLoop mtrx setmatrix TotalLength ArmB sub 0 lineto CP +% DG/SR modification begin - Jun. 2, 1998 - Patch 1 (from Michael Vulis) +% TotalLength 0 ArrowB lineto } def +TotalLength 0 ArrowB lineto +pop pop pop pop } def +% DG/SR modification end +/AltCoil { /Inc ED dup sin /AspectSin ED cos /AspectCos ED /h ED /w ED +/EndAngle ED /BeginAngle ED /mtrx CM def w h mul 2 Div w 2 Div scale +BeginAngle sin AspectSin mul BeginAngle 180 div AspectCos mul add +BeginAngle cos /lineto load stopped { moveto } if BeginAngle Inc +EndAngle { CoilLoop } for EndAngle CoilLoop mtrx setmatrix } def +/ZigZag { /ArmB ED /ArmA ED 2 div /w ED w mul /h ED /y1 ED /x1 ED /y0 ED +/x0 ED x1 y1 translate y0 y1 sub x0 x1 sub 2 copy Pyth /TotalLength ED +Atan rotate TotalLength ArmA sub ArmB sub dup h div cvi /n ED n h mul +sub 2 div dup ArmA add /ArmA ED ArmB add /ArmB ED /x ArmB h 2 div add +def mark 0 0 ArmB 0 n { x w /w w neg def /x x h add def } repeat +TotalLength ArmA sub 0 TotalLength 0 } def +end +% END pst-coil.pro + +%%EndProcSet +%%BeginProcSet: pst-text.pro 0 0 +%! +% PostScript header file pst-text.pro +% Version 1.00, 2005/12/15 +% For distribution, see pstricks.tex. + +/tx@TextPathDict 40 dict def +tx@TextPathDict begin + +% Syntax: PathPosition - +% Function: Searches for position of currentpath distance from +% beginning. Sets (X,Y)=position, and Angle=tangent. +/PathPosition +{ /targetdist exch def + /pathdist 0 def + /continue true def + /X { newx } def /Y { newy } def /Angle 0 def + gsave + flattenpath + { movetoproc } { linetoproc } { } { firstx firsty linetoproc } + /pathforall load stopped { pop pop pop pop /X 0 def /Y 0 def } if + grestore +} def + +/movetoproc { continue { @movetoproc } { pop pop } ifelse } def + +/@movetoproc +{ /newy exch def /newx exch def + /firstx newx def /firsty newy def +} def + +/linetoproc { continue { @linetoproc } { pop pop } ifelse } def + +/@linetoproc +{ + /oldx newx def /oldy newy def + /newy exch def /newx exch def + /dx newx oldx sub def + /dy newy oldy sub def + /dist dx dup mul dy dup mul add sqrt def + /pathdist pathdist dist add def + pathdist targetdist ge + { pathdist targetdist sub dist div dup + dy mul neg newy add /Y exch def + dx mul neg newx add /X exch def + /Angle dy dx atan def + /continue false def + } if +} def + +/TextPathShow +{ /String exch def + /CharCount 0 def +% hv begin 2005-11-29 1.00 +% String length +% { String CharCount 1 getinterval ShowChar +% /CharCount CharCount 1 add def + /CharSize 1 def + currentfont /FontType get 0 eq + { currentfont /FMapType get dup 2 eq exch dup 5 eq exch 9 eq or or + { /CharSize 2 def} if + } if + String length CharSize idiv + { String CharCount CharSize getinterval ShowChar + /CharCount CharCount CharSize add def +% hv end 2005-11-29 1.00 + } repeat +} def + +% Syntax: InitTextPath - +/InitTextPath +{ gsave + currentpoint /Y exch def /X exch def + exch X Hoffset sub sub mul + Voffset Hoffset sub add + neg X add /Hoffset exch def + /Voffset Y def + grestore +} def + +/Transform +{ PathPosition + dup + Angle cos mul Y add exch + Angle sin mul neg X add exch + translate + Angle rotate +} def + +/ShowChar +{ /Char exch def + gsave + Char end stringwidth + tx@TextPathDict begin + 2 div /Sy exch def 2 div /Sx exch def + +%%% MV 10-09-99 00:36 + /sc?currentpoint where {pop sc?currentpoint} {currentpoint} ifelse +% currentpoint + + Voffset sub Sy add exch + Hoffset sub Sx add + Transform + Sx neg Sy neg moveto + Char end tx@TextPathSavedShow + tx@TextPathDict begin + grestore + Sx 2 mul Sy 2 mul rmoveto +} def + +end +% END pst-text.pro + +%%EndProcSet +%%BeginProcSet: pst-node.pro 0 0 +%! +% PostScript prologue for pst-node.tex. +% Version 97 patch 1, 97/05/09. +% For distribution, see pstricks.tex. +% +/tx@NodeDict 400 dict def tx@NodeDict begin +tx@Dict begin /T /translate load def end +/NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def } +if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next end +grestore } def +/InitPnode { /Y ED /X ED /NodePos { NodeSep Cos mul NodeSep Sin mul } def +} def +/InitCnode { /r ED /Y ED /X ED /NodePos { NodeSep r add dup Cos mul exch +Sin mul } def } def +/GetRnodePos { Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def +} ifelse Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def } +ifelse dx Sin mul abs dy Cos mul abs gt { dy Cos mul Sin div dy } { dx +dup Sin mul Cos Div } ifelse } def +/InitRnode { /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub +/u ED /NodePos { GetRnodePos } def } def +/DiaNodePos { w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup +Cos mul exch Sin mul } def +/TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w h +mul w Sin mul h Cos abs mul add Div NodeSep add dup Cos mul exch Sin mul +} ifelse } def +/InitTriNode { sub 2 div exch 2 div exch 2 copy T 2 copy 4 index index /d +ED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def d +sub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atan +sin def /NodePos { TriNodePos } def } def +/OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Cos +hh mul Atan dup cos ww mul exch sin hh mul } def +/GetCenter { begin X Y NodeMtrx transform CM itransform end } def +/XYPos { dup sin exch cos Do /Cos ED /Sin ED /Dist ED Cos 0 gt { Dist +Dist Sin mul Cos div } { Cos 0 lt { Dist neg Dist Sin mul Cos div neg } +{ 0 Dist Sin mul } ifelse } ifelse Do } def +/GetEdge { dup 0 eq { pop begin 1 0 NodeMtrx dtransform CM idtransform +exch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrx +dtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED pop +XYPos } ifelse } def +/AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1 +roll sin mul sub exch } ifelse } def +/GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleA +AddOffset yA add /yA1 ED xA add /xA1 ED } def +/GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleB +AddOffset yB add /yB1 ED xB add /xB1 ED } def +/GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmA +AngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do ED +ArmA AngleA XYPos OffsetA AngleA AddOffset yA add /yA2 ED xA add /xA2 ED +} ifelse } def +/GetArmB { ArmTypeB 0 eq { /xB2 ArmB AngleB cos mul xB1 add def /yB2 ArmB +AngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do ED +ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED +} ifelse } def +/InitNC { /b ED /a ED /NodeSepTypeB ED /NodeSepTypeA ED /NodeSepB ED +/NodeSepA ED /OffsetB ED /OffsetA ED tx@NodeDict a known tx@NodeDict b +known and dup { /NodeA a load def /NodeB b load def NodeA GetCenter /yA +ED /xA ED NodeB GetCenter /yB ED /xB ED } if } def +/LPutLine { 4 copy 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED 1 t sub +mul 3 1 roll 1 t sub mul 4 1 roll t mul add /Y ED t mul add /X ED } def +/LPutLines { mark LPutVar counttomark 2 div 1 sub /n ED t floor dup n gt +{ pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse cvi 2 mul { pop +} repeat LPutLine cleartomark } def +/BezierMidpoint { /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED +/t ED /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3 +mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx +sub def /ay y3 y0 sub cy sub by sub def ax t 3 exp mul bx t t mul mul +add cx t mul add x0 add ay t 3 exp mul by t t mul mul add cy t mul add +y0 add 3 ay t t mul mul mul 2 by t mul mul add cy add 3 ax t t mul mul +mul 2 bx t mul mul add cx add atan /NAngle ED /Y ED /X ED } def +/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def +} def +/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def +/NAngle yyB yyA sub xxB xxA sub Atan def } def +/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def +/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def +} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit +} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd +} def +/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def +} def +/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def +/NAngle yyB yyA sub xxB xxA sub Atan def } def +/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def +/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def +} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check { +exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark +VPosEnd } def +/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2 +roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx +def grestore exec /LPutVar /SaveLPutVar load def } def +/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def +GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos { +LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos { +LPutVar VPutLine } def LPutVar } def +/NCLine { NCCoor tx@Dict begin ArrowA CP 4 2 roll ArrowB lineto pop pop +end } def +/NCLines { false NArray n 0 eq { NCLine } { 2 copy yA sub exch xA sub +Atan /AngleA ED n 2 mul dup index exch index yB sub exch xB sub Atan +/AngleB ED GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1 +yA1 ] cvx def mark LPutVar tx@Dict begin false Line end /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +ifelse } def +/NCCurve { GetEdgeA GetEdgeB xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1 +roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA +GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict +begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ] +cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines +} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def +/NCAngles { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate +def xA2 yA2 mtrx transform pop xB2 yB2 mtrx transform exch pop mtrx +itransform /y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA2 +yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end /LPutVar [ xB1 +yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { LPutLines } def +/HPutPos { HPutLines } def /VPutPos { VPutLines } def } def +/NCAngle { GetEdgeA GetEdgeB GetArmB /mtrx AngleA matrix rotate def xB2 +yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform +/y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA1 yA1 +tx@Dict begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ] +cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +/NCBar { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate def +xA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrx +transform 3 -1 roll 0 gt { /yB2 exch yB2 add def /xB2 exch xB2 add def } +{ /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse mark ArmB +0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict +begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx +def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +/NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } if +xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end +/LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +def +/NCDiagg { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED +GetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin +false Line end /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +def +/NCLoop { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate +def xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2 +mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3 +mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 +xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false +Line end /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ] +cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +% DG/SR modification begin - May 9, 1997 - Patch 1 +%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r +%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add +%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 +%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED +/NCCircle { NodeSepA 0 NodeA 0 GetEdge pop 2 div dup 2 exp r +r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add +exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 +mul add dup 5 1 roll 90 sub PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED +% DG/SR modification end +} def /HPutPos { LPutPos } def /VPutPos { LPutPos } def r AngleA 90 sub a add +AngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 r +Div def /y ED /x ED } def +/NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB +180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cos +mul neg def /hx h AngleB sin mul neg def /hy h AngleB cos mul def +/LPutVar [ xA1 hx add yA1 hy add xB1 hx add yB1 hy add xB1 dx add yB1 dy +add xA1 dx add yA1 dy add ] cvx def /LPutPos { LPutLines } def /HPutPos +{ xB yB xA yA LPutLine } def /VPutPos { HPutPos } def mark LPutVar +tx@Dict begin false Polygon end } def +/NCArcBox { /l ED neg /d ED /h ED /a ED /AngleA yB yA sub xB xA sub Atan +def /AngleB AngleA 180 add def /tA AngleA a sub 90 add def /tB tA a 2 +mul add def /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def +/x0 xA r tA cos mul add def /y0 yA r tA sin mul add def /c 57.2958 r div +def /AngleA AngleA a sub 180 add def /AngleB AngleB a add 180 add def +GetEdgeA GetEdgeB /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul +sub def /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def l 0 +eq { x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn } +{ x0 y0 translate /tA AngleA l c mul add def /tB AngleB l c mul sub def +0 0 r h add tA tB arc r h add AngleB PtoC r d add AngleB PtoC 2 copy 6 2 +roll l arcto 4 { pop } repeat r d add tB PtoC l arcto 4 { pop } repeat 0 +0 r d add tB tA arcn r d add AngleA PtoC r h add AngleA PtoC 2 copy 6 2 +roll l arcto 4 { pop } repeat r h add tA PtoC l arcto 4 { pop } repeat } +ifelse closepath /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def /LPutPos +{ LPutVar /d ED /h ED /AngleB ED /AngleA ED /r ED /y0 ED /x0 ED t 1 le { +r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC } +{ t 2 lt { /NAngle AngleB 180 add def r 2 t sub h mul t 1 sub d mul add +add AngleB PtoC } { t 3 lt { r d add AngleB 3 t sub mul AngleA 2 t sub +mul add dup 90 sub /NAngle ED PtoC } { /NAngle AngleA 180 add def r 4 t +sub d mul t 3 sub h mul add add AngleA PtoC } ifelse } ifelse } ifelse +y0 add /Y ED x0 add /X ED } def /HPutPos { LPutPos } def /VPutPos { +LPutPos } def } def +/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB +sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1 +ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB +w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos +{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop } +{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine } +def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin +/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def +/LPutCoor { NAngle tx@Dict begin /NAngle ED end gsave CM STV CP Y sub neg +exch X sub neg exch moveto setmatrix CP grestore } def +/LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0 +def } ifelse LPutCoor } def +/HPutAdjust { Sin Cos mul 0 eq { 0 } { d Cos mul Sin div flag not { neg } +if h Cos mul Sin div flag { neg } if 2 copy gt { pop } { exch pop } +ifelse } ifelse s add flag { r add neg } { l add } ifelse X add /X ED } +def +/VPutAdjust { Sin Cos mul 0 eq { 0 } { l Sin mul Cos div flag { neg } if +r Sin mul Cos div flag not { neg } if 2 copy gt { pop } { exch pop } +ifelse } ifelse s add flag { d add } { h add neg } ifelse Y add /Y ED } +def +end +% END pst-node.pro + +%%EndProcSet +%%BeginProcSet: pstricks-add.pro 0 0 +%! +% PostScript prologue for pstricks-add.tex. +% Version 0.01, 2005/09/27 +% For distribution, see pstricks.tex. +% +% HISTORY +% 2005/09/28 : - rename it to pstricks-add.pro +% - agg support for Gouraud shading +% 2005/05/20 : small (unimportant) changes (hv) +% 2005/02/25 : white space removal from expression +% 2004/12/16 : addition of SUM and IFTE +% 2004/11/14 : correction of a priority problem +% ^ before unary - (new rule FS) +/tx@addDict 410 dict def tx@addDict begin +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Pi and Euler are defined in pstricks.pro +/PIdiv2 1.57079632680 def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% PS ANALYZER FOR ALGEBRAIC EXPRESSION V1.12 +% E->T|E+T +% T->FS|T*FS %%% NEW 2004/11/14 +% FS -> F | +SF | -SF %%% NEW 2004/11/14 +% F->P|F^P %%% OLD +% F->P|F^SF %%% NEW 2004/11/14 ???? ^FS +% P->(E)|literal +% literal->number|var|var[E]|func(params)%%|-P|+P%%% OLD +% params->E|E,param +% +% E expression, T term, SF signed factor, F factor, P power +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% parser +%% str -> [ LIFO vector ] +/AlgParser { InitParser SetExpr LexStr 0 exch AnalyzeListOfE ExpressionVector /ExpressionVector [] def} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +/SetExpr { RemoveWS /ExpressionString exch def } def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +/InitParser { + /ExpressionVector [] def /AddVector [] def + /AddVectorfree [] def /MulVector [] def + /MulVectorfree [] def /PowVector [] def + /PowVectorfree [] def /OpParVector [] def + /ClParVector [] def /ParVectorFree [] def + %%/CompVector [] def /CompVectorFree [] def + /BraVector [] def /SemVector [] def + /ComVector [] def /ExpressionVector [] def + /LoopLevel -1 def /LoopContext [] def %%% NEW for SUM function +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +/FLbreak { tst not {/L exch def /F exch def 2 copy L eq exch F eq and /tst exch def} {pop pop} ifelse} def +/Negbreak { tst not { dup 0 lt /tst exch def } if } def +/STOP { tst {TOUF} if} def +/tst false def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% analyze Expression List +%% first last +/AnalyzeListOfE { + exch SemVector { + exch 1 index 1 sub AnalyzeExpr 1 add + } forall%%last_char + exch AnalyzeExpr +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% analyze Expr +%% first last +/AnalyzeExpr { + FindFirstAdd%% first last pos+ + 2 copy abs 1 sub ne + { 3 -1 roll 1 index abs 1 sub AnalyzeExpr dup abs 1 add 3 -1 roll AnalyzeTerm EvalAdd } + { pop AnalyzeTerm } ifelse +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% analyze Term +%% first last +/AnalyzeTerm {%%19 28 FLbreak STOP + FindFirstMul%% first last pos* + 2 copy abs 1 sub ne + { 3 -1 roll 1 index abs 1 sub AnalyzeTerm dup abs 1 add 3 -1 roll AnalyzeSignedFactor EvalMul }%%% NEW 2004/11/14 + { pop AnalyzeSignedFactor } ifelse%%% NEW 2004/11/14 +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% NEW 2004/11/14 +%% analyze Signed Factor +%% first last -> +/AnalyzeSignedFactor { + ExpressionString 2 index get + dup 45 eq%% a - sign + { pop exch 1 add exch AnalyzeSignedFactor EvalNeg } + { 43 eq%%a + sign + { exch 1 add exch AnalyzeSignedFactor } + { AnalyzeFactor } ifelse } ifelse +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% analyze Factor +%% first last -> +/AnalyzeFactor { + FindFirstPow%% first last pos* + 2 copy abs 1 sub ne +% { 3 -1 roll 1 index abs 1 sub AnalyzeFactor dup abs 1 add 3 -1 roll AnalyzePower EvalPow } + { 3 -1 roll 1 index abs 1 sub AnalyzeFactor dup abs 1 add 3 -1 roll AnalyzeSignedFactor EvalPow }% NEW 2004/11/14 + { pop AnalyzePower } ifelse +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% analyze Power +%% first last -> +/compteur 0 def +/AnalyzePower { + ExpressionString 2 index get + dup 40 eq%% an open parenthesis + { pop 1 index UnfreePar 1 sub exch 1 add exch AnalyzeExpr } + { dup 45 eq%% a - sign + { pop exch 1 add exch AnalyzePower EvalNeg } + { dup 43 eq%%a + sign + { pop exch 1 add exch AnalyzePower } + { dup 46 eq 1 index 48 ge 2 index 57 le and or%%a digit or a dot + { pop AnalyzeNumber } + { pop AnalyzeLiteral } ifelse } ifelse } ifelse } ifelse +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% analyze parameters list +%% first last +/AnalyzeParam { + { FindFirstCom%% first last pos, + 3 -1 roll 1 index 1 sub AnalyzeExpr + 2 copy 1 sub ne { 1 add exch } { pop pop exit } ifelse + } loop +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Find the eventual addition at this level +%% first last -> position +/FindFirstAdd { + 2 copy /Last exch def /First exch def false 0 + AddVector { + AddVectorFree 2 index get + { /pos exch def + %% if it is in the current part of the analysed expr + pos abs First gt pos abs Last lt and + { true 0 1 ClParVector length + dup 0 eq%% no parenthesis + { pop pop pop pop exch not exch exit } + { 1 sub + { ParVectorFree 1 index get + { OpParVector 1 index get pos abs lt%% in this parenthesis level + ClParVector 2 index get pos abs gt and + { pop pop false exit } if%%then exit loop + } if + pop } for + { pop pop true dup exit } if } ifelse } if + } { pop } ifelse + 1 add + } forall + pop + { pos UnfreeAdd} %% find one mul + { Last 1 add } ifelse +} def +%% { +%% 2 copy /Last exch def /First exch def false 0 +%% AddVector { +%% AddVectorFree 2 index get +%% { /pos exch def +%% true 0 1 ClParVector length 1 sub +%% { ParVectorFree 1 index get +%% { OpParVector 1 index get pos abs le +%% ClParVector 2 index get pos abs ge and +%% pos abs First lt pos abs Last gt or or +%% { pop pop false exit } if +%% } if +%% pop +%% } for +%% { pop pop true dup exit } if +%% } +%% { pop } ifelse +%% 1 add +%% } forall +%% pop +%% { pos UnfreeAdd}%% find one add +%% { Last 1 add } ifelse +%% } def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Find the eventual multiplication at this level +%% first last -> first last position +/FindFirstMul { + 2 copy /Last exch def /First exch def false 0 + MulVector { + MulVectorFree 2 index get + { /pos exch def + %% if it is in the current part of the analysed expr + pos abs First gt pos abs Last lt and + { true 0 1 ClParVector length + dup 0 eq%% no parenthesis + { pop pop pop pop exch not exch exit } + { 1 sub + { ParVectorFree 1 index get + { OpParVector 1 index get pos abs lt%% in this parenthesis level + ClParVector 2 index get pos abs gt and + { pop pop false exit } if%%then exit loop + } if + pop } for + { pop pop true dup exit } if } ifelse } if + } { pop } ifelse + 1 add + } forall + pop + { pos UnfreeMul} %% find one mul + { Last 1 add } ifelse +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Find the eventual power at this level +%% first last -> first last position +/FindFirstPow { + 2 copy /Last exch def /First exch def false 0 + PowVector { + PowVectorFree 2 index get + { /pos exch def + %% if it is in the current part of the analysed expr + pos First gt pos Last lt and + { true 0 1 ClParVector length + dup 0 eq%% no parenthesis + { pop pop pop pop exch not exch exit } + { 1 sub + { ParVectorFree 1 index get + { OpParVector 1 index get pos abs lt%% in this parenthesis level + ClParVector 2 index get pos abs gt and + { pop pop false exit } if%%then exit loop + } if + pop } for + { pop pop true dup exit } if } ifelse } if + } { pop } ifelse + 1 add + } forall + pop + { pos UnfreePow} %% find one ^ + { Last 1 add } ifelse +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Find the eventual comma at this level +%% first last -> first last position +/FindFirstCom { + 2 copy /Last exch def /First exch def false 0 + ComVector { + ComVectorFree 2 index get + { /pos exch def + %% if it is in the current part of the analysed expr + pos First gt pos Last lt and + { true 0 1 ClParVector length + dup 0 eq%% no parenthesisSTOP + { pop pop pop pop exch not exch exit } + { 1 sub + { ParVectorFree 1 index get + { OpParVector 1 index get pos abs lt%% in this parenthesis level + ClParVector 2 index get pos abs gt and + { pop pop false exit } if%%then exit loop + } if + pop } for + { pop pop true dup exit } if } ifelse } if + } { pop } ifelse + 1 add + } forall + pop + { pos UnfreeCom} %% find one comma + { Last 1 add } ifelse +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Find the first opened parenthesis (only for func call) +%% first last -> first last position +/FindFirstPar { + 2 copy /Last exch def /First exch def false 0 + OpParVector { + ParVectorFree 2 index get + { /pos exch def + pos First gt pos Last lt and + { exch not exch exit } if + } { pop } ifelse + 1 add + } forall + pop + { pos dup UnfreePar }%% find one par + { Last 1 add } ifelse +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Find the first opening bracket +%% first last -> first last position +/FindFirstBra { + 2 copy /Last exch def /First exch def + BraVector { + /pos exch def + pos First gt pos Last lt and + { exit } if + } forall + pos dup UnfreePar%% finding it is mandatory +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Read the number and push it in the vector +%% first last -> +/AnalyzeNumber { + 1 index sub 1 add ExpressionString 3 1 roll getinterval cvr /n exch def + /ExpressionVector ExpressionVector aload length n exch 1 add array astore def +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Read the literal and push it in the vector +%% first last -> +/AnalyzeLiteral { + ExpressionString 1 index get dup 41 eq %%close par at the end => function call + { pop FindFirstPar%%first last parpos + ExpressionString 3 index dup 3 index exch sub getinterval + dup (SUM) eq { sumation } + { dup (IFTE) eq { condition } + { 1 index 1 add 3 index 1 sub AnalyzeParam + dup cvn /n exch def TrigoFunc + /ExpressionVector ExpressionVector aload length + /tx@addDict cvx /begin cvx n cvx /end cvx 5 -1 roll 4 add array astore def + %%n cvx exch 1 add array astore def + pop pop pop } ifelse } ifelse } + { 93 eq%%close bracket => vector element + { FindFirstBra%%first last brapos + ExpressionString 3 index dup 3 index exch sub getinterval cvn /n exch def + /ExpressionVector ExpressionVector aload length n cvx exch 1 add array astore def + 2 copy 1 add exch 1 sub AnalyzeExpr + /ExpressionVector ExpressionVector aload length /cvi cvx exch /get cvx exch 2 add array astore def + pop pop pop + } + { 1 index sub 1 add ExpressionString 3 1 roll getinterval cvn /n exch def + /ExpressionVector ExpressionVector aload length n cvx exch 1 add array astore def } ifelse } ifelse +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% push add in the vector +%% kind -> +%% if kind>0 then add else sub +/EvalAdd { + /ExpressionVector ExpressionVector aload length dup 3 add -1 roll + 0 gt { /add } { /sub } ifelse cvx exch 1 add array astore def +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% push mul in the vector +%% -> +/EvalMul { + /ExpressionVector ExpressionVector aload length dup 3 add -1 roll + 0 gt { /mul } { /div } ifelse cvx exch 1 add array astore def +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% push exp in the vector +%% -> +/EvalPow { + pop /ExpressionVector ExpressionVector aload length + /tx@addDict cvx exch /begin cvx exch /EXP cvx exch /end cvx exch 4 add array astore def +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% push neg in the vector +%% -> +/EvalNeg { + /ExpressionVector ExpressionVector aload length /neg cvx exch 1 add array astore def +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Lexical Analyzis of the string +%% -> +/LexStr { + /freepar 0 def /lastpar 0 def /lastchar 0 def + 0 ExpressionString + { dup 40 eq 1 index 91 eq or %% open parenthesis + { /OpParVector OpParVector aload length dup 3 add index exch 1 add array astore def + /ClParVector ClParVector aload length -1 exch 1 add array astore def + /lastpar freepar def /freepar freepar 1 add def /NoPar false def} if + dup 41 eq 1 index 93 eq or %% close parenthesis + { ClParVector lastpar 3 index put lastpar + dup 0 eq + { pop } + { { 1 sub dup ClParVector exch get -1 eq { /lastpar exch def exit } { dup 0 eq { pop exit} if } ifelse } loop } + ifelse } if + dup 42 eq %% * operator + %%{ /MulVector MulVector aload length dup 3 add index exch 1 add array astore def } if + { /MulVector 2 index MulVector aload length 1 add array astore def } if + dup 43 eq %% + operator + { %%test if it is a real operator and not the unary operator + lastchar dup 40 ne %% open parenthesis + 1 index 59 ne and %% ; + 1 index 42 ne and %% * + 1 index 43 ne and %% + + 1 index 44 ne and %% , + 1 index 45 ne and %% - + 1 index 47 ne and %% / + 1 index 0 ne and %% first char + 1 index 94 ne and %% ^%%2004/11/14 + exch 124 ne and %% | + %%{/AddVector AddVector aload length dup 3 add index exch 1 add array astore def } if} + {/AddVector 2 index AddVector aload length 1 add array astore def } if} + if + dup 44 eq %% , separator + { /ComVector ComVector aload length dup 3 add index exch 1 add array astore def } + if + dup 45 eq %% - operator + { %%test if it is a real operator and not the unary operator + lastchar dup 40 ne %% open parenthesis + 1 index 59 ne and %% ; + 1 index 42 ne and %% * + 1 index 43 ne and %% + + 1 index 44 ne and %% , + 1 index 45 ne and %% - + 1 index 47 ne and %% / + 1 index 0 ne and %% first char + 1 index 94 ne and %% ^%%2004/11/14 + exch 124 ne and %% | + %%{/AddVector AddVector aload length dup 3 add index neg exch 1 add array astore def } if} + {/AddVector 2 index neg AddVector aload length 1 add array astore def } if} + if + dup 47 eq %% / operator + %%{ /MulVector MulVector aload length dup 3 add index neg exch 1 add array astore def } + { /MulVector 2 index neg MulVector aload length 1 add array astore def } + if + dup 59 eq 1 index 124 eq or%% ; separator | + { /SemVector SemVector aload length dup 3 add index exch 1 add array astore def } + if + dup 91 eq %% open bracket + { /BraVector BraVector aload length dup 3 add index exch 1 add array astore def } + if + dup 94 eq %% ^ operator + %%{ /PowVector PowVector aload length dup 3 add index exch 1 add array astore def } + { /PowVector 2 index PowVector aload length 1 add array astore def }%%2004/11/14 + if + /lastchar exch def 1 add + } forall + /AddVectorFree AddVector CreateFree def + /MulVectorFree MulVector CreateFree def + /ParVectorFree OpParVector CreateFree def + /PowVectorFree PowVector CreateFree def + /ComVectorFree ComVector CreateFree def + 1 sub +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Create Free vector +%% -> +/CreateFree { + dup length array exch + { pop true exch } forall astore +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Unfree parenthesis +%% pos -> +/UnfreePar { + /pos exch def ParVectorFree 0 + OpParVector { pos eq { exit } if 1 add } forall + false put +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Unfree mul +%% pos -> +/UnfreeMul { + MulVectorFree 0 + MulVector { pos eq { exit } if 1 add } forall + false put +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Unfree add +%% pos -> +/UnfreeAdd { + AddVectorFree 0 + AddVector { pos eq { exit } if 1 add } forall + false put +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Unfree exp +%% pos -> +/UnfreePow { + PowVectorFree 0 + PowVector { pos eq { exit } if 1 add } forall + false put +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Unfree com +%% pos -> +/UnfreeCom { + ComVectorFree 0 + ComVector { pos eq { exit } if 1 add } forall + false put +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Convert to radians if trigo function call +%% (name) -> +/TrigoFunc { + dup (cos) eq 1 index (sin) eq or exch (tan) eq or + { /ExpressionVector ExpressionVector aload length 3.14159265359 /div cvx 180 /mul cvx 5 -1 roll 4 add + array astore def + } if +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% the condition function +%% -> +/condition { + %% manage the condition + 1 index 1 add 3 index 1 sub FindFirstCom + %% find the test char <,>,=,! + 4 index 1 index 1 sub FindTestChar + 4 index 2 index 1 sub AnalyzeExpr 3 1 roll + 1 add 1 index 1 sub AnalyzeExpr exch + /ExpressionVector ExpressionVector aload length dup 1 add array exch 3 add -1 roll cvx exch astore def + %% manage the then clause + MngClause + %% manage the else clause + MngClause + /ExpressionVector ExpressionVector aload length 1 add /ifelse cvx exch array astore def + mark 8 1 roll cleartomark +} def +/FindTestChar { + 1 exch + { dup ExpressionString exch get + dup 60 eq { pop /lt exit } if%%< + dup 61 eq { pop /eq exit } if%%= + dup 62 eq { pop /gt exit } if%%> + pop pop } for +} def +/MngClause { + 3 1 roll FindFirstCom 4 -1 roll 1 add 1 index 1 sub + /ExpressionVector ExpressionVector exch [] def 3 1 roll AnalyzeExpr + /ExpressionVector exch aload length 1 add ExpressionVector cvx exch array astore def +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% the sumation function +%% -> +/sumation { + /LoopLevel LoopLevel 1 add def + %% create the accumulator + /ExpressionVector ExpressionVector aload length 1 add 0 exch array astore def + %% read the variable name + 1 index 1 add 3 index 1 sub FindFirstCom + ExpressionString 4 -1 roll 2 index 1 index sub getinterval cvn + /tempvar exch def + %% read the initial value + GetNextNumber + /ExpressionVector ExpressionVector aload length 1 add temp exch array astore def + %% read the increment value + GetNextNumber + /ExpressionVector ExpressionVector aload length 1 add temp exch array astore def + %% read the limit value + GetNextNumber + /ExpressionVector ExpressionVector aload length 1 add temp exch array astore def + /LoopContext LoopContext aload length 1 add ExpressionVector exch array astore def + /ExpressionVector [ tempvar /exch cvx /def cvx ] def + 1 add exch AnalyzeExpr + %% add each term of the sum + /ExpressionVector ExpressionVector aload length 1 add /add cvx exch array astore def + /ExpressionVector LoopContext LoopLevel get aload length 2 add + ExpressionVector cvx exch /for cvx exch array astore def pop pop pop pop } def +/GetNextNumber { + exch FindFirstCom ExpressionString 4 -1 roll 1 add 2 index 1 index sub getinterval cvi + /temp exch def } def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% METHODS FUNC +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% MISC FUNC +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +/RemoveWS {% + dup length + 0 2 index { 32 ne { 1 add } if } forall + 2 copy ne + { exch pop string 0 2 index + { dup 32 ne { 2 index 2 index 3 -1 roll put 1 add } { pop } ifelse } forall + pop exch pop } { pop pop } ifelse +} def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% NEW FUNC +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Make a discrete sum +%% var n begin end expr -> +/SUM {} def +%% function arcsine in radians +%% x -> theta +/asin {% + dup abs 1 gt { EQDFasinrangeerror } if + dup abs 1 eq + { PIdiv2 exch -1 eq { neg } if } + { .1 %% asin(x) + { dup dup PI div 180 mul sin 3 index sub exch PI div 180 mul cos div + dup abs 1e-6 lt { sub exit } if sub + } loop + exch pop } ifelse +} def +%% function arccosine in radians +%% x -> theta +/acos {% + dup abs 1 gt { EQDFacosrangeerror } if + dup abs 1 eq + { -1 eq { PI } { 0 } ifelse } + { 1.5 %% asin(x) + { dup dup PI div 180 mul cos 3 index sub exch PI div 180 mul sin neg div + dup abs 1e-6 lt { sub exit } if sub + } loop + exch pop } ifelse +} def +%% factorial function +%% n -> n! +/fact { 1 exch 2 exch 1 exch { mul } for } def + +%end + +%% modified exponential funtion for 0 +%% x n -> x^n +/EXP { dup 0 eq { pop pop 1 } { exp } ifelse } def +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +/GTriangle { + gsave + /mtrx CM def + /colorA ED /colorB ED /colorC ED % save the colors + /xA ED /yA ED % save the origin + xA yA translate + rotate % \psk@gangle + /yB ED /xB ED /yC ED /xC ED % save other coordinates + /ds [ % save data in a array + 0 0 0 colorA aload pop % fd x y xr xg xb + 0 xB xA sub yB yA sub colorB aload pop + 0 xC xA sub yC yA sub colorC aload pop +% 1 xC xB add yB colorA aload pop % for use with 4 points ABCD + ] def + newpath + << + /ShadingType 4 % single Gouraud + /ColorSpace [ /DeviceRGB ] + /DataSource ds + >> + shfill + closepath + mtrx + setmatrix grestore} def +% +%% convertisseur longueur d'onde ->R,G,B Manuel Luque +%% lambda max=780 nanomètres +%% lambda min=380 nanomètres +%% adaptation de : +%% http://www.physics.sfasu.edu/astro/color.html +%% www.efg2.com/lab +% +/Gamma 0.8 def +/calculateRGB { + lambda 379 le {/Red 0 def /Green 0 def /Blue 0 def} if + lambda 781 ge {/Red 0 def /Green 0 def /Blue 0 def} if + lambda 380 ge {lambda 439 le { + /R {lambda 440 sub neg 440 380 sub div} def + /Red R factor mul Gamma exp def + /G 0 def + /Green G factor mul Gamma exp def + /B 1 def + /Blue B factor mul Gamma exp def} if + } if + lambda 440 ge { lambda 489 le { + /G {lambda 440 sub 490 440 sub div} def + /Green G factor mul Gamma exp def + /R 0 def /Red 0 def + /B 1 def + /Blue B factor mul Gamma exp def } if + } if + lambda 490 ge {lambda 509 le { + /B {lambda 510 sub neg 510 490 sub div} def + /Blue B factor mul Gamma exp def + /R 0 def /Red 0 def + /G 1 def + /Green G factor mul Gamma exp def } if + } if + lambda 510 ge {lambda 579 le { + /R {lambda 510 sub 580 510 sub div } def + /Red R factor mul Gamma exp def + /Blue 0 def + /G 1 def + /Green G factor mul Gamma exp def } if + } if + lambda 580 ge {lambda 644 le { + /G {lambda 645 sub neg 645 580 sub div } def + /Green G factor mul Gamma exp def + /Blue 0 def + /R 1 def + /Red R factor mul Gamma exp def } if + } if + lambda 645 ge { lambda 780 le { + /Red 1 factor mul Gamma exp def + /Blue 0 def + /Green 0 def } if + } if +} def +% +/factor { + lambda 380 ge {lambda 419 le { 0.3 0.7 lambda 380 sub mul 420 380 sub div add} if } if + lambda 420 ge {lambda 700 le { 1 } if } if + lambda 701 ge {lambda 780 le { 0.3 0.7 780 lambda sub mul 780 700 sub div add} if } if +} def + +/wavelengthToRGB { % the wavelength in nm must be on top of the stack + /lambda exch def + calculateRGB +} def + + +/axfill { + 8 dict begin + /xw exch def /nl exch def + /C1 exch def /y1 exch def/x1 exch def + /C0 exch def /y0 exch def/x0 exch def + << /ShadingType 2 + /ColorSpace /DeviceRGB + /Coords [ x0 y0 x1 y1 ] + /EmulatorHints [ xw 2 div dup ] + /Function << + /FunctionType 2 + /Domain [0 1] + /C0 C0 + /C1 C1 + /N 1 + >> + >> shfill + end +} bind def + +systemdict /shfill known not { + +/Emulate_shfill 32 dict def Emulate_shfill begin + +/NumberOfLayers 128 def + +/assert { not { (assert) /typecheck signalerror} if } bind def +/assert /pop load def + +% generic interpolation +% takes two n-arrays, returns a hopefully optimized procedure taking one +% argument, and returning a correct blend of the two arrays (hence an +% n-array) +/interpolating_function { + 10 dict begin /a1 exch def /a0 exch def + a0 length a1 length eq assert + [ /mark load /exch load + 0 1 a0 length 1 sub { /i exch def /dup load a1 i get a0 i get sub /mul load a0 i get /add load /exch load } for /pop load (]) cvn load ] cvx end +} bind def + +% Emulates (rather poorly) a radial or axial fill. +% For radial fills, we _require_ that the inner circle be specified +% first. +% For axial fills, the ``Extend'' behaviour is ignored, and we _require_ +% an additional parameters in the dictionary, named EmulatorHints. It's a +% 2-array denoting the left and right extent of the area to paint. These +% are taken as multiples of the vector orthogonal to the direction vector. +/xshfill { begin gsave + % do some checks. + Function begin FunctionType 2 eq assert + Domain 0 get 0 eq Domain 1 get 1 eq and assert end + ColorSpace setcolorspace + % we assume ll2 at least, so that dicts can be extended. anyway + % the syntax we request is ll2 only. + /mkcol Function begin C0 C1 end interpolating_function bind def + ShadingType 3 eq { + /mkcoords + [ Coords cvx exec 7 3 roll ] [ 5 -3 roll ] + interpolating_function + bind def + /one { newpath mkcoords cvx dup exec 3 -1 roll add exch moveto + exec 0 360 arc fill } bind def + } if + ShadingType 2 eq { + /dv [ Coords cvx exec exch 4 1 roll exch sub 3 1 roll sub exch + ] cvx def % normal vector + /nv [ dv neg exch ] cvx def + /mkcoords + [ Coords cvx exec 5 2 roll nv + exch 4 -1 roll exch EmulatorHints 0 get mul add + 3 1 roll EmulatorHints 0 get mul add ] + [ 4 -2 roll nv + exch 4 -1 roll exch EmulatorHints 0 get mul add + 3 1 roll EmulatorHints 0 get mul add ] + interpolating_function + % rescale to adapt to our reverse scan behaviour. + /dv [ dv neg NumberOfLayers div exch neg NumberOfLayers div exch ] cvx def + /bnv [ nv EmulatorHints cvx exec add mul exch + EmulatorHints cvx exec add mul exch ] cvx def + /nv [ bnv neg exch neg exch ] cvx def + bind def + /one { newpath mkcoords cvx exec moveto + nv rlineto + dv rlineto + bnv rlineto + closepath fill } bind def + } if + % The space is traversed backwards, since it is more customary + % for me at least to put the inner circle first for radial fills. + % For axial fills, this does not matter afaict. + 1 1 NumberOfLayers div neg 0 + { dup Function /N get exp mkcol cvx exec setcolor one } + for + grestore end +} bind def + +end +userdict /shfill { Emulate_shfill begin xshfill end } bind put } if + +end + +% END pst-eqdf.pro + +%%EndProcSet +%%BeginProcSet: texps.pro 0 0 +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics +exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub +dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} +ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict +end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ +dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 +roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def +dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} +if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} +def end + +%%EndProcSet +%%BeginProcSet: special.pro 0 0 +%! +TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N +/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N +/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N +/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ +/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho +X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B +/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ +/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known +{userdict/md get type/dicttype eq{userdict begin md length 10 add md +maxlength ge{/md md dup length 20 add dict copy def}if end md begin +/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S +atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ +itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll +transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll +curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf +pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} +if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 +-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 +get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip +yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub +neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ +noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop +90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get +neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr +1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr +2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 +-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S +TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ +Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale +}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState +save N userdict maxlength dict begin/magscale true def normalscale +currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts +/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x +psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx +psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub +TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict +begin/SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ +CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N +/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} +repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N +/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX +currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY +moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X +/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 +1 startangle endangle arc savematrix setmatrix}N end + +%%EndProcSet +TeXDict begin @defspecial + +/preview@version(11.81)def + +userdict begin/preview-bop-level 0 def/bop-hook{/preview-bop-level +dup load dup 0 le{/isls false def/vsize 792 def/hsize 612 def}if 1 +add store}bind def/eop-hook{/preview-bop-level dup load dup 0 gt{1 +sub}if store}bind def end + +/preview@tightpage true def (compatibility PostScript comment for dvipng<=1.5 + +userdict begin/bop-hook{7{currentfile token not{stop}if 65781.76 div +DVImag mul}repeat 72 add 72 2 copy gt{exch}if 4 2 roll neg 2 copy lt{exch}if +dup 0 gt{pop 0 exch}{exch dup 0 lt{pop 0}if}ifelse 720 add exch 720 +add 3 1 roll 4{5 -1 roll add 4 1 roll}repeat <>setpagedevice//bop-hook exec}bind def +end + +userdict (some extra code to avoid dvipng>=1.6 unknown special: 7{currentfile token not{stop}if 65781.76 div })) +pop + +userdict begin/bop-hook{preview-bop-level 0 le{7{currentfile token +not{stop}if 65781.76 div DVImag mul}repeat 72 add 72 2 copy gt{exch}if +4 2 roll neg 2 copy lt{exch}if dup 0 gt{pop 0 exch}{exch dup 0 lt{pop +0}if}ifelse 720 add exch 720 add 3 1 roll 4{5 -1 roll add 4 1 roll}repeat +<>setpagedevice}if//bop-hook +exec}bind def end + +@fedspecial end +%%BeginFont: CMR7 +%!PS-AdobeFont-1.1: CMR7 1.0 +%%CreationDate: 1991 Aug 20 16:39:21 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 49 /one put +dup 50 /two put +readonly def +/FontBBox{-27 -250 1122 750}readonly def +/UniqueID 5000790 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D +E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8 +47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C +8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4 +78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486 +1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E +01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B +C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0 +F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30 +8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF +A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7 +455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2 +9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105 +EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B +52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97 +563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F +0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB +7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1 +0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4 +1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4CD5C7347D2E +1D0D6630F446F3708FCB29A85F40B4DAB4D60AA8F5B2DBD67F2E45D80C7A7E86 +144669F75F8FA14609F8E4246FEC475ED262E03D30393C78C7828206842B565A +DBE20EA52EE9C4C3862B2F5F12CF89D935B89B84A45CEFCEAEE8EC8806339364 +56FF1FE2E5112803E3E40162D5188D2210A54816AA9960611721C23A292AE80A +8F8C0FB114D71C111700B0FEA8804F37C5D31ECD7006603C53F4BDF7208286AF +3A25CEE58E88BF81A4800B68C2A19EBDADF9B1074702E779A7DD915EFE09D35E +BD176D7346D859D0944520171C4E97696AE0502C43C391FCE5E8FB1789065E18 +BE3AF62200D57912360411CE848B4550D1B0A3BA576F9B41CED3A23E753631A7 +25375ABE8A4B55BC65AE2EAFAE452766961965093084D218637FB447795CC991 +EB1EF26BF82B7A81FA847ABD3B559D35828AD7DDC5FC7B43C6C14E6ADEDD7663 +F272AA9A121630C5263D58773BCB1437EC2FC54C4AF90E677A8E7D1738D003D4 +18998C03CC9AE182E7758767FEB5E1B03C6CC32AD30D0ABAE6552290771E2CB1 +A23F469A8447C1868C6DEC2C3C2BCFC691867E +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 58 /period put +dup 59 /comma put +dup 75 /K put +dup 97 /a put +dup 100 /d put +dup 101 /e put +dup 105 /i put +dup 110 /n put +dup 111 /o put +dup 114 /r put +dup 116 /t put +dup 120 /x put +dup 121 /y put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +/UniqueID 5087385 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 +990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E +6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB +DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 +59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 +D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF +8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 +6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 +1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE +03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 +95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 +74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 +3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 +47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 +AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 +42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 +40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 +B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 +95601766758820333028C2295F4A921FA3F2A6AC5D3E60DC3A492FE965A7987C +6F4F0FF187FE2A577491EAE8A210018735A966012423879709D2555AB137295B +9B5817743E31C669E80C1C9C53C1E983AE730859A5F234D0225EE9AFC07A8E3B +EC5E7B264E010BEE39E6DC5E3E327C3666CB9A4A08C4B8CBACDC924E433641C6 +686D21874F17E0BF13EFE32F4BF7411F2D25D6DDF429E1E542A3E0DC5AA099AD +49FE89DE38D4A30E3B66EE30D8A8C209E368FCF5618A41FDAA24EDE7DBB91772 +0CBDC4BDEF23FD8FC13F2A3504DAC04480F21D0129D01C4DFCE85B5A476CC56D +F23924BCE3DDD30051D925086920AFC3A3EC706820AC9909A3418F772D4C1424 +E0240538BD41B3BFF3F428025FCEAB3C268416261A4599E220CE810FDA48ECF2 +D3DA1BCED380B1D97009F93D8C1986995D8DB275D6AD3D8278E16917DE54627F +968E88436E28A3961BA0D8968EDFD198D79630CAB56802CFA87EBF6E89B5C07F +290936E9C095B4212F3EF23211FA61DF05A13609CCBB74EE8413623ED6AFAC9D +ACB5B3D73FAF6001C57B0B17C1FF78C77F5B1303F1EF4C48552570CBDA9CB9EF +7D5860AC693D0E11A2CE55523F68CFC9FCB0AC7D5686C0CE58186B7307C50659 +BF8777E9F2337FE30A88E2E92607EC7CA81B2E3F07489267718381A344FBADB7 +C46F5D0E5DA5C5C5C1A45DBB46849939AA1B00F8BFBFB3660ABE17E449546711 +0F18BF16C69BA8C66C633A6CF96FA21B47A2AC8854B10FA1B095A41E4803EE51 +EAD1F80BD21CC20EF8287AEB8B06D2E6E825D032948BD9FD8AF17502D43AD55B +C9CE742D7CA43398176315BD3670118B6418BE757575C3F6C90850C10BE05F83 +100BACE4EA8D8A6622B9C34801AED6FDD2C1771AA8C11EC5E254364342C2FB00 +BF6A8B8FB21EBFBAF159C13E7F43D7C7B40D49A3B95898934FBFEF6D7A5C283D +FBCE910D5A0F78BB5ABA70C209A308FFE9F75396AD23B892EDEA965362397C06 +BC4159699BB635F4C5013498F952EA9C219ABE28590EF89F77DB4929878DE390 +7062FB42623CA24AA2900E0D136A843B83EE823D630D48238089F66BC452E581 +D480D3F1CB3D51E2A44BC65A8D8721CF4EDE51F617DA4BC63CAD1C62F8FB3DDA +3DE2CC019B65626F26A9EBAABA55A5B8E3E26F7F328A11234160B12A4E1A3248 +FA131B07C055CC223D55F2D3BEB4242A82B9F91263D2BF418B8AB841AB4C33B9 +1CB5A3578C5E41BEB1E24FF38249B114203725030EA435F0C883B1BA0A9440DC +21DC41BD9232A248FD2D9C0D0D0C341F4B0FFDCF1159293F208A2CDE0EC73288 +892332BB56150506790F33B4D3A0BC27B3F7678F0E42A60F07E608B12D68B859 +CC92AA1E1C23AF5F3E2B3BDDB92AE9649E906FDAF9CC5112FFE426623C4C910F +4A635E6AFCDDCBFF82269F50BE8168C1C634FB0CEF79E17FC7966B1AE960DC31 +3E91B2A7A137AA5392C5BBF0E8E9A6914A44E49C7E77A0BDE2A0DB041410054D +5109C31E618C0015134DA634F2409994E37271A49DA08DD599CF4EE6EF4A1B91 +7BF8A877C5EF71AE7D1D4D528D387FFEBA76F6202A0BB21B7CDF21A564039EE7 +FEE03AE534FB8CC8F11EA00D195068D2A6EC6DF4BEA0DE3D1E65504E310B0864 +0AD910C3325A65643044FA8F9F7AE501639864D4BC9BA6AFC1FE4143102B18E9 +F28D8C9E7C7C6286521C03EB4C52897F5D3DDE2C25EE9EFD316D97DEDBB6478F +FB7DD54A1A644780EE884333614997F1A79DFC55AFC41B2B63B56C7273C0906B +AD91B6BD0748AC6DDB23C735912A808F4AB2F6AD745A73E4CAA4F7DEA08DF644 +A4930E97301BFE070294B5796F123ED2B4224216540B14159C4B334E3AEC2540 +3DBCB792F822D0A94617DF5AAB3A7C4DD06D21C38EB9F0C5D68B7D3902AEA3E3 +BB08D5354741046784652E806F1956C531B5DFC47F8F1084935D507A519DC362 +FCDA5667426614B8B96814CD6A56A280874D5549AD791BF80CB8BFB6360CCCF8 +CE4F776AC01F2B5EFC3E7856362C28D6DA097F2B0432B36F7105BA20D4E6D91D +F75404D812DE4B83F5206380F738A6FD6666FD95A70554904FA4E45A3E89E2D2 +5BBBAB1194DDEB8903998FD4B87657C6587D9E78C875A1C115D52B1D68A8AECB +EA8DC4A19D7E45B5E5EBA645D1C79789484CB401F6B601F324C879ABB4FBE745 +6382884FFEF01C78624807BABA107769A5CE48DEC59B50ED4F3F8A412A087E9A +87EF124C0EB37EBEC02715B8769FDC38C4953721C50A528C06D7539AC65AF753 +C286213FCC8F73B928468B7FBE35C099CCCEE900C3EFBB6EB734D72544184C6B +45560B398CB0E03FCC408B0B38FCDD9145AC7039499DAEBA3D58FB80DCD4A98E +59E1CCF44296612EA94CAD9675F665C1FCA25B44F7F04C1AE6A2AE2150B7280F +D83F07A373B9A923771057AAFA1DF31A3AF8CE250B3260FB5E1E4BBB2A8A7D6C +693016D2A46E2BA76CCDCB2B24A988A92168A4004B40C6AA5F24F92E7313371C +A0B4F7924BDEE84B1C1C2E9D46B22BCA1C346A7BA5738A195B9EE5D9DB56C06A +8A575A4E6FBF37F3E738413A7F32CAA63A5886824331E783EB506267559E3FD9 +652EB7C24B165D28DA47E51FA4014ADF8DA6110F995A306D158EA2CE18D58DD0 +E30375A60244ECA4E5ED956E2413E9D4CE5D0DD991AD3075B027DCA48E73C845 +7926BC40AF7FB7B12826FC870E409538794185D00FBFD55B7B3A204947FD325D +417EBE45B0B4874819CE22F9C676A999BC5F46E964A84C26D381601DB66F5AB1 +2A20B034DD6365BB02888AAEB83AB1B8612E3923A8A49FACB3FE9807CE2C64EE +07E87E6F8264ADD02284E458471E9934D74F6DC45916A85738B40317B803FC46 +0EE52ADB77A4A8735D1A9D0664467D2C2A9F55EE9D93BC0369847D1317D3F7E2 +50A23319CA8D3C563DF8D3A33FE5E80B000731F21960B81B328ABC661136A897 +076EBE4EC5669E43688A1FF373C70674DBF0A3EBD6F12EBB37D8A5FD08DC8894 +52BA09304D3F2C664AF995B39E6858933EB7987B63FE19A35989AB8BDF639454 +D55A572F5A670AE281CDC090BE83F37A71E4F4937E822E5DA294EAF054245FC3 +5709F9951AB572805B3F51D7940E22571D34D3D077B4E485D001C8F63898C40A +750A0E21C8C226BA4F9322164D1DC3029CDA78B6EB85EB7C066DBFCEB3DD9353 +15A07243935489873A7E85C80182562F190714FB64E16CEA199640AF92EC01B8 +28202A3F402F8A63F8F01BC368FF49E0FC6BCE198F47744FA83F538AF8FA21B3 +69BE65FE9F3E1642D37720B1B2D1E331DFAE2388142E6BD29011F40AECD28526 +E18854CC07170E62945AC37D4990B343EA78698C2DFEF0908FC6CA012EEB1F43 +D87D88E80C9BD5E32807ECBB8D7505DFBFA8842AFD6BCE6F0D4ACEF53B0AA318 +DDFD8E707B41A19F235D8669194FFBEE1DBB2B9EA4A4109966ED793963292FCE +6C91F779ACAD52050242232FA5D63F540F37ED54C997001268D3CDF40E433BFD +BC143839C3F09065A0FBD4AA5431D57E7648AB9C9D4F4E889AFED6FAE6F7E459 +929D0E86BADE9DBE3BC81DA20E393C9CB41C8D9F70272AC3B678520A17367451 +6343D6228BA9AE7A7A444595D8402FFC5E28522CBD33C1836E96123018BAD12F +DC82861C4C4840910FFF41146A +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMR10 +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 40 /parenleft put +dup 41 /parenright put +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 52 /four put +dup 80 /P put +dup 107 /k put +dup 110 /n put +dup 116 /t put +dup 117 /u put +readonly def +/FontBBox{-251 -250 1009 969}readonly def +/UniqueID 5000793 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 +87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F +D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 +92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C +295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 +409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C +4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF +2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E +0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E +B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 +24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B +43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF +D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 +5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC +96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 +7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 +0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 +B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D +AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 +97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 +FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27 +F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6 +DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6 +A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B +7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E +2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491 +84A8EBDB90B1167333987F7D42A76E9C5C5A8429E1CACD4206D312E9CA60D7E0 +6E906270BD9F42EEE618B7F5CC9ACBE1FCDB7E7C02D756FBDCA1E23E47BCF2C9 +6A9C58E53950DB59E43228DF2E17F44D2828175BF383AD06F224BB9C8438B787 +B5673AAE3772C82AC0ED80420E4BCD787F6C1979B339E271D9F3A9068D32ACDB +476F04E5FFEACBC97E5C7B8E2229F94F3B360D1F7D0B7CE61AEDAAEF98864CB6 +CD1339FB5894E7A3752963AA6043403EF01422549C478F514629E5A25C4FDE51 +CB19068F183D547C8A109854E67074DD421CDC878BB48835AF0D965A0FDFD392 +847AE57C85675CF04BFD1410B56E616F68C399DAD07C9A198489AA1D0FA3717B +F3CD52E7FC86C8FFE001893AA6D9E4B7582ACD74AC46BE3E8161DEF949C13FE2 +F29D25BC8614D6C29F336C5E9F60656D2F7F6666A132347F5F471F11393C9873 +6262C0F79D55A0857D36058B06F3AABB121CA1540BA17F0A43DF8A4826C67875 +5F62A3B464A0300513DB48355B3D1870DC28137B05A079E7C728D8AE7462A5C4 +D2D09AC4B8DEDA847358A6856E3D6F3B11C1F343EA1AB3E596E20FDCE0830DD3 +016CB7301921FBD57FB36791D959D7D753D299285497CD3FF06B9FBF62FB1396 +CF5121199EB486424448B45EDB617EDB931969D35B7492B339AF758E0458C527 +D07286045CE90BA9685C38C23AE0E328D4FDC5C2E8652C59215D05298EF3AF28 +5D1905BB1471ED972022B4D84CF007C1D9B1D62815143BF43B1E4E2F9DD0328D +F38D31EEB4D23008289268A5885285EB671AFC98228DC94089124FA93E272C05 +50DB0509197D7656C887B7E0178ACC328E3FE36687F73F6E363A2CFAC2670653 +756797F6518CC0653A84BD915B7BDD4FCDAA5568A68ED3060B489924057FD0AC +1A617DBB69FC042B9BA407139ACECC6BA9E7A28221D26E54B1AB1EE6227AD836 +AE74E7809429D6D8774965604AF8971B3B95C979ACEE908EFED5DDB3CC116A1D +EE00A4165D7467E6E42A4C0D2DE72EE690D4A8E518B9E9A9551110A5D11459CC +68FBD07385D092561C228DF2784BABC30FBB94851B343EDBB40D23899DCE526A +1385533CE7F61B975686F6A58AECBE0C064E53C9993747EB6EA1C03863D75335 +9D618D6726A199D6F49F0BC19BBF03461B3FBDE2FF0F319EEC1A563B7F5DD72F +010AB26A0A8984BAA20506F412497862C3228D8730FA17B0E5379F10B882F7B6 +5BA35297C43859075E2C815D0631D83C7704DA8A7CA576E19877A8E6F294A1D7 +B48671C83AE0A97119D5C3D91C5D9203574FCAEDDFF997C84A6E6CB5BDD3ACD5 +FFC200F50229116CA9D17A3F9EF5C4B933AC28FCC8417193FAEB5C3C281AA0D9 +CB699FF1AAE89864854FD614DA061806D8BE8E768B3977E907A2215E8192D48B +0108F89C1B4A69E0D46B046205D77C7DE68D63399B6609837F330559173C219B +FE2964EE88A9D4BDA447E6EC32B154FF2E6B2AEC4D5D68E2D06693AD3A8764E2 +B33EBAE73DA62E20A5EAF90DBD5E91E36D15DF5DE0F7A750D7F9C5CC23428BEB +9975AED73D37681224C6347530D36C171F9F1C20251B5028FD55EE47DE935442 +EC909D4C3F11F2B5C337A9DFF6CB01418A3AEF4284F14D633828F42340AE663B +AEB2E8EFA8B07CCB3D6BEDD0294DC87AC15C2A1C3B3B53DFDD04374BE6E16AED +45A005180FBC22611262D8C468450616231B64293151532450CF54E76AAEC889 +116A37133BC43D2732CA86B2C644A3F9E3E55D3F0EB623B15A3402CD44963BC6 +78B20A1053DF478CC8C74BCD429F565DF55E1995E79BE4D72095DE8FA4AC2666 +7010306B78477C86508827A66C33F5F2513DB6419BF50B4CE3E86F8B97CE3044 +84DFD1FD5394887B86C1B167236082180B0E8F37EB73F0127EF5C35B9221FB2A +BFFD47CA9D937B791474D59C72624DB04964F6E8161C37077D88E47925C53D9E +3299AEE8EAEFCD13C368F6B85A3C3646384E0CBB4F4E0E017C287908392C4937 +41FCE7B58EEE6BEA1AA8A1BB60B82F106BA6AA34FF28658B0CD8E2EF05B04E21 +7552EB4004793B7B27DEA9C550385ED2E451722C35C283638E256D8E2FB255AF +7D00FE63D91DA29A65059FA96F11CA784A1B28E921ABD9FE679A182B64188C80 +D9BEB3691A4C9B483E10ADE9AB01D13A79E49E0B2E09462F653C777FBAF90F95 +A978A7B4EB650EB336437AD8F8675B0A7DFAE7B57BADEFE487AABBD4CCD2C0D5 +E7589EFDBC36FE7B16A0E0DAD13A4A429A3EF89AEF4305739A264961CD68CD15 +8C48B8CA7FC615D308C6B0CC083677DCA62E2F85B66F8A744055EEAC55567582 +41144955F968099B95B21D5C87F53EB30164B6DDA6D3380E39937DB020347079 +78E0263555882737220697982B3F916A3D2D3FF7C2C38C0801CB1FB5B52711D2 +1ACB9671D1EDA6F1ECC52E589A44B6B56A527E64FB8F89C6E8812C6005E3CBCB +764B0296A00B98802F0A5C3804E95F90306A7424065EA762732DA4D70CB05C0A +CDCAF8C0812DB7A00CB8D385457BF484A63C8AA561D16BC283023E6908B06921 +BE565026A59801988F1D7B7935ABE47D7B1E552E87BFD6C0E6F444D4665E3690 +AB86E9501875D208CE4F974AC7B39E07508F0DB2C082ED13FFE3652D730C4BAE +B264311C2DC30D971B5ED2396D232B84B32ED5A458EEE3D96FBE0E6B57BCF5AE +AB8B92B6BABFE29763DE0ABBCC4E60AC84D15B59626B835BF310C71FDA86F943 +8E28EF5982339BC409A2A3526C54D0A5A09162F15E2099A82890D12385AFEE77 +EF924D4B32DB34F226AA7F576A1457ADEBEE2C3DF0A232A4C117E00F401689CB +C3E4909AABCA8ED1265030CBA8C2EEA6FC3EAD67301BBE5F73080561FDC9AD29 +CDD57F38F01650E8A4D9FC522FFCE948B5EF65F0C5FD5EF33E025C81E446C186 +3C4BB1ED25465B41FAD6506310CC7E57E91EEEB09A45E506B56B79FC8635AC14 +81FBBB90E8C70355F9D4D1E4CD68A8BD4EB2BFEF6FA2437325480C5E8C1AE66A +DB02BB80DBBF329BB527B45F2BA89EB463F85AD9CE86D0AF46C97F3DA7911A0C +8803C1B03AC9D4BF9195C8FE90719A22BF9188E986E62BC9AA7886EA7D8AFD9C +D52588D561548D4C40C08F3451CC710E0B5AFDECB719F31C58AC28877F59E4AE +5D778B9F4747E96D7962FDD6DA24D3E0C049D13571DF921634F0D3B116C96741 +B94D98DBC0556FFC528DA41C5A5EFCFC0608F4F530AF714A02F9D2D324B339B9 +AAE949 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 39139632 55387786 1000 8000 8000 +(F:/MathematikFHTW/2dgrafiken/2dgrafiken.dvi) @start +/Fa 205[441 441 49[{}2 774.872 /CMR7 rf /Fb 134[543 633 +3[400 1[499 2[537 664 4[381 3[515 576 2[585 21[940 15[307 +307 58[{}13 1106.96 /CMMI10 rf /Fc 138[615 430 5[615 +2[584 26[753 27[553 1[553 553 553 6[430 430 40[{}11 1106.96 +/CMR10 rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 8000dpi +TeXDict begin +%%PaperSize: A4 + end +%%EndSetup +%%Page: 1 1 +TeXDict begin 1 0 bop +-32891 -32891 32891 32891 11001594 0 11001594 + 3150 -3150 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 setgray /ArrowA { moveto } def +/ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. CLW mul add +dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1 scale } if gsave +w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill grestore +grestore 0 h a sub moveto EndArrow } def /ArrowInside { } def +128.03734 0 0.0 0 ArrowA CP 4 2 roll ArrowB /yEnd exch def /xEnd +exch def xEnd yEnd L /yStart exch def /xStart exch def 0 setlinecap +stroke stroke 0 dup 2 mod 0 eq false and exch 2 lt true and or { /viceversa +0.0 128.03734 gt { true }{ false } ifelse def /epsilon 0.01 def /minTickline +0.0 def /maxTickline 128.03734 def /dT 3729358 65536 div viceversa +{neg} if def /subTNo 1 def subTNo 0 gt { /dsubT dT subTNo div def}{ +/dsubT 0 def } ifelse -4.0 4.0 /tickend exch def /tickstart exch def +/Twidth 0.4 def /subTwidth 0.2 def /STsize 0.75 def /TColor { 0 +setgray } def /subTColor { 0.5 setgray } def /MinValue { xStart +} def /MaxValue { xEnd 1.5 2. CLW mul add 1.4 mul viceversa { add +epsilon sub } { sub epsilon add } ifelse } def /logLines { false } +def /LSstroke { 0 setlinecap stroke } def /subLSstroke { 0 setlinecap +stroke } def 0 dT MaxValue { /cntTick exch def logLines { gsave 1 10 +subTNo div 9.99 { /dx exch def /x cntTick dT dx log mul add def x abs +MaxValue abs le { x minTickline moveto x maxTickline lineto } if +} for subTwidth SLW subTColor subLSstroke grestore stroke /dsubT 0 +def } if dsubT abs 0 gt { gsave /cntsubTick cntTick dsubT add def subTNo +1 sub { cntsubTick abs MaxValue abs le { cntsubTick tickstart STsize +mul moveto cntsubTick tickend STsize mul lineto }{ exit } ifelse +/cntsubTick cntsubTick dsubT add def } repeat subTwidth SLW subTColor +subLSstroke grestore } if gsave cntTick tickstart moveto cntTick tickend + lineto Twidth SLW TColor LSstroke grestore } for /dT dT neg def /dsubT +dsubT neg def 0 dT MinValue epsilon viceversa { add }{ sub } ifelse +{ /cntTick exch def logLines { gsave 1 10 subTNo div 9.99 { /dx exch +def /x cntTick dT dx log mul add def x abs MinValue abs le { x minTickline + moveto x maxTickline lineto } if } for /dsubT 0 def subTwidth SLW +subTColor subLSstroke grestore } dsubT abs 0 gt { gsave /cntsubTick +cntTick dsubT add def subTNo 1 sub { cntsubTick abs MinValue abs le +{ cntsubTick tickstart STsize mul moveto cntsubTick tickend STsize +mul lineto }{ exit } ifelse /cntsubTick cntsubTick dsubT add def } +repeat subTwidth SLW subTColor subLSstroke grestore } if gsave cntTick +tickstart moveto cntTick tickend lineto Twidth SLW TColor LSstroke +grestore } for } if end + + +@endspecial @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 setgray /ArrowA { moveto } def +/ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. CLW mul add +dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1 scale } if gsave +w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill grestore +grestore 0 h a sub moveto EndArrow } def /ArrowInside { } def +0 128.03734 0 0.0 ArrowA CP 4 2 roll ArrowB /yEnd exch def /xEnd +exch def xEnd yEnd L /yStart exch def /xStart exch def 0 setlinecap +stroke stroke 0 dup 2 mod 0 eq true and exch 2 lt false and or { /viceversa +0.0 128.03734 gt { true }{ false } ifelse def /epsilon 0.01 def /minTickline +0.0 def /maxTickline 128.03734 def /dT 3729358 65536 div viceversa +{neg} if def /subTNo 1 def subTNo 0 gt { /dsubT dT subTNo div def}{ +/dsubT 0 def } ifelse -4.0 4.0 /tickend exch def /tickstart exch def +/Twidth 0.4 def /subTwidth 0.2 def /STsize 0.75 def /TColor { 0 +setgray } def /subTColor { 0.5 setgray } def /MinValue { yStart +} def /MaxValue { yEnd 1.5 2. CLW mul add 1.4 mul viceversa { add +epsilon sub } { sub epsilon add } ifelse } def /logLines { false } +def /LSstroke { 0 setlinecap stroke } def /subLSstroke { 0 setlinecap +stroke } def 0 dT MaxValue { /cntTick exch def logLines { gsave 1 +10 subTNo div 9.99 { /dx exch def /x cntTick dT dx log mul add def +x abs MaxValue abs le { x minTickline exch moveto x maxTickline exch +lineto } if } for subTwidth SLW subTColor subLSstroke grestore stroke +/dsubT 0 def } if dsubT abs 0 gt { gsave /cntsubTick cntTick dsubT +add def subTNo 1 sub { cntsubTick abs MaxValue abs le { cntsubTick +tickstart STsize mul exch moveto cntsubTick tickend STsize mul exch +lineto }{ exit } ifelse /cntsubTick cntsubTick dsubT add def } repeat +subTwidth SLW subTColor subLSstroke grestore } if gsave cntTick tickstart +exch moveto cntTick tickend exch lineto Twidth SLW TColor LSstroke +grestore } for /dT dT neg def /dsubT dsubT neg def 0 dT MinValue epsilon +viceversa { add }{ sub } ifelse { /cntTick exch def logLines { gsave +1 10 subTNo div 9.99 { /dx exch def /x cntTick dT dx log mul add def +x abs MinValue abs le { x minTickline exch moveto x maxTickline exch +lineto } if } for /dsubT 0 def subTwidth SLW subTColor subLSstroke +grestore } dsubT abs 0 gt { gsave /cntsubTick cntTick dsubT add def +subTNo 1 sub { cntsubTick abs MinValue abs le { cntsubTick tickstart +STsize mul exch moveto cntsubTick tickend STsize mul exch lineto }{ +exit } ifelse /cntsubTick cntsubTick dsubT add def } repeat subTwidth +SLW subTColor subLSstroke grestore } if gsave cntTick tickstart exch +moveto cntTick tickend exch lineto Twidth SLW TColor LSstroke grestore +} for } if end + +@endspecial 1600 +-2793 a Fc(0)1600 -9092 y(2)1600 -15391 y(4)2873 -1440 +y(0)5746 b(2)g(4)3150 -3150 y + tx@Dict begin { 48.36957 -22.76227 } PutCoor PutBegin end + 3150 -3150 a 385 x Fc(1)p +Fb(:)370 b(K)79 b(oor)31 b(dinate)3150 -3150 y + tx@Dict begin PutEnd end + 3150 -3150 +a 3150 -3150 a + tx@Dict begin { 136.57324 0.0 } PutCoor PutBegin end + 3150 -3150 a 2834 -2911 a Fb(x)3150 -3150 +y + tx@Dict begin PutEnd end + 3150 -3150 a 3150 -3150 a + tx@Dict begin { 11.38092 113.81097 } PutCoor PutBegin end + 3150 -3150 a 385 x Fc(2)p +Fb(:)370 b(K)79 b(oor)31 b(dinate)3150 -3150 y + tx@Dict begin PutEnd end + 3150 -3150 +a 3150 -3150 a + tx@Dict begin { 0.0 136.57324 } PutCoor PutBegin end + 3150 -3150 a 2859 -3019 a Fb(y)3150 -3150 +y + tx@Dict begin PutEnd end + 3150 -3150 a @beginspecial @setspecial + tx@Dict begin STP newpath /ArrowA { moveto } def /ArrowB { } def /ArrowInside +{ } def 0.1 SLW 1 0 0 setrgbcolor /ArrowA { moveto } def /ArrowB +{ } def /ArrowInside { } def [ 85.35823 85.35823 0.0 0.0 /Lineto +/lineto load def false NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } +if () length 0 gt { 2 copy /y1 ED /x1 ED ArrowA x1 y1 /n n 1 sub def +n { 4 copy /y1 ED /x1 ED /y2 ED /x2 ED x1 y1 0.5 1 gt { /Alpha y2 +y1 sub x2 x1 sub atan def /ArrowPos 0. def /Length x2 x1 sub y2 y1 +sub Pyth def /dArrowPos 0.5 abs def { /ArrowPos ArrowPos dArrowPos +add def ArrowPos Length gt { exit } if x1 Alpha cos ArrowPos mul add +y1 Alpha sin ArrowPos mul add ArrowInside pop pop } loop }{ /ArrowPos +0. def /dArrowPos 1. 1 gt {1.0 1. 1.0 add div }{0.5 } ifelse def 1. + cvi { /ArrowPos ArrowPos dArrowPos add def x2 x1 sub ArrowPos mul +x1 add y2 y1 sub ArrowPos mul y1 add ArrowInside pop pop } repeat } +ifelse pop pop Lineto } repeat }{ ArrowA /n n 2 sub def n { Lineto +} repeat } ifelse CP 4 2 roll ArrowB L pop pop } if gsave 0.1 SLW +1 0 0 setrgbcolor 0 setlinecap stroke grestore end + +@endspecial +3150 -3150 a + tx@Dict begin { 85.35823 -8.5359 } PutCoor PutBegin end + 3150 -3150 a 2609 -2995 a Fb(a)3194 -2829 +y Fa(1)3150 -3150 y + tx@Dict begin PutEnd end + 3150 -3150 a 3150 -3150 a + tx@Dict begin { -8.5359 85.35823 } PutCoor PutBegin end + 3150 -3150 +a 2609 -2995 a Fb(a)3194 -2829 y Fa(2)3150 -3150 y + tx@Dict begin PutEnd end + 3150 +-3150 a @beginspecial @setspecial + tx@Dict begin STP newpath /ArrowA { moveto } def /ArrowB { } def /ArrowInside +{ } def 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto } def /ArrowB +{ } def /ArrowInside { } def [ 85.35823 85.35823 85.35823 -5.69046 + /Lineto /lineto load def false NArray n 0 eq not { n 1 eq { 0 0 /n +2 def } if () length 0 gt { 2 copy /y1 ED /x1 ED ArrowA x1 y1 /n n +1 sub def n { 4 copy /y1 ED /x1 ED /y2 ED /x2 ED x1 y1 0.5 1 gt { +/Alpha y2 y1 sub x2 x1 sub atan def /ArrowPos 0. def /Length x2 x1 +sub y2 y1 sub Pyth def /dArrowPos 0.5 abs def { /ArrowPos ArrowPos +dArrowPos add def ArrowPos Length gt { exit } if x1 Alpha cos ArrowPos +mul add y1 Alpha sin ArrowPos mul add ArrowInside pop pop } loop }{ +/ArrowPos 0. def /dArrowPos 1. 1 gt {1.0 1. 1.0 add div }{0.5 } ifelse +def 1. cvi { /ArrowPos ArrowPos dArrowPos add def x2 x1 sub ArrowPos +mul x1 add y2 y1 sub ArrowPos mul y1 add ArrowInside pop pop } repeat +} ifelse pop pop Lineto } repeat }{ ArrowA /n n 2 sub def n { Lineto +} repeat } ifelse CP 4 2 roll ArrowB L pop pop } if gsave 0.1 SLW +0 0 1 setrgbcolor [ 5.0 3.0 ] 0 0 add dup 0 gt { /a .5 def PathLength +exch div } { pop /a 1 def PathLength } ifelse /b ED dup /X ED 0 get +/y ED /z 0 X {add} forall def b a .5 sub 2 mul y mul sub z Div round +z mul a .5 sub 2 mul y mul add b exch Div /z ED false X { z mul } forall +X astore {0 gt or} forall { X 1 a sub y mul } { [ 1 0 ] 0 } ifelse +setdash stroke grestore end + +@endspecial @beginspecial +@setspecial + tx@Dict begin STP newpath /ArrowA { moveto } def /ArrowB { } def /ArrowInside +{ } def 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto } def /ArrowB +{ } def /ArrowInside { } def [ 85.35823 85.35823 -5.69046 85.35823 + /Lineto /lineto load def false NArray n 0 eq not { n 1 eq { 0 0 /n +2 def } if () length 0 gt { 2 copy /y1 ED /x1 ED ArrowA x1 y1 /n n +1 sub def n { 4 copy /y1 ED /x1 ED /y2 ED /x2 ED x1 y1 0.5 1 gt { +/Alpha y2 y1 sub x2 x1 sub atan def /ArrowPos 0. def /Length x2 x1 +sub y2 y1 sub Pyth def /dArrowPos 0.5 abs def { /ArrowPos ArrowPos +dArrowPos add def ArrowPos Length gt { exit } if x1 Alpha cos ArrowPos +mul add y1 Alpha sin ArrowPos mul add ArrowInside pop pop } loop }{ +/ArrowPos 0. def /dArrowPos 1. 1 gt {1.0 1. 1.0 add div }{0.5 } ifelse +def 1. cvi { /ArrowPos ArrowPos dArrowPos add def x2 x1 sub ArrowPos +mul x1 add y2 y1 sub ArrowPos mul y1 add ArrowInside pop pop } repeat +} ifelse pop pop Lineto } repeat }{ ArrowA /n n 2 sub def n { Lineto +} repeat } ifelse CP 4 2 roll ArrowB L pop pop } if gsave 0.1 SLW +0 0 1 setrgbcolor [ 5.0 3.0 ] 0 0 add dup 0 gt { /a .5 def PathLength +exch div } { pop /a 1 def PathLength } ifelse /b ED dup /X ED 0 get +/y ED /z 0 X {add} forall def b a .5 sub 2 mul y mul sub z Div round +z mul a .5 sub 2 mul y mul add b exch Div /z ED false X { z mul } forall +X astore {0 gt or} forall { X 1 a sub y mul } { [ 1 0 ] 0 } ifelse +setdash stroke grestore end + +@endspecial @beginspecial @setspecial + tx@Dict begin STP newpath /ArrowA { moveto } def /ArrowB { BeginArrow +1. 1. scale false 0.4 1.4 1.5 2. CLW mul add dup 2 div /w ED mul +dup /h ED mul /a ED { 0 h T 1 -1 scale } if gsave w neg h moveto 0 +0 L w h L w neg a neg rlineto gsave fill grestore grestore 0 h a sub +moveto EndArrow } def /ArrowInside { } def 0.8 SLW 0 setgray +/ArrowA { moveto } def /ArrowB { BeginArrow 1. 1. scale false 0.4 +1.4 1.5 2. CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 +h T 1 -1 scale } if gsave w neg h moveto 0 0 L w h L w neg a neg rlineto +gsave fill grestore grestore 0 h a sub moveto EndArrow } def /ArrowInside +{ } def [ 88.20367 82.51277 99.5846 71.13185 /Lineto /lineto load +def false NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } if () length +0 gt { 2 copy /y1 ED /x1 ED ArrowA x1 y1 /n n 1 sub def n { 4 copy +/y1 ED /x1 ED /y2 ED /x2 ED x1 y1 0.5 1 gt { /Alpha y2 y1 sub x2 x1 +sub atan def /ArrowPos 0. def /Length x2 x1 sub y2 y1 sub Pyth def +/dArrowPos 0.5 abs def { /ArrowPos ArrowPos dArrowPos add def ArrowPos +Length gt { exit } if x1 Alpha cos ArrowPos mul add y1 Alpha sin ArrowPos +mul add ArrowInside pop pop } loop }{ /ArrowPos 0. def /dArrowPos +1. 1 gt {1.0 1. 1.0 add div }{0.5 } ifelse def 1. cvi { /ArrowPos +ArrowPos dArrowPos add def x2 x1 sub ArrowPos mul x1 add y2 y1 sub +ArrowPos mul y1 add ArrowInside pop pop } repeat } ifelse pop pop Lineto +} repeat }{ ArrowA /n n 2 sub def n { Lineto } repeat } ifelse CP 4 +2 roll ArrowB L pop pop } if gsave 0.8 SLW 0 setgray 0 setlinecap +stroke grestore end + +@endspecial +@beginspecial @setspecial + tx@Dict begin STP newpath /ArrowA { moveto } def /ArrowB { } def /ArrowInside +{ } def 0.8 SLW 0 1 0 setrgbcolor /ArrowA { moveto } def /ArrowB +{ } def /ArrowInside { } def [ 88.20367 82.51277 82.51277 88.20367 + /Lineto /lineto load def false NArray n 0 eq not { n 1 eq { 0 0 /n +2 def } if () length 0 gt { 2 copy /y1 ED /x1 ED ArrowA x1 y1 /n n +1 sub def n { 4 copy /y1 ED /x1 ED /y2 ED /x2 ED x1 y1 0.5 1 gt { +/Alpha y2 y1 sub x2 x1 sub atan def /ArrowPos 0. def /Length x2 x1 +sub y2 y1 sub Pyth def /dArrowPos 0.5 abs def { /ArrowPos ArrowPos +dArrowPos add def ArrowPos Length gt { exit } if x1 Alpha cos ArrowPos +mul add y1 Alpha sin ArrowPos mul add ArrowInside pop pop } loop }{ +/ArrowPos 0. def /dArrowPos 1. 1 gt {1.0 1. 1.0 add div }{0.5 } ifelse +def 1. cvi { /ArrowPos ArrowPos dArrowPos add def x2 x1 sub ArrowPos +mul x1 add y2 y1 sub ArrowPos mul y1 add ArrowInside pop pop } repeat +} ifelse pop pop Lineto } repeat }{ ArrowA /n n 2 sub def n { Lineto +} repeat } ifelse CP 4 2 roll ArrowB L pop pop } if gsave 0.8 SLW +0 1 0 setrgbcolor 0 setlinecap stroke grestore end + +@endspecial @beginspecial +@setspecial + tx@Dict begin STP newpath /ArrowA { moveto } def /ArrowB { } def /ArrowInside +{ } def 0.8 SLW 0 1 0 setrgbcolor /ArrowA { moveto } def /ArrowB +{ } def /ArrowInside { } def [ 88.20367 88.20367 82.51277 82.51277 + /Lineto /lineto load def false NArray n 0 eq not { n 1 eq { 0 0 /n +2 def } if () length 0 gt { 2 copy /y1 ED /x1 ED ArrowA x1 y1 /n n +1 sub def n { 4 copy /y1 ED /x1 ED /y2 ED /x2 ED x1 y1 0.5 1 gt { +/Alpha y2 y1 sub x2 x1 sub atan def /ArrowPos 0. def /Length x2 x1 +sub y2 y1 sub Pyth def /dArrowPos 0.5 abs def { /ArrowPos ArrowPos +dArrowPos add def ArrowPos Length gt { exit } if x1 Alpha cos ArrowPos +mul add y1 Alpha sin ArrowPos mul add ArrowInside pop pop } loop }{ +/ArrowPos 0. def /dArrowPos 1. 1 gt {1.0 1. 1.0 add div }{0.5 } ifelse +def 1. cvi { /ArrowPos ArrowPos dArrowPos add def x2 x1 sub ArrowPos +mul x1 add y2 y1 sub ArrowPos mul y1 add ArrowInside pop pop } repeat +} ifelse pop pop Lineto } repeat }{ ArrowA /n n 2 sub def n { Lineto +} repeat } ifelse CP 4 2 roll ArrowB L pop pop } if gsave 0.8 SLW +0 1 0 setrgbcolor 0 setlinecap stroke grestore end + +@endspecial 3150 -3150 a + tx@Dict begin { 93.89413 65.44139 } PutCoor PutBegin end + 3150 -3150 a 385 +x Fc(Punkt)3150 -3150 y + tx@Dict begin PutEnd end + 3150 -3150 a 3150 -3150 a + tx@Dict begin { 91.04869 54.06003 } PutCoor PutBegin end + 3150 +-3150 a 277 x Fc(\()p Fb(a)4165 -2707 y Fa(1)4662 -2873 +y Fb(;)184 b(a)5738 -2707 y Fa(2)6236 -2873 y Fc(\))3150 +-3150 y + tx@Dict begin PutEnd end + 3150 -3150 a eop end +%%Trailer + +userdict /end-hook known{end-hook}if +%%EOF diff --git a/VektorenInEbeneVeranschaulichung01.pst b/VektorenInEbeneVeranschaulichung01.pst new file mode 100644 index 0000000..4ddfb41 --- /dev/null +++ b/VektorenInEbeneVeranschaulichung01.pst @@ -0,0 +1,33 @@ + \begin{pspicture}(-1,-1)(4.9,4.9) + %\psgrid[griddots=10,gridlabels=0pt, subgriddiv=0] + + %%%%%%%%%%%%%%%%%%%%%%%%Koor%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \psaxes[Ox=0,Dx=2,Oy=0,Dy=2,linewidth=0.1pt]{->}(0,0)(0,0)(4.5,4.5)%Schnittpunkt, x0, y0 x1,y1 + \rput[l](1.7,-0.8){$1.\ Koordinate$} + \rput[c](4.8,0){$x$} + + \rput[l](0.4,4){$2.\ Koordinate$} + \rput[c](0,4.8){$y$} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Vektor / Gerade%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \psline[linecolor=red, linewidth=0.1pt](0,0)(3,3) + \rput[c](3.0,-0.3){$a_1$} + \rput[c](-0.3,3){$a_2$} + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%Hlfslinien%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \psline[linecolor=blue, linestyle=dashed, linewidth=0.1pt](3,-0.2)(3,3) + \psline[linecolor=blue, linestyle=dashed, linewidth=0.1pt](-0.2,3)(3,3) + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Pfeil%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \psline{->}(3.5,2.5)(3.1,2.9) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Kreuz %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \psline[linecolor=green] (2.9,3.1)(3.1,2.9) + \psline[linecolor=green] (2.9,2.9)(3.1,3.1) + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Beschriftung am Pfeil %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \rput[l](3.3,2.3){Punkt} + \rput[l](3.2,1.9){$(a_1, a_2)$} + \end{pspicture} \ No newline at end of file diff --git a/VektorenInEbeneVeranschaulichung02.eps b/VektorenInEbeneVeranschaulichung02.eps new file mode 100644 index 0000000..0ba5c16 --- /dev/null +++ b/VektorenInEbeneVeranschaulichung02.eps @@ -0,0 +1,1513 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: dvips(k) 5.94a Copyright 2003 Radical Eye Software +%%Title: 2dgrafiken.dvi +%%CreationDate: Wed Aug 18 10:21:27 2004 +%%BoundingBox: 71 552 250 721 +%%DocumentFonts: CMR10 CMMI10 CMR7 CMSY7 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: E:\texmf\miktex\bin\dvips.exe -E 2dgrafiken.dvi +%DVIPSParameters: dpi=600 +%DVIPSSource: TeX output 2004.08.18:1021 +%%BeginProcSet: tex.pro 0 0 +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S +/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy +setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask +restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: pstricks.pro 0 0 +%! +% PostScript prologue for pstricks.tex. +% Version 97 patch 4, 04/05/10 +% For distribution, see pstricks.tex. +% +/tx@Dict 200 dict def tx@Dict begin +/ADict 25 dict def +/CM { matrix currentmatrix } bind def +/SLW /setlinewidth load def +/CLW /currentlinewidth load def +/CP /currentpoint load def +/ED { exch def } bind def +/L /lineto load def +/T /translate load def +/TMatrix { } def +/RAngle { 0 } def +/Atan { /atan load stopped { pop pop 0 } if } def +/Div { dup 0 eq { pop } { div } ifelse } def +/NET { neg exch neg exch T } def +/Pyth { dup mul exch dup mul add sqrt } def +/PtoC { 2 copy cos mul 3 1 roll sin mul } def +/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } +def +/PathLength { flattenpath /z 0 def { /y1 ED /x1 ED /y2 y1 def /x2 x1 def +} { /y ED /x ED PathLength@ } {} { /y y2 def /x x2 def PathLength@ } +/pathforall load stopped { pop pop pop pop } if z } def +/STP { .996264 dup scale } def +/STV { SDict begin normalscale end STP } def +% +%%-------------- DG begin patch 15 ---------------%% +%/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def +%PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y +%mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul +%/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ] +%0 } ifelse setdash stroke } def +/DashLine { + dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def PathLength } ifelse + /b ED /x1 ED /y1 ED /x ED /y ED + /z y x add y1 add x1 add def + /Coef b a .5 sub 2 mul y mul sub z Div round + z mul a .5 sub 2 mul y mul add b exch Div def + /y y Coef mul def /x x Coef mul def /y1 y1 Coef mul def /x1 x1 Coef mul def + x1 0 gt y1 0 gt x 0 gt y 0 gt and { [ y x y1 x1 ] 1 a sub y mul} + { [ 1 0] 0 } ifelse setdash stroke +} def +%%-------------- DG end patch 15 ---------------%% +/DotLine { /b PathLength def /a ED /z ED /y CLW def /z y z add def a 0 gt +{ /b b a div def } { a 0 eq { /b b y sub def } { a -3 eq { /b b y add +def } if } ifelse } ifelse [ 0 b b z Div round Div dup 0 le { pop 1 } if +] a 0 gt { 0 } { y 2 div a -2 gt { neg } if } ifelse setdash 1 +setlinecap stroke } def +/LineFill { gsave abs CLW add /a ED a 0 dtransform round exch round exch +2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25 +% DG/SR modification begin - Dec. 12, 1997 - Patch 2 +%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a +itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a +% DG/SR modification end +Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict +/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1 +% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) +% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore } +% def +a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore +pop pop } def +% DG/SR modification end +/BeginArrow { ADict begin /@mtrx CM def gsave 2 copy T 2 index sub neg +exch 3 index sub exch Atan rotate newpath } def +/EndArrow { @mtrx setmatrix CP grestore end } def +/Arrow { CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1 +scale } if w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill +grestore } def +/Tbar { CLW mul add /z ED z -2 div CLW 2 div moveto z 0 rlineto stroke 0 +CLW moveto } def +/Bracket { CLW mul add dup CLW sub 2 div /x ED mul CLW add /y ED /z CLW 2 +div def x neg y moveto x neg CLW 2 div L x CLW 2 div L x y L stroke 0 +CLW moveto } def +/RoundBracket { CLW mul add dup 2 div /x ED mul /y ED /mtrx CM def 0 CLW +2 div T x y mul 0 ne { x y scale } if 1 1 moveto .85 .5 .35 0 0 0 +curveto -.35 0 -.85 .5 -1 1 curveto mtrx setmatrix stroke 0 CLW moveto } +def +/SD { 0 360 arc fill } def +/EndDot { { /z DS def } { /z 0 def } ifelse /b ED 0 z DS SD b { 0 z DS +CLW sub SD } if 0 DS z add CLW 4 div sub moveto } def +/Shadow { [ { /moveto load } { /lineto load } { /curveto load } { +/closepath load } /pathforall load stopped { pop pop pop pop CP /moveto +load } if ] cvx newpath 3 1 roll T exec } def +/NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch +cvi def } def +/NArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop } if +f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def +/Line { NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub +def n { Lineto } repeat CP 4 2 roll ArrowB L pop pop } if } def +/Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 } +ifelse { pop } repeat a } def +/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq +and { pop pop /n n 1 sub def } if } def +/Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop } +repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1 +ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1 +moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto +Lineto pop pop closepath } ifelse } def +/Diamond { /mtrx CM def T rotate /h ED /w ED dup 0 eq { pop } { CLW mul +neg /d ED /a w h Atan def /h d a sin Div h add def /w d a cos Div w add +def } ifelse mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 +div /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +setmatrix } def +% DG modification begin - Jan. 15, 1997 +%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq { +%pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 +%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0 +%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +%setmatrix } def +/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup +CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 +div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0 +d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) +% setmatrix } def +setmatrix pop } def +% DG/SR modification end +/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth +def } def +/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth +def } def +/CC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1 +def CCA /dx dx0 l1 c exp mul dx1 l0 c exp mul add def /dy dy0 l1 c exp +mul dy1 l0 c exp mul add def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos +abs b exp a mul dx dy Pyth Div 2 div def /x2 x l0 dx mul m mul sub def +/y2 y l0 dy mul m mul sub def /dx l1 dx mul m mul neg def /dy l1 dy mul +m mul neg def } def +/IC { /c c 1 add def c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } +ifelse /a a 2 mul 3 div 45 cos b exp div def CCA /dx 0 def /dy 0 def } +def +/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def +/NC { CC x1 y1 x2 y2 x y curveto } def +/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def +/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def +/NAC { x2 y2 x y curveto CC x1 y1 } def +/EAC { x2 y2 x y ArrowB curveto pop pop } def +/OpenCurve { NArray n 3 lt { n { pop pop } repeat } { BOC /n n 3 sub def + n { NC } repeat EOC } ifelse } def +/AltCurve { { false NArray n 2 mul 2 roll [ n 2 mul 3 sub 1 roll ] aload +/Points ED n 2 mul -2 roll } { false NArray } ifelse n 4 lt { n { pop +pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse } def +/ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt { +CheckClosed } if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC } +repeat closepath pop pop } ifelse } def +/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def +/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def +/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } +def +/FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix +rotate matrix concatmatrix exch findfont exch makefont setfont } def +/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto +x1 y1 lineto closepath } def +/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1 +y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div +exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse +/b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto +x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath } +ifelse } def +/Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add +/y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq { +pop pop Rect } { OvalFrame } ifelse } def +/BezierNArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop +} if n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat f { ] +aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def +/OpenBezier { BezierNArray n 1 eq { pop pop } { ArrowA n 4 sub 3 idiv { 6 +2 roll 4 2 roll curveto } repeat 6 2 roll 4 2 roll ArrowB curveto } +ifelse } def +/ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv { +6 2 roll 4 2 roll curveto } repeat closepath } ifelse } def +/BezierShowPoints { gsave Points aload length 2 div cvi /n ED moveto n 1 +sub { lineto } repeat CLW 2 div SLW [ 4 4 ] 0 setdash stroke grestore } +def +/Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1 +sub 3 div def /dy y0 y1 sub 3 div def x0 dx sub y0 dy add x1 y1 ArrowA +x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB curveto /Points [ x1 y1 x0 +y0 x0 2 mul x1 sub y1 ] def } def +/Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 } +if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if +/dx ED dy div round dy mul /y0 ED dx div round dx mul /x0 ED dy div +round cvi /y2 ED dx div round cvi /x2 ED dy div round cvi /y1 ED dx div +round cvi /x1 ED /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1 sub +0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div CLW 2 div add def +/Helvetica findfont b scalefont setfont /b b .95 mul CLW 2 div add def } +if systemdict /setstrokeadjust known { true setstrokeadjust /t { } def } +{ /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add +exch itransform } bind def } ifelse gsave n 0 gt { 1 setlinecap [ 0 dy n +div ] dy n div 2 div setdash } { 2 setlinecap } ifelse /i x1 def /f y1 +dy mul n 0 gt { dy n div 2 div h mul sub } if def /g y2 dy mul n 0 gt { +dy n div 2 div h mul add } if def x2 x1 sub w mul 1 add dup 1000 gt { +pop 1000 } if { i dx mul dup y0 moveto b 0 gt { gsave c i a cvs dup +stringwidth pop /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg} +{z1} ifelse rmoveto show grestore } if dup t f moveto g t L stroke /i i +w add def } repeat grestore gsave n 0 gt +% DG/SR modification begin - Nov. 7, 1997 - Patch 1 +%{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash } +{ 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash } +% DG/SR modification end +{ 2 setlinecap } ifelse /i y1 def /f x1 dx mul +n 0 gt { dx n div 2 div w mul sub } if def /g x2 dx mul n 0 gt { dx n +div 2 div w mul add } if def y2 y1 sub h mul 1 add dup 1000 gt { pop +1000 } if { newpath i dy mul dup x0 exch moveto b 0 gt { gsave c i a cvs +dup stringwidth pop /z2 ED w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt +{z1} {b neg} ifelse rmoveto show grestore } if dup f exch t moveto g +exch t L stroke /i i h add def } repeat grestore } def +/ArcArrow { /d ED /b ED /a ED gsave newpath 0 -1000 moveto clip newpath 0 +1 0 0 b grestore c mul /e ED pop pop pop r a e d PtoC y add exch x add +exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c +mul neg d } def +/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def +/Rot { CP CP translate 3 -1 roll neg rotate NET } def +/RotBegin { tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } +def } if /TMatrix [ TMatrix CM ] cvx def /a ED a Rot /RAngle [ RAngle +dup a add ] cvx def } def +/RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ] +cvx def } def +/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def +/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def +/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def +/Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s +abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b +div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } { +h1 abs h sub dup s mul abs } ifelse } def +/UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s +mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q +{ x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add +exch } def +/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible +/IfVisible true def } if } { IfVisible { Invisible /IfVisible false def +} if } ifelse } def +/InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def +/Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit +neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def +/IfVisible true def } def +end +% END pstricks.pro + +%%EndProcSet +%%BeginProcSet: pst-dots.pro 0 0 +%!PS-Adobe-2.0 +%%Title: Dot Font for PSTricks +%%Creator: Timothy Van Zandt +%%Creation Date: May 7, 1993 +%% Version 97 patch 1, 99/12/16 +%% Modified by Etienne Riga - Dec. 16, 1999 +%% to add /Diamond, /SolidDiamond and /BoldDiamond +10 dict dup begin + /FontType 3 def + /FontMatrix [ .001 0 0 .001 0 0 ] def + /FontBBox [ 0 0 0 0 ] def + /Encoding 256 array def + 0 1 255 { Encoding exch /.notdef put } for + Encoding + dup (b) 0 get /Bullet put + dup (c) 0 get /Circle put + dup (C) 0 get /BoldCircle put + dup (u) 0 get /SolidTriangle put + dup (t) 0 get /Triangle put + dup (T) 0 get /BoldTriangle put + dup (r) 0 get /SolidSquare put + dup (s) 0 get /Square put + dup (S) 0 get /BoldSquare put + dup (q) 0 get /SolidPentagon put + dup (p) 0 get /Pentagon put + dup (P) 0 get /BoldPentagon put +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + dup (l) 0 get /SolidDiamond put + dup (d) 0 get /Diamond put + (D) 0 get /BoldDiamond put +% DG/SR modification end + /Metrics 13 dict def + Metrics begin + /Bullet 1000 def + /Circle 1000 def + /BoldCircle 1000 def + /SolidTriangle 1344 def + /Triangle 1344 def + /BoldTriangle 1344 def + /SolidSquare 886 def + /Square 886 def + /BoldSquare 886 def + /SolidPentagon 1093.2 def + /Pentagon 1093.2 def + /BoldPentagon 1093.2 def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /SolidDiamond 1008 def + /Diamond 1008 def + /BoldDiamond 1008 def +% DG/SR modification end + /.notdef 0 def + end + /BBoxes 13 dict def + BBoxes begin + /Circle { -550 -550 550 550 } def + /BoldCircle /Circle load def + /Bullet /Circle load def + /Triangle { -571.5 -330 571.5 660 } def + /BoldTriangle /Triangle load def + /SolidTriangle /Triangle load def + /Square { -450 -450 450 450 } def + /BoldSquare /Square load def + /SolidSquare /Square load def + /Pentagon { -546.6 -465 546.6 574.7 } def + /BoldPentagon /Pentagon load def + /SolidPentagon /Pentagon load def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /Diamond { -428.5 -742.5 428.5 742.5 } def + /BoldDiamond /Diamond load def + /SolidDiamond /Diamond load def +% DG/SR modification end + /.notdef { 0 0 0 0 } def + end + /CharProcs 20 dict def + CharProcs begin + /Adjust { + 2 copy dtransform floor .5 add exch floor .5 add exch idtransform + 3 -1 roll div 3 1 roll exch div exch scale + } def + /CirclePath { 0 0 500 0 360 arc closepath } def + /Bullet { 500 500 Adjust CirclePath fill } def + /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath + eofill } def + /BoldCircle { 500 500 Adjust CirclePath .8 .8 scale CirclePath + eofill } def + /BoldCircle { CirclePath .8 .8 scale CirclePath eofill } def + /TrianglePath { 0 660 moveto -571.5 -330 lineto 571.5 -330 lineto + closepath } def + /SolidTriangle { TrianglePath fill } def + /Triangle { TrianglePath .85 .85 scale TrianglePath eofill } def + /BoldTriangle { TrianglePath .7 .7 scale TrianglePath eofill } def + /SquarePath { -450 450 moveto 450 450 lineto 450 -450 lineto + -450 -450 lineto closepath } def + /SolidSquare { SquarePath fill } def + /Square { SquarePath .89 .89 scale SquarePath eofill } def + /BoldSquare { SquarePath .78 .78 scale SquarePath eofill } def + /PentagonPath { + -337.8 -465 moveto + 337.8 -465 lineto + 546.6 177.6 lineto + 0 574.7 lineto + -546.6 177.6 lineto + closepath + } def + /SolidPentagon { PentagonPath fill } def + /Pentagon { PentagonPath .89 .89 scale PentagonPath eofill } def + /BoldPentagon { PentagonPath .78 .78 scale PentagonPath eofill } def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /DiamondPath { 0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto + 428.5 0 lineto closepath } def + /SolidDiamond { DiamondPath fill } def + /Diamond { DiamondPath .85 .85 scale DiamondPath eofill } def + /BoldDiamond { DiamondPath .7 .7 scale DiamondPath eofill } def +% DG/SR modification end + /.notdef { } def + end + /BuildGlyph { + exch + begin + Metrics 1 index get exec 0 + BBoxes 3 index get exec + setcachedevice + CharProcs begin load exec end + end + } def + /BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec + } bind def +end +/PSTricksDotFont exch definefont pop +%END pst-dots.pro + +%%EndProcSet +%%BeginProcSet: pst-grad.pro 0 0 +%! +% PostScript prologue for pst-grad.tex. +% Version 1.04, 2004/06/23 (adding %GradientCircle style - D.G.) +% prepared by Herbert Voss +% For copying restrictions, see pstricks.tex. +% +% For the PSTricks gradient fillstyle.% +% Based on some EPS files by leeweyr!bill@nuchat.sccsi.com (W. R. Lee).% +% Syntax:% D.G. modification begin - Apr. 9, %1998 +%%%%%% R0 G0 B0 R1 G1 B1 NumLines MidPoint Angle GradientFill +% ifGradientCircle GradientScale %GradientPosX GradientPosY +% R0 G0 B0 R1 G1 B1 NumLines MidPoint %Angle GradientFill +% D.G. modification end +% +/tx@GradientDict 40 dict def +tx@GradientDict begin +/GradientFill { + rotate + /MidPoint ED + /NumLines ED + /LastBlue ED + /LastGreen ED + /LastRed ED + /FirstBlue ED + /FirstGreen ED +/FirstRed ED +% D.G. modification begin - Apr. 9, 1998 +/GradientPosY ED +/GradientPosX ED + /GradientScale ED + /ifGradientCircle ED +% D.G. modification end + % This avoids gaps due to rounding errors: + clip + pathbbox %leave llx,lly,urx,ury on stack +% D.G. modification begin - Apr. 10, 1998 + 4 copy /ury ED /urx ED /lly ED /llx ED +% D.G. modification end + /y ED /x ED +% D.G. modification begin - Apr. 10, 1998 +ifGradientCircle + {0 GradientPosX eq + {0 GradientPosX eq {2 copy translate} if} if} + {2 copy translate} ifelse +% D.G. modification end + y sub neg /y ED + x sub neg /x ED % This avoids gaps due to rounding errors: + LastRed FirstRed add 2 div + LastGreen FirstGreen add 2 div + LastBlue FirstBlue add 2 div + setrgbcolor +% D.G. modification begin - Jul. 23, 1997 / Apr. 9, 1998 + ifGradientCircle + {/YSizePerLine y NumLines div def + /CurrentY y 2 div def + /MidLine NumLines 2 div 1 MidPoint sub mul abs cvi def} + {fill + /YSizePerLine y NumLines div def + /CurrentY 0 def + /MidLine NumLines 1 MidPoint sub mul abs cvi def} ifelse +% DG modification end + MidLine NumLines 2 sub gt + { /MidLine NumLines def } + { MidLine 2 lt { /MidLine 0 def } if } + ifelse + MidLine 0 gt + { + /Red FirstRed def + /Green FirstGreen def + /Blue FirstBlue def + /RedIncrement LastRed FirstRed sub MidLine 1 sub div def + /GreenIncrement LastGreen FirstGreen sub MidLine 1 sub div def + /BlueIncrement LastBlue FirstBlue sub MidLine 1 sub div def + MidLine { GradientLoop } repeat + } if + MidLine NumLines lt + { + /Red LastRed def + /Green LastGreen def + /Blue LastBlue def + /RedIncrement FirstRed LastRed sub NumLines MidLine sub 1 sub div def + /GreenIncrement FirstGreen LastGreen sub NumLines MidLine sub 1 sub div def + /BlueIncrement FirstBlue LastBlue sub NumLines MidLine sub 1 sub div def + NumLines MidLine sub { GradientLoop } repeat } + if + } def/GradientLoop { +% D.G. modification begin - Jul. 23, 1997 / Apr. 9, 1998 + ifGradientCircle + {CurrentY 0 gt { +% The default center used is the center of the bounding box of the object + 0 GradientPosX eq {0 GradientPosX eq + {/GradientPosX urx llx sub 2 div def + /GradientPosY ury lly sub 2 div def} if} if + GradientPosX GradientPosY CurrentY GradientScale mul 0 360 arc + Red Green Blue setrgbcolor fill + /CurrentY CurrentY YSizePerLine sub def + /Blue Blue BlueIncrement add def + /Green Green GreenIncrement add def + /Red Red RedIncrement add def} if} {0 CurrentY moveto x 0 rlineto + 0 YSizePerLine rlineto x neg 0 rlineto closepath + Red Green Blue setrgbcolor fill /CurrentY CurrentY YSizePerLine add def + /Blue Blue BlueIncrement add def /Green Green GreenIncrement add def + /Red Red RedIncrement add def} ifelse% D.G. modification end + }def + end +% END pst-grad.pro + +%%EndProcSet +%%BeginProcSet: pst-coil.pro 0 0 +%! +% PostScript prologue for pst-coil.tex. +% Version 97 patch 1, 98/06/02 +% For distribution, see pstricks.tex. +% +/tx@CoilDict 40 dict def tx@CoilDict begin +/CoilLoop { /t ED t sin AspectSin mul t 180 div AspectCos mul add t cos +lineto } def +/Coil { /Inc ED dup sin /AspectSin ED cos /AspectCos ED /ArmB ED /ArmA ED +/h ED /w ED /y1 ED /x1 ED /y0 ED /x0 ED x0 y0 translate y1 y0 sub x1 x0 +sub 2 copy Pyth /TotalLength ED Atan rotate /BeginAngle ArmA AspectCos +Div w h mul Div 360 mul def /EndAngle TotalLength ArmB sub AspectCos Div +w h mul Div 360 mul def 1 0 0 0 ArrowA ArmA 0 lineto /mtrx CM def w h +mul 2 Div w 2 Div scale BeginAngle Inc EndAngle { CoilLoop } for +EndAngle CoilLoop mtrx setmatrix TotalLength ArmB sub 0 lineto CP +% DG/SR modification begin - Jun. 2, 1998 - Patch 1 (from Michael Vulis) +% TotalLength 0 ArrowB lineto } def +TotalLength 0 ArrowB lineto +pop pop pop pop } def +% DG/SR modification end +/AltCoil { /Inc ED dup sin /AspectSin ED cos /AspectCos ED /h ED /w ED +/EndAngle ED /BeginAngle ED /mtrx CM def w h mul 2 Div w 2 Div scale +BeginAngle sin AspectSin mul BeginAngle 180 div AspectCos mul add +BeginAngle cos /lineto load stopped { moveto } if BeginAngle Inc +EndAngle { CoilLoop } for EndAngle CoilLoop mtrx setmatrix } def +/ZigZag { /ArmB ED /ArmA ED 2 div /w ED w mul /h ED /y1 ED /x1 ED /y0 ED +/x0 ED x1 y1 translate y0 y1 sub x0 x1 sub 2 copy Pyth /TotalLength ED +Atan rotate TotalLength ArmA sub ArmB sub dup h div cvi /n ED n h mul +sub 2 div dup ArmA add /ArmA ED ArmB add /ArmB ED /x ArmB h 2 div add +def mark 0 0 ArmB 0 n { x w /w w neg def /x x h add def } repeat +TotalLength ArmA sub 0 TotalLength 0 } def +end +% END pst-coil.pro + +%%EndProcSet +%%BeginProcSet: pst-text.pro 0 0 +%! +% PostScript header file pst-text.pro +% Version 97, 94/04/20 +% For distribution, see pstricks.tex. + +/tx@TextPathDict 40 dict def +tx@TextPathDict begin + +% Syntax: PathPosition - +% Function: Searches for position of currentpath distance from +% beginning. Sets (X,Y)=position, and Angle=tangent. +/PathPosition +{ /targetdist exch def + /pathdist 0 def + /continue true def + /X { newx } def /Y { newy } def /Angle 0 def + gsave + flattenpath + { movetoproc } { linetoproc } { } { firstx firsty linetoproc } + /pathforall load stopped { pop pop pop pop /X 0 def /Y 0 def } if + grestore +} def + +/movetoproc { continue { @movetoproc } { pop pop } ifelse } def + +/@movetoproc +{ /newy exch def /newx exch def + /firstx newx def /firsty newy def +} def + +/linetoproc { continue { @linetoproc } { pop pop } ifelse } def + +/@linetoproc +{ + /oldx newx def /oldy newy def + /newy exch def /newx exch def + /dx newx oldx sub def + /dy newy oldy sub def + /dist dx dup mul dy dup mul add sqrt def + /pathdist pathdist dist add def + pathdist targetdist ge + { pathdist targetdist sub dist div dup + dy mul neg newy add /Y exch def + dx mul neg newx add /X exch def + /Angle dy dx atan def + /continue false def + } if +} def + +/TextPathShow +{ /String exch def + /CharCount 0 def + String length + { String CharCount 1 getinterval ShowChar + /CharCount CharCount 1 add def + } repeat +} def + +% Syntax: InitTextPath - +/InitTextPath +{ gsave + currentpoint /Y exch def /X exch def + exch X Hoffset sub sub mul + Voffset Hoffset sub add + neg X add /Hoffset exch def + /Voffset Y def + grestore +} def + +/Transform +{ PathPosition + dup + Angle cos mul Y add exch + Angle sin mul neg X add exch + translate + Angle rotate +} def + +/ShowChar +{ /Char exch def + gsave + Char end stringwidth + tx@TextPathDict begin + 2 div /Sy exch def 2 div /Sx exch def + currentpoint + Voffset sub Sy add exch + Hoffset sub Sx add + Transform + Sx neg Sy neg moveto + Char end tx@TextPathSavedShow + tx@TextPathDict begin + grestore + Sx 2 mul Sy 2 mul rmoveto +} def + +end +% END pst-text.pro + +%%EndProcSet +%%BeginProcSet: pst-node.pro 0 0 +%! +% PostScript prologue for pst-node.tex. +% Version 97 patch 1, 97/05/09. +% For distribution, see pstricks.tex. +% +/tx@NodeDict 400 dict def tx@NodeDict begin +tx@Dict begin /T /translate load def end +/NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def } +if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next end +grestore } def +/InitPnode { /Y ED /X ED /NodePos { NodeSep Cos mul NodeSep Sin mul } def +} def +/InitCnode { /r ED /Y ED /X ED /NodePos { NodeSep r add dup Cos mul exch +Sin mul } def } def +/GetRnodePos { Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def +} ifelse Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def } +ifelse dx Sin mul abs dy Cos mul abs gt { dy Cos mul Sin div dy } { dx +dup Sin mul Cos Div } ifelse } def +/InitRnode { /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub +/u ED /NodePos { GetRnodePos } def } def +/DiaNodePos { w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup +Cos mul exch Sin mul } def +/TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w h +mul w Sin mul h Cos abs mul add Div NodeSep add dup Cos mul exch Sin mul +} ifelse } def +/InitTriNode { sub 2 div exch 2 div exch 2 copy T 2 copy 4 index index /d +ED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def d +sub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atan +sin def /NodePos { TriNodePos } def } def +/OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Cos +hh mul Atan dup cos ww mul exch sin hh mul } def +/GetCenter { begin X Y NodeMtrx transform CM itransform end } def +/XYPos { dup sin exch cos Do /Cos ED /Sin ED /Dist ED Cos 0 gt { Dist +Dist Sin mul Cos div } { Cos 0 lt { Dist neg Dist Sin mul Cos div neg } +{ 0 Dist Sin mul } ifelse } ifelse Do } def +/GetEdge { dup 0 eq { pop begin 1 0 NodeMtrx dtransform CM idtransform +exch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrx +dtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED pop +XYPos } ifelse } def +/AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1 +roll sin mul sub exch } ifelse } def +/GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleA +AddOffset yA add /yA1 ED xA add /xA1 ED } def +/GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleB +AddOffset yB add /yB1 ED xB add /xB1 ED } def +/GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmA +AngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do ED +ArmA AngleA XYPos OffsetA AngleA AddOffset yA add /yA2 ED xA add /xA2 ED +} ifelse } def +/GetArmB { ArmTypeB 0 eq { /xB2 ArmB AngleB cos mul xB1 add def /yB2 ArmB +AngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do ED +ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED +} ifelse } def +/InitNC { /b ED /a ED /NodeSepTypeB ED /NodeSepTypeA ED /NodeSepB ED +/NodeSepA ED /OffsetB ED /OffsetA ED tx@NodeDict a known tx@NodeDict b +known and dup { /NodeA a load def /NodeB b load def NodeA GetCenter /yA +ED /xA ED NodeB GetCenter /yB ED /xB ED } if } def +/LPutLine { 4 copy 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED 1 t sub +mul 3 1 roll 1 t sub mul 4 1 roll t mul add /Y ED t mul add /X ED } def +/LPutLines { mark LPutVar counttomark 2 div 1 sub /n ED t floor dup n gt +{ pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse cvi 2 mul { pop +} repeat LPutLine cleartomark } def +/BezierMidpoint { /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED +/t ED /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3 +mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx +sub def /ay y3 y0 sub cy sub by sub def ax t 3 exp mul bx t t mul mul +add cx t mul add x0 add ay t 3 exp mul by t t mul mul add cy t mul add +y0 add 3 ay t t mul mul mul 2 by t mul mul add cy add 3 ax t t mul mul +mul 2 bx t mul mul add cx add atan /NAngle ED /Y ED /X ED } def +/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def +} def +/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def +/NAngle yyB yyA sub xxB xxA sub Atan def } def +/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def +/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def +} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit +} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd +} def +/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def +} def +/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def +/NAngle yyB yyA sub xxB xxA sub Atan def } def +/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def +/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def +} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check { +exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark +VPosEnd } def +/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2 +roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx +def grestore exec /LPutVar /SaveLPutVar load def } def +/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def +GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos { +LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos { +LPutVar VPutLine } def LPutVar } def +/NCLine { NCCoor tx@Dict begin ArrowA CP 4 2 roll ArrowB lineto pop pop +end } def +/NCLines { false NArray n 0 eq { NCLine } { 2 copy yA sub exch xA sub +Atan /AngleA ED n 2 mul dup index exch index yB sub exch xB sub Atan +/AngleB ED GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1 +yA1 ] cvx def mark LPutVar tx@Dict begin false Line end /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +ifelse } def +/NCCurve { GetEdgeA GetEdgeB xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1 +roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA +GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict +begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ] +cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines +} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def +/NCAngles { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate +def xA2 yA2 mtrx transform pop xB2 yB2 mtrx transform exch pop mtrx +itransform /y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA2 +yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end /LPutVar [ xB1 +yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { LPutLines } def +/HPutPos { HPutLines } def /VPutPos { VPutLines } def } def +/NCAngle { GetEdgeA GetEdgeB GetArmB /mtrx AngleA matrix rotate def xB2 +yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform +/y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA1 yA1 +tx@Dict begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ] +cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +/NCBar { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate def +xA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrx +transform 3 -1 roll 0 gt { /yB2 exch yB2 add def /xB2 exch xB2 add def } +{ /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse mark ArmB +0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict +begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx +def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +/NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } if +xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end +/LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +def +/NCDiagg { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED +GetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin +false Line end /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +def +/NCLoop { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate +def xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2 +mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3 +mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 +xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false +Line end /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ] +cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +% DG/SR modification begin - May 9, 1997 - Patch 1 +%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r +%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add +%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 +%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED +/NCCircle { NodeSepA 0 NodeA 0 GetEdge pop 2 div dup 2 exp r +r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add +exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 +mul add dup 5 1 roll 90 sub PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED +% DG/SR modification end +} def /HPutPos { LPutPos } def /VPutPos { LPutPos } def r AngleA 90 sub a add +AngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 r +Div def /y ED /x ED } def +/NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB +180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cos +mul neg def /hx h AngleB sin mul neg def /hy h AngleB cos mul def +/LPutVar [ xA1 hx add yA1 hy add xB1 hx add yB1 hy add xB1 dx add yB1 dy +add xA1 dx add yA1 dy add ] cvx def /LPutPos { LPutLines } def /HPutPos +{ xB yB xA yA LPutLine } def /VPutPos { HPutPos } def mark LPutVar +tx@Dict begin false Polygon end } def +/NCArcBox { /l ED neg /d ED /h ED /a ED /AngleA yB yA sub xB xA sub Atan +def /AngleB AngleA 180 add def /tA AngleA a sub 90 add def /tB tA a 2 +mul add def /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def +/x0 xA r tA cos mul add def /y0 yA r tA sin mul add def /c 57.2958 r div +def /AngleA AngleA a sub 180 add def /AngleB AngleB a add 180 add def +GetEdgeA GetEdgeB /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul +sub def /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def l 0 +eq { x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn } +{ x0 y0 translate /tA AngleA l c mul add def /tB AngleB l c mul sub def +0 0 r h add tA tB arc r h add AngleB PtoC r d add AngleB PtoC 2 copy 6 2 +roll l arcto 4 { pop } repeat r d add tB PtoC l arcto 4 { pop } repeat 0 +0 r d add tB tA arcn r d add AngleA PtoC r h add AngleA PtoC 2 copy 6 2 +roll l arcto 4 { pop } repeat r h add tA PtoC l arcto 4 { pop } repeat } +ifelse closepath /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def /LPutPos +{ LPutVar /d ED /h ED /AngleB ED /AngleA ED /r ED /y0 ED /x0 ED t 1 le { +r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC } +{ t 2 lt { /NAngle AngleB 180 add def r 2 t sub h mul t 1 sub d mul add +add AngleB PtoC } { t 3 lt { r d add AngleB 3 t sub mul AngleA 2 t sub +mul add dup 90 sub /NAngle ED PtoC } { /NAngle AngleA 180 add def r 4 t +sub d mul t 3 sub h mul add add AngleA PtoC } ifelse } ifelse } ifelse +y0 add /Y ED x0 add /X ED } def /HPutPos { LPutPos } def /VPutPos { +LPutPos } def } def +/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB +sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1 +ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB +w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos +{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop } +{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine } +def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin +/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def +/LPutCoor { NAngle tx@Dict begin /NAngle ED end gsave CM STV CP Y sub neg +exch X sub neg exch moveto setmatrix CP grestore } def +/LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0 +def } ifelse LPutCoor } def +/HPutAdjust { Sin Cos mul 0 eq { 0 } { d Cos mul Sin div flag not { neg } +if h Cos mul Sin div flag { neg } if 2 copy gt { pop } { exch pop } +ifelse } ifelse s add flag { r add neg } { l add } ifelse X add /X ED } +def +/VPutAdjust { Sin Cos mul 0 eq { 0 } { l Sin mul Cos div flag { neg } if +r Sin mul Cos div flag not { neg } if 2 copy gt { pop } { exch pop } +ifelse } ifelse s add flag { d add } { h add neg } ifelse Y add /Y ED } +def +end +% END pst-node.pro + +%%EndProcSet +%%BeginProcSet: texps.pro 0 0 +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics +exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub +dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} +ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict +end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ +dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 +roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def +dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} +if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} +def end + +%%EndProcSet +%%BeginProcSet: special.pro 0 0 +%! +TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N +/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N +/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N +/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ +/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho +X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B +/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ +/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known +{userdict/md get type/dicttype eq{userdict begin md length 10 add md +maxlength ge{/md md dup length 20 add dict copy def}if end md begin +/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S +atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ +itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll +transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll +curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf +pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} +if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 +-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 +get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip +yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub +neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ +noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop +90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get +neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr +1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr +2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 +-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S +TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ +Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale +}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState +save N userdict maxlength dict begin/magscale true def normalscale +currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts +/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x +psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx +psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub +TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict +begin/SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ +CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N +/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} +repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N +/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX +currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY +moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X +/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 +1 startangle endangle arc savematrix setmatrix}N end + +%%EndProcSet +%%BeginProcSet: color.pro 0 0 +%! +TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop +setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll +}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def +/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ +setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ +/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch +known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC +/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC +/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 +setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 +setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 +0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC +/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 +setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 +0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ +0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ +0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC +/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 +setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 +setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 +0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC +/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 +setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 +0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ +0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ +0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC +/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 +setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC +/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 +0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 +0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 +0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 +setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 +0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC +/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 +setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 +0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 +1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC +/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 +setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ +0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} +DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 +setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 +setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 +setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end + +%%EndProcSet +%%BeginFont: CMSY7 +%!PS-AdobeFont-1.1: CMSY7 1.0 +%%CreationDate: 1991 Aug 15 07:21:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 48 /prime put +readonly def +/FontBBox{-15 -951 1252 782}readonly def +/UniqueID 5000817 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 +7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 +A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 +E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A +221A37D9A807DD01161779DDE7D251491EBF65A98C9FE2B1CF8D725A70281949 +8F4AFFE638BBA6B12386C7F32BA350D62EA218D5B24EE612C2C20F43CD3BFD0D +F02B185B692D7B27BEC7290EEFDCF92F95DDEB507068DE0B0B0351E3ECB8E443 +E611BE0A41A1F8C89C3BC16B352C3443AB6F665EAC5E0CC4229DECFC58E15765 +424C919C273E7FA240BE7B2E951AB789D127625BBCB7033E005050EB2E12B1C8 +E5F3AD1F44A71957AD2CC53D917BFD09235601155886EE36D0C3DD6E7AA2EF9C +C402C77FF1549E609A711FC3C211E64E8F263D60A57E9F2B47E3480B978AAF63 +868AEA25DA3D5413467B76D2F02F8097D2841EDA6677731A6ACFEC0BABF1016A +089B2D24E941E5E7649642B5280D22A2A1499CA9708C88490B456D647364C957 +D289912A4360E31002BEB15135CC9FEBE452F9F6C627968ABD65EC4D987AC218 +E4C5427189CFB260E8321817639C61C05B19DD9035A4CDB46FCC415633BB924E +C508609EF6EA51685FD6E4EB10FB915414DBB3022D3733CBEB1BAFD628ACB64A +661042A600224B084B612B557596A01D1F1F5CB77E3E63E93510A79E0D131271 +3F35F8C34F36C30A593689DD275BDB0054C56527EE372B33BB5673041EE004DA +002AD9C278B0CBA7F111CF641C05FC33AD07591C6FE59CA12B0E2D +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMR7 +%!PS-AdobeFont-1.1: CMR7 1.0 +%%CreationDate: 1991 Aug 20 16:39:21 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 49 /one put +dup 50 /two put +readonly def +/FontBBox{-27 -250 1122 750}readonly def +/UniqueID 5000790 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D +E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8 +47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C +8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4 +78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486 +1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E +01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B +C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0 +F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30 +8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF +A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7 +455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2 +9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105 +EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B +52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97 +563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F +0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB +7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1 +0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4 +1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4CD5C7347D2E +1D0D6630F446F3708FCB29A85F40B4DAB4D60AA8F5B2DBD67F2E45D80C7A7E86 +144669F75F8FA14609F8E4246FEC475ED262E03D30393C78C7828206842B565A +DBE20EA52EE9C4C3862B2F5F12CF89D935B89B84A45CEFCEAEE8EC8806339364 +56FF1FE2E5112803E3E40162D5188D2210A54816AA9960611721C23A292AE80A +8F8C0FB114D71C111700B0FEA8804F37C5D31ECD7006603C53F4BDF7208286AF +3A25CEE58E88BF81A4800B68C2A19EBDADF9B1074702E779A7DD915EFE09D35E +BD176D7346D859D0944520171C4E97696AE0502C43C391FCE5E8FB1789065E18 +BE3AF62200D57912360411CE848B4550D1B0A3BA576F9B41CED3A23E753631A7 +25375ABE8A4B55BC65AE2EAFAE452766961965093084D218637FB447795CC991 +EB1EF26BF82B7A81FA847ABD3B559D35828AD7DDC5FC7B43C6C14E6ADEDD7663 +F272AA9A121630C5263D58773BCB1437EC2FC54C4AF90E677A8E7D1738D003D4 +18998C03CC9AE182E7758767FEB5E1B03C6CC32AD30D0ABAE6552290771E2CB1 +A23F469A8447C1868C6DEC2C3C2BCFC691867E +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 80 /P put +dup 86 /V put +dup 97 /a put +dup 101 /e put +dup 102 /f put +dup 105 /i put +dup 107 /k put +dup 108 /l put +dup 111 /o put +dup 114 /r put +dup 116 /t put +dup 120 /x put +dup 121 /y put +dup 126 /vector put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +/UniqueID 5087385 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 +990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E +6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB +DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 +59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 +D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF +8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 +6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 +1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE +03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 +95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 +74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 +3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 +47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 +AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 +42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 +40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 +B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 +956017667589EE6908966A17DDDE40C2FA52A4C9DA871E90BC37AE8F3EE3313C +27F8AC7F2682739C20889E85105CF10A10F928BC66EB5790EECA7BDF19E991AD +5EA8A95F6D9B54D455EE368F1C6975DA165A39306CDFD858660300F4BCA6DFE9 +F3D1EA52E75678472B8909B657CF8E6340273BD7FF70A03C4406A88EBFE23749 +4C939A4B0A307804DBFB9A8596EDA44BCB0F85ECDF03280E91E180E1D41FF5E7 +05D96349D2F7C7AEB8A375EEE5C75929A39570B1C8E60DAFBE394AE2E2A79F07 +A9437C547177DCE000FC7BABE4B14C2AE2DB39D948BB268FB742902209098ACD +6077A009A01F5971EEF64351866952DAFBD08F41C2716C85E553D1BD38AD04AB +44A82A3D9B126FA60EA47FE51E6583BC16BA0CED16FF8A401F284493668FE2C7 +D40DA88B36B96D67E3D63FDEBA80F6C1DCA71B8244F9EA3DECFB9B7EC83E1CAE +547E804527315482F2D43A84306A054A0F13FFD1850EC8854FE8FBBA6EB9A711 +9007FD28359772E2B9173942A02684A8DFBE224EB43FC6C920F31D0AD6782B3F +5612A2B3D31C7BA71C2701AA395F4D616D4EC5461B68B3979CD8ECC13BBEF603 +D714D5CA9341D79F2AB6E200CEC023020841B2598B2489C4D54FD35753081ACD +A3DA6F6AFA5CE44B46391FCE0E84F4E05F6F343B3F0501E546FD1AAF73CD8D64 +0A997E237BC5EBE85B1A4ADEE6ABF5CB4566AD001ACC34FE95B8CBF74A67D943 +34F2AC6D7F5E327AC1336AB13A94DA916532D6D68BC5783A02DCB7DA158002A1 +615135483906B884DF3C115D3751002AFE38E2FA21678B40E26D26DA7C530372 +0F5489A88633E03555724710902A4C266AFAD5D1D9799BFC5191FAE942B6F85F +AA9B0D64AA11A2AFFD9040EF8C4881C0835A9BEAD44CFA9E079A03AD30F9FC4C +C85AD235DF9DE1080AF647426EEFE9B9C3FD737A9F6EC42C937EF3B055A5706A +000E5FB042B0BAA09F8BD8C0AA127858201575B1EEBE96B44999595FCE327665 +75C8F3B4676F633A9B8D05FC017BA5F38A7783493D301A4179E5DE643532E221 +EC2E331F7F7E00D6B18F74F6856A57C9833EAB5E8D41A0CFEB9E33ED1108A946 +5C2EEC5533B7D6A19AA54417F7E25671D199E0CF023194FD4DD5DD9C48ED8A6C +81658AB2C77CF24D3BFBDE9365252A37CDAC54DBCF106EABEAA18918E1566C9C +5553DCB2FB76D8FB46059B0BD7CAEE20CB1C6ADCEFA160E198398387331ADE14 +43BA2FFB3A315318335F12C0D6BDE8358EA092DEF5BDAC17AF1D1B691418FA9F +C0189D5C2F79F0F82EE9B468F891552BEED0203CF86A30163FDA23E7369D6776 +6A9CDEADC274CB28E506C22742195EE1957F64A3493A4211B98EF1051698173F +FEA93E1CFF4D95E573D17B6C14B06379E39A3700566D7F6750A0801F79BFB6E2 +4D2970DB0ADF42027C7CB28397E2CD289AE1955F486A37F45D0CCC523136AC3B +4F6B0A587A2A8EA3EAFECCEE8B8A3F23261EB07A03E753C06BC9CA4D8673E659 +81663A676D98274F2463E8DC2504257236BCA1EBB16601A0FA2C75FA6E3D6C5D +E14D2F4758F06250AF3BECE5AF1DF1D9E6EAB6CD1E895373C2FE9AE6F5AB18DF +6BEE8D7C2014924C3C917489FBFB08147A9AC82A31E955F966CCF365C6DF68E5 +1CA81DFC7033407D7EF14F4E4D430F3FF165E328A07B88B765CF6D240C73515D +B48AE1DCF2BA20FD469EEA4C078B4946B57A7A0D57A999436F8CADB99B712476 +11AB2D53D1ABDA7EF74F699497A33CCE4AD1EDD01F7E6C36284624AE2E57FF38 +A2DAA38957B7FDCBBB0F9FB57657C58258FBC76592D9B43EE95F22B8B7013946 +C2863EE1D899DEF216A47DB76E4963F2FFFF16CBC349BCDCE7FD4FBC9B9368B4 +9F2427A97B35A947F37B4D5A77119D8EE4178B5E859A4AF3C735D1FF334CE0FA +7EF6B5FC6D76D9ADBE79D311C6BD8BAE9AA6E696084DB683E26EAD896DB855CD +5044B21C9DF771987CF2BF1E55333D1900F6E31641F09A17193EEAA11A360C66 +EA7CDCF4EA77313C2E2E0809739806474A3A92F382299BBBE9CE8297252103FD +8A2D9B195D902A3D54BE7F6DF07DD48F3126C67AD125FC4E85B0898CBD739214 +02EA8FCC966C1AD7211133E56A4A3B2C377ECB338C7374A04B3AFA2F21954D7E +B56609A8F44E871B7278F69EC9A03ADE5D1CD3EA049261A8CCE41CB1D58F8798 +9FECB6F0ED59EE13F50ECA4F11594196065377D5A2294B896E1D371934C0F730 +BB69DC24BE76CEB640271BC85F5B93C8AEE60107AD3978C1B08359422475F744 +C76488486DFAAC2165481A1011B3FD7DAE0E860B13A8B33ED7EFF24E5D966259 +07ED8302ECF1849899A45CFF3753A7F38282956344AAD703B27C0F9622885C21 +C36213D22E997B556E2BB1E8E4C24508DB5E3718E98A449CAD87AD674B6D8DE4 +4D4576F3E526DCBD3B8C41CA0FC11931EE1E01C02E337E2BD1C16ED8686087BD +E908BB9BDD668A60198D47C713E877934DEA43C763CCB5716121CF1A6E4B618C +89F1CF331627F8E245878484D58D09AA4A7F4F40CB3BE4E2627C6BEB70BFC692 +1004781F39BB4CC4634B47C5A9B45DBE4DB42A9345B45DFEE664E1BD83451B9D +69B9EC1F18439140A641B5940BEC5BE3D113DB988D1F98E4C94A14943FA6FA1A +9FB22C7E79BE5E11F6EF6A87E2F7D79A16C58868A24CE5981F8F792F0CBD35F0 +865DFFB82B3684978DB8211EB1906F21984F0F2B8AA34584629D6B93A45CC547 +8CEA7773520258A5907794D8C84FDA53079ACB3ACC1E20188D4C4C838A9A4A1D +96394E8B0A29618771C367190DF953113C6021390224676851491A578203EB2D +B7BAA0F8D8CAA82A3E077A9F423EEDE5A1477B73476F3E6C017C487C3A3386A7 +F36F05413D4B9F7FA741A9AF12DA5DC3DD760FA4E11B632ABB8B197A246D340B +E0924B6BD7A0B0A353CA8BF99913AB02527F6195A3139FB36FCE034D6E65951A +DDA9453A812C19CFA26AB0B45F411E75954E50C41D276138D7F9A2FC4383D8CF +E80B6FDE131D586794B01A4B1C4F3683667D6D2500CE68484CA230BA41131DA9 +F6111B1045C21F901893E82B3575FF5DE4E55F61DC3C7D2ABA1AAC5FD81A3982 +0F33E86C095C26EC6BCBCCACD78BFD4F953469AFBC44BDC3B19355A56E8B1C59 +33C0E145D52E78C1853220D0D7C826F2F40428E6EA3EA17FD2F4AFAA299F3C50 +A817D52D4F64C4BA64CDA0EC8B1EB87D761FCC533E85E165A384D2391596D050 +B1DB03EC39FFEE5372ACA5CE05815021B876E10F0625FDF782079298D18BE163 +5BD374C5F677DCE46D563B36DB5E87D6E5BC3A27DE99E764001EEA04329EAF28 +E92CCA0955ED2B10D9125096AF27B65D0869969220A8CA4F05A41A67AE37324D +71F84F46A8CD14779B52E88F07F3EED34A036E5A7D651388DB7244BE3BD284C9 +B2ACFD0518A0673146AF72EC8CBB8DD10FD3EB4C803B495CE3523F648E0B2266 +ACEB63BE045939CBE1D204D60D37DDFD9D5839B006F33C506506658C16DD4F6B +FC0B30518A6E9ADF63CD8162558A126EBB9C6A428A8A333B7B9D176EBE2121BA +F2F34DAF60A4B073F2561CD51627815484DCADCEC2B55014B78D751EB2637487 +7D65129EB16C1B6E434E8923ACC9206945F093516AD212200F8302A56C38C37F +6A432C9774AD7B396BAB391BCE4DEA9E35705609393258005797F1DC477642B1 +1E9C8E29F968E048E9F7D084934E5B627C964CBC7E9DEB54E272B44531C93686 +85224E2801FC62B99E06D3418504BD3C1BFBB35FAAC5C92F3AAD1C079E062C62 +78EE26D1ECD2F6C7CB7722CA1992399ED773220FF10D1C784227A4FB806A850B +894692278CAA363CF9B21C91E331C6C826673753C0AE45E8609BDE4EAAC055AE +0DD224C0122420A9F371B0F6777388E5FD1014D24FE68CFD9362BEB66991E8E4 +9D +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMR10 +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 34 /quotedblright put +dup 40 /parenleft put +dup 41 /parenright put +dup 48 /zero put +dup 50 /two put +dup 52 /four put +dup 96 /quoteleft put +readonly def +/FontBBox{-251 -250 1009 969}readonly def +/UniqueID 5000793 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 +87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F +D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 +92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C +295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 +409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C +4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF +2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E +0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E +B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 +24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B +43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF +D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 +5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC +96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 +7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC390F0303E36E09AF75 +2659C90B837112B11D993027CA8BA9B5720A124F63E7DBABB2F0303A6D876536 +B55707F5C2F3D8090BA7F3C3776E669E5B78D3C03B6E07436B6560B5906E0348 +19F295F12536FFD558FBA1AB51DC370B95A56E0B988CA064E0AC7F9101EA7481 +AE0BE8FB1A69E4B782DE4E821305F50FE95C34D782990F0D0B632FC12B1E324F +1710B2002E0F3F132ED94495BC1892BB688C4FF28BEFE906F5D076592306D8BC +30833BD11CF1198C51BE09B0721EC7211F164A664AB4C7C6FE7EA206A7ABC433 +66FAAD8EF6D6DD77674A3480CBFA62794496BF327BA0BCF7739D813518451BBF +41F9D9F03F1466758C192E2BC0FE74616331609D6DD131325357A24634E1B3FB +059814C123CA62478537A6492B618815B78DB298E699E6064DCF24EEDD570C6D +62190EB9D3874C0A69B7FE6CC9CF1C0C94CA8B063A6E51A2EBF371201F6910F3 +50B8EF85203E4DAB28B15D18FE1EA4974CA1F2575D5BFE9A919CC65AE6B558A6 +FFD7EBFA6010495B5929C2756D0A66FA495A3FA9303D97BAC395E479BEDA98CB +EC189F19FDC65CC2FE68D6C8152153E7E4C0AFC7CA5E665768A29ED5A2621D8D +D3883320C1AFA37D6F52934351A9ACC9F1CBD41AA1890EAE28F254A30C4BB502 +D5F14F8216631985F9D3BDB786F71B831327C6592B23450261E62D8B2A602B7A +1A350AE5B81130505025B793E83CFD60B47B110441B7A7F9D601E5072CB9EF50 +A8C72E79B3E077194A693BCCEDF7166836AD9F4699391F7869AF1681A3047958 +BD1D749FBEC6A223043D7E3E1D9EE1CADC7A099CB3E1E0BEBD5D642A24B15BA2 +589E4D5F9E43E906C8D8A6DCDC531A043A12D30B7ADB48E4DE0C5F072E72156D +0BE50280008B0DC78F48B14A1985AFAA85E1290576C1A2DAFC8F8B7B01C9FB96 +803510425AC3BD73A7766D4DD8EBD093BBC7905C889ACC6045B671E03238F90B +DD4F29C7D11BEC45700826D0F8F069C13D627FB44DFA54B446A8B646FA9E521C +6E570A22A6EC149091F615EFEBEEF8D48BDBD3F3A2BFEDC78BB25C1B3EC02DF6 +0BEA2B8B3BD3EA65A3A9594657AB2221D5E656DE873F473FEE416DBFD7E0A327 +D041DA40DD9EC5A401A1D8CF77AD5252993D1FFAD0AADA5ED3AAF2DA5FABCADE +309FD408F124E8D242039E116BB3E696C8C6B1C0E9C4BE7DEDC17CE2638D7EE6 +D9AAFD5E2D9E0FB0F203DC102D50731F285FEB59ADC256CA732CBCA471F8EFA9 +81BBBD76520AD91BBD93DAC7A8727CC1ECA4E52B2636F74A17101022357C995C +367A759FCE5E0B19B92A487164AE677541F59DA8D5753DF50DFE9A01B329E47C +DBA2B1050497D959B84D03466436B5F4262B97CD97AF20BE00BBAB22AD97D7C5 +948617CB66370EF80F94F53A0216ADDDE9E70D4A8080A7B27423D6CFB904B02A +61B87D639B281C263FCCFF2871DB2987FBDE82ACB428D5F9CDE907B958813DF5 +B27BB3CD4D3850227D5FA244B0DF2E1AA09E26D95CF37D613892E687297CBB15 +8D2D007231D7ED8ABD57A72C2C147E5D24C0A3EB90C88FEAF3646DF1EF332592 +0737DA5E8332EA035325822A9BA8B732B83C1B6C6194D79AA3ED2F4A125EDCA2 +59A4C52E295765C81F1D4C62807CBA97C7F301C9266F171331B133D17173D628 +45713815C8E08E9D710351136B580529F2CE8AD18C97A7C902B79B4301E2E954 +CF28F769B6472F0D1BC978B5CF020A444305C8E0143589E4F576FD655DED1E26 +B6D3A0246C07C4D0D452D53CBA68BD4A8C002A594F9D86DACEBDCA3F1D5DDEDC +A6C43EAA712FC61E3187261898B1C1859D13EC6ECCAFCBE905EEB710B6761332 +FAD0540B6BC26838B854EE2283D0C7C66BADDBB93397CED3E07E82A7DEDE6005 +E84DE1C6C167ACD34056B76B9A55B35BFAC8EE36CF6C3C96098985BB6D0D8FB1 +2A9B23014EAA8E08CAB695D060E101A060C6106EE929DA61A32F2FB61A0CC276 +22F112A94D0BF1AC65AD98BE1CE33FC666477C35CF3791B2A5294023D26B925C +F668E7E65DEB91312EEE6F1DE82C5A23362672B74908600E97557962F328A098 +4CAEF45280AFE27875E9C8B2ADFFC871D65447FF37017878D4DFED387505E39F +EE265DB480CE6667A2023D454FC8B96012E6707C7C12515971298E7BF2909B70 +4741FBEA28AD3452F16C20944DAB7283DB30B1C625F88302FE337FDAD2E54C29 + +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 40258437 52099154 1000 600 600 (2dgrafiken.dvi) +@start /Fa 207[19 48[{}1 58.1154 /CMSY7 rf /Fb 205[33 +33 49[{}2 58.1154 /CMR7 rf /Fc 129[42 4[41 47 3[30 1[37 +2[40 2[25 43 1[29 2[41 39 3[44 10[48 5[53 80[{}14 83.022 +/CMMI10 rf /Fd 159[23 43[42 1[42 1[42 6[32 32 5[42 34[{}7 +83.022 /CMR10 rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin + end +%%EndSetup +TeXDict begin 1 0 bop 0 TeXcolorgray 1 TeXcolorgray 0 +TeXcolorgray 1 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray +0 TeXcolorgray 1 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray +0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray +0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0.5 TeXcolorgray +0 TeXcolorgray 0 0.1 0.95 TeXcolorrgb 0 TeXcolorgray +0 1 1 TeXcolorrgb 0 TeXcolorgray 0.75 TeXcolorgray 0 +TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 1394 a + tx@Dict begin gsave CM STV CP newpath moveto 3.0 neg 0 rmoveto clip +setmatrix end + 0 +1394 a 0 1394 1477 1394 v 1477 1394 a + currentpoint grestore moveto + 1477 1394 a 264 +1157 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 setgray /ArrowA { BeginArrow +1. 1. scale 2 setlinecap 0 0 moveto 0 0.5 L stroke 0 0 moveto EndArrow + moveto } def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 +2. Arrow EndArrow } def 128.03734 0 0.0 0 ArrowA CP 4 2 roll +ArrowB L pop pop gsave 0.1 SLW 0 setgray 0 setlinecap stroke grestore +end + +@endspecial @beginspecial +@setspecial + tx@Dict begin STP newpath 0.1 SLW 0 setgray /ArrowA { BeginArrow +1. 1. scale 2 setlinecap 0 0 moveto 0 0.5 L stroke 0 0 moveto EndArrow + moveto } def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 +2. Arrow EndArrow } def 128.03734 0 exch 0.0 0 exch ArrowA CP 4 +2 roll ArrowB L pop pop gsave 0.1 SLW 0 setgray 0 setlinecap stroke + grestore end + +@endspecial @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 setgray 0 rotate /n 2 def /dx +56.90549 def n 0 lt { /dx dx neg def /n n neg def } if /y2 3.0 CLW +2 div add def /y1 y2 neg def /x dx def n { x y1 moveto x y2 lineto +stroke /x x dx add def } repeat end + +@endspecial +243 1278 a Fd(0)431 b(2)f(4)264 1157 y @beginspecial +@setspecial + tx@Dict begin STP newpath 0.1 SLW 0 setgray 90 rotate /n 2 def /dx +56.90549 def n 0 lt { /dx dx neg def /n n neg def } if /y2 3.0 CLW +2 div add def /y1 y2 neg def /x dx def n { x y1 moveto x y2 lineto +stroke /x x dx add def } repeat end + +@endspecial 156 1184 a(0)156 712 y(2)156 +239 y(4)1374 1175 y Fc(x)242 34 y(y)p 1 0 0 TeXcolorrgb +0 TeXcolorgray 264 1157 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def [ 85.35823 85.35823 0.0 0.0 /Lineto /lineto load +def false Line gsave 0.1 SLW 1 0 0 setrgbcolor 0 setlinecap stroke + grestore end + +@endspecial +0 0 1 TeXcolorrgb 0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 85.35823 85.35823 85.35823 -5.69046 /Lineto +/lineto load def false Line gsave 0.1 SLW 0 0 1 setrgbcolor 5.0 3.0 +0.0 0.0 0 0 add DashLine grestore end + + +@endspecial 0 0 1 TeXcolorrgb 0 TeXcolorgray @beginspecial +@setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 85.35823 85.35823 -5.69046 85.35823 /Lineto +/lineto load def false Line gsave 0.1 SLW 0 0 1 setrgbcolor 5.0 3.0 +0.0 0.0 0 0 add DashLine grestore end + +@endspecial 932 1240 a(a)976 1252 y Fb(1)152 +461 y Fc(a)196 473 y Fb(2)264 1157 y @beginspecial @setspecial + tx@Dict begin STP newpath 0.8 SLW 0 setgray /ArrowA { moveto } def +/ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow EndArrow + } def [ 88.20367 82.51277 99.5846 71.13185 /Lineto /lineto load def +false Line gsave 0.8 SLW 0 setgray 0 setlinecap stroke grestore +end + + +@endspecial 689 635 a Fc(V)19 b(ek)s(tor)30 b Fd(\("`)p +Fc(P)12 b(f)d(eil)r Fd(")1327 605 y Fa(0)1348 635 y Fd(\))849 +738 y Fc(~)-37 b(a)p eop end +%%Trailer + +userdict /end-hook known{end-hook}if +%%EOF diff --git a/VektorenInEbeneVeranschaulichung02.pst b/VektorenInEbeneVeranschaulichung02.pst new file mode 100644 index 0000000..a6596b3 --- /dev/null +++ b/VektorenInEbeneVeranschaulichung02.pst @@ -0,0 +1,27 @@ + \begin{pspicture}(-1,-1)(4.9,4.9) + %\psgrid[griddots=10,gridlabels=0pt, subgriddiv=0] + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Koordinaten%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \psaxes[Ox=0,Dx=2,Oy=0,Dy=2,linewidth=0.1pt]{->}(0,0)(-0.0,-0.0)(4.5,4.5)%Schnittpunkt, x0, y0 x1,y1 + \rput[c](4.8,0){$x$} + \rput[c](0,4.8){$y$} + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Vektor%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \psline[linecolor=red, linewidth=0.1pt]{->}(0,0)(3,3) + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Hilfslinien%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \psline[linecolor=blue, linestyle=dashed, linewidth=0.1pt](3,-0.2)(3,3) + \psline[linecolor=blue, linestyle=dashed, linewidth=0.1pt](-0.2,3)(3,3) + \rput[c](3.0,-0.3){$a_1$} + \rput[c](-0.3,3){$a_2$} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%Pfeil mit Beschriftung%%%%%%%%%%%%%%%%%%%%%%%%%%% + \psline{->}(3.5,2.5)(3.1,2.9) + \rput[l](1.8,2.3){$Vektor\ ("`Pfeil"')$} + \rput[l](2.5,1.9){$\vec{a}$} + + + + + \end{pspicture} \ No newline at end of file diff --git a/VeranschaulichungVonVektorenImRaum01.eps b/VeranschaulichungVonVektorenImRaum01.eps new file mode 100644 index 0000000..1c9733e --- /dev/null +++ b/VeranschaulichungVonVektorenImRaum01.eps @@ -0,0 +1,3602 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: dvips(k) 5.94a Copyright 2003 Radical Eye Software +%%Title: 3dgrafiken.dvi +%%CreationDate: Mon Aug 23 09:17:38 2004 +%%BoundingBox: 71 492 278 721 +%%DocumentFonts: CMMI10 CMSS8 CMR10 CMR7 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips -E 3dgrafiken.dvi +%DVIPSParameters: dpi=600 +%DVIPSSource: TeX output 2004.08.23:0916 +%%BeginProcSet: tex.pro 0 0 +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S +/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy +setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask +restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: pstricks.pro 0 0 +%! +% PostScript prologue for pstricks.tex. +% Version 97 patch 4, 04/05/10 +% For distribution, see pstricks.tex. +% +/tx@Dict 200 dict def tx@Dict begin +/ADict 25 dict def +/CM { matrix currentmatrix } bind def +/SLW /setlinewidth load def +/CLW /currentlinewidth load def +/CP /currentpoint load def +/ED { exch def } bind def +/L /lineto load def +/T /translate load def +/TMatrix { } def +/RAngle { 0 } def +/Atan { /atan load stopped { pop pop 0 } if } def +/Div { dup 0 eq { pop } { div } ifelse } def +/NET { neg exch neg exch T } def +/Pyth { dup mul exch dup mul add sqrt } def +/PtoC { 2 copy cos mul 3 1 roll sin mul } def +/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } +def +/PathLength { flattenpath /z 0 def { /y1 ED /x1 ED /y2 y1 def /x2 x1 def +} { /y ED /x ED PathLength@ } {} { /y y2 def /x x2 def PathLength@ } +/pathforall load stopped { pop pop pop pop } if z } def +/STP { .996264 dup scale } def +/STV { SDict begin normalscale end STP } def +% +%%-------------- DG begin patch 15 ---------------%% +%/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def +%PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y +%mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul +%/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ] +%0 } ifelse setdash stroke } def +/DashLine { + dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def PathLength } ifelse + /b ED /x1 ED /y1 ED /x ED /y ED + /z y x add y1 add x1 add def + /Coef b a .5 sub 2 mul y mul sub z Div round + z mul a .5 sub 2 mul y mul add b exch Div def + /y y Coef mul def /x x Coef mul def /y1 y1 Coef mul def /x1 x1 Coef mul def + x1 0 gt y1 0 gt x 0 gt y 0 gt and { [ y x y1 x1 ] 1 a sub y mul} + { [ 1 0] 0 } ifelse setdash stroke +} def +%%-------------- DG end patch 15 ---------------%% +/DotLine { /b PathLength def /a ED /z ED /y CLW def /z y z add def a 0 gt +{ /b b a div def } { a 0 eq { /b b y sub def } { a -3 eq { /b b y add +def } if } ifelse } ifelse [ 0 b b z Div round Div dup 0 le { pop 1 } if +] a 0 gt { 0 } { y 2 div a -2 gt { neg } if } ifelse setdash 1 +setlinecap stroke } def +/LineFill { gsave abs CLW add /a ED a 0 dtransform round exch round exch +2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25 +% DG/SR modification begin - Dec. 12, 1997 - Patch 2 +%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a +itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a +% DG/SR modification end +Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict +/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1 +% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) +% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore } +% def +a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore +pop pop } def +% DG/SR modification end +/BeginArrow { ADict begin /@mtrx CM def gsave 2 copy T 2 index sub neg +exch 3 index sub exch Atan rotate newpath } def +/EndArrow { @mtrx setmatrix CP grestore end } def +/Arrow { CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1 +scale } if w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill +grestore } def +/Tbar { CLW mul add /z ED z -2 div CLW 2 div moveto z 0 rlineto stroke 0 +CLW moveto } def +/Bracket { CLW mul add dup CLW sub 2 div /x ED mul CLW add /y ED /z CLW 2 +div def x neg y moveto x neg CLW 2 div L x CLW 2 div L x y L stroke 0 +CLW moveto } def +/RoundBracket { CLW mul add dup 2 div /x ED mul /y ED /mtrx CM def 0 CLW +2 div T x y mul 0 ne { x y scale } if 1 1 moveto .85 .5 .35 0 0 0 +curveto -.35 0 -.85 .5 -1 1 curveto mtrx setmatrix stroke 0 CLW moveto } +def +/SD { 0 360 arc fill } def +/EndDot { { /z DS def } { /z 0 def } ifelse /b ED 0 z DS SD b { 0 z DS +CLW sub SD } if 0 DS z add CLW 4 div sub moveto } def +/Shadow { [ { /moveto load } { /lineto load } { /curveto load } { +/closepath load } /pathforall load stopped { pop pop pop pop CP /moveto +load } if ] cvx newpath 3 1 roll T exec } def +/NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch +cvi def } def +/NArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop } if +f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def +/Line { NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub +def n { Lineto } repeat CP 4 2 roll ArrowB L pop pop } if } def +/Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 } +ifelse { pop } repeat a } def +/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq +and { pop pop /n n 1 sub def } if } def +/Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop } +repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1 +ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1 +moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto +Lineto pop pop closepath } ifelse } def +/Diamond { /mtrx CM def T rotate /h ED /w ED dup 0 eq { pop } { CLW mul +neg /d ED /a w h Atan def /h d a sin Div h add def /w d a cos Div w add +def } ifelse mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 +div /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +setmatrix } def +% DG modification begin - Jan. 15, 1997 +%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq { +%pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 +%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0 +%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +%setmatrix } def +/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup +CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 +div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0 +d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) +% setmatrix } def +setmatrix pop } def +% DG/SR modification end +/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth +def } def +/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth +def } def +/CC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1 +def CCA /dx dx0 l1 c exp mul dx1 l0 c exp mul add def /dy dy0 l1 c exp +mul dy1 l0 c exp mul add def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos +abs b exp a mul dx dy Pyth Div 2 div def /x2 x l0 dx mul m mul sub def +/y2 y l0 dy mul m mul sub def /dx l1 dx mul m mul neg def /dy l1 dy mul +m mul neg def } def +/IC { /c c 1 add def c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } +ifelse /a a 2 mul 3 div 45 cos b exp div def CCA /dx 0 def /dy 0 def } +def +/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def +/NC { CC x1 y1 x2 y2 x y curveto } def +/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def +/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def +/NAC { x2 y2 x y curveto CC x1 y1 } def +/EAC { x2 y2 x y ArrowB curveto pop pop } def +/OpenCurve { NArray n 3 lt { n { pop pop } repeat } { BOC /n n 3 sub def + n { NC } repeat EOC } ifelse } def +/AltCurve { { false NArray n 2 mul 2 roll [ n 2 mul 3 sub 1 roll ] aload +/Points ED n 2 mul -2 roll } { false NArray } ifelse n 4 lt { n { pop +pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse } def +/ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt { +CheckClosed } if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC } +repeat closepath pop pop } ifelse } def +/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def +/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def +/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } +def +/FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix +rotate matrix concatmatrix exch findfont exch makefont setfont } def +/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto +x1 y1 lineto closepath } def +/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1 +y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div +exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse +/b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto +x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath } +ifelse } def +/Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add +/y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq { +pop pop Rect } { OvalFrame } ifelse } def +/BezierNArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop +} if n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat f { ] +aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def +/OpenBezier { BezierNArray n 1 eq { pop pop } { ArrowA n 4 sub 3 idiv { 6 +2 roll 4 2 roll curveto } repeat 6 2 roll 4 2 roll ArrowB curveto } +ifelse } def +/ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv { +6 2 roll 4 2 roll curveto } repeat closepath } ifelse } def +/BezierShowPoints { gsave Points aload length 2 div cvi /n ED moveto n 1 +sub { lineto } repeat CLW 2 div SLW [ 4 4 ] 0 setdash stroke grestore } +def +/Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1 +sub 3 div def /dy y0 y1 sub 3 div def x0 dx sub y0 dy add x1 y1 ArrowA +x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB curveto /Points [ x1 y1 x0 +y0 x0 2 mul x1 sub y1 ] def } def +/Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 } +if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if +/dx ED dy div round dy mul /y0 ED dx div round dx mul /x0 ED dy div +round cvi /y2 ED dx div round cvi /x2 ED dy div round cvi /y1 ED dx div +round cvi /x1 ED /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1 sub +0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div CLW 2 div add def +/Helvetica findfont b scalefont setfont /b b .95 mul CLW 2 div add def } +if systemdict /setstrokeadjust known { true setstrokeadjust /t { } def } +{ /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add +exch itransform } bind def } ifelse gsave n 0 gt { 1 setlinecap [ 0 dy n +div ] dy n div 2 div setdash } { 2 setlinecap } ifelse /i x1 def /f y1 +dy mul n 0 gt { dy n div 2 div h mul sub } if def /g y2 dy mul n 0 gt { +dy n div 2 div h mul add } if def x2 x1 sub w mul 1 add dup 1000 gt { +pop 1000 } if { i dx mul dup y0 moveto b 0 gt { gsave c i a cvs dup +stringwidth pop /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg} +{z1} ifelse rmoveto show grestore } if dup t f moveto g t L stroke /i i +w add def } repeat grestore gsave n 0 gt +% DG/SR modification begin - Nov. 7, 1997 - Patch 1 +%{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash } +{ 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash } +% DG/SR modification end +{ 2 setlinecap } ifelse /i y1 def /f x1 dx mul +n 0 gt { dx n div 2 div w mul sub } if def /g x2 dx mul n 0 gt { dx n +div 2 div w mul add } if def y2 y1 sub h mul 1 add dup 1000 gt { pop +1000 } if { newpath i dy mul dup x0 exch moveto b 0 gt { gsave c i a cvs +dup stringwidth pop /z2 ED w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt +{z1} {b neg} ifelse rmoveto show grestore } if dup f exch t moveto g +exch t L stroke /i i h add def } repeat grestore } def +/ArcArrow { /d ED /b ED /a ED gsave newpath 0 -1000 moveto clip newpath 0 +1 0 0 b grestore c mul /e ED pop pop pop r a e d PtoC y add exch x add +exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c +mul neg d } def +/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def +/Rot { CP CP translate 3 -1 roll neg rotate NET } def +/RotBegin { tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } +def } if /TMatrix [ TMatrix CM ] cvx def /a ED a Rot /RAngle [ RAngle +dup a add ] cvx def } def +/RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ] +cvx def } def +/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def +/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def +/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def +/Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s +abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b +div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } { +h1 abs h sub dup s mul abs } ifelse } def +/UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s +mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q +{ x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add +exch } def +/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible +/IfVisible true def } if } { IfVisible { Invisible /IfVisible false def +} if } ifelse } def +/InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def +/Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit +neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def +/IfVisible true def } def +end +% END pstricks.pro + +%%EndProcSet +%%BeginProcSet: pst-dots.pro 0 0 +%!PS-Adobe-2.0 +%%Title: Dot Font for PSTricks +%%Creator: Timothy Van Zandt +%%Creation Date: May 7, 1993 +%% Version 97 patch 1, 99/12/16 +%% Modified by Etienne Riga - Dec. 16, 1999 +%% to add /Diamond, /SolidDiamond and /BoldDiamond +10 dict dup begin + /FontType 3 def + /FontMatrix [ .001 0 0 .001 0 0 ] def + /FontBBox [ 0 0 0 0 ] def + /Encoding 256 array def + 0 1 255 { Encoding exch /.notdef put } for + Encoding + dup (b) 0 get /Bullet put + dup (c) 0 get /Circle put + dup (C) 0 get /BoldCircle put + dup (u) 0 get /SolidTriangle put + dup (t) 0 get /Triangle put + dup (T) 0 get /BoldTriangle put + dup (r) 0 get /SolidSquare put + dup (s) 0 get /Square put + dup (S) 0 get /BoldSquare put + dup (q) 0 get /SolidPentagon put + dup (p) 0 get /Pentagon put + dup (P) 0 get /BoldPentagon put +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + dup (l) 0 get /SolidDiamond put + dup (d) 0 get /Diamond put + (D) 0 get /BoldDiamond put +% DG/SR modification end + /Metrics 13 dict def + Metrics begin + /Bullet 1000 def + /Circle 1000 def + /BoldCircle 1000 def + /SolidTriangle 1344 def + /Triangle 1344 def + /BoldTriangle 1344 def + /SolidSquare 886 def + /Square 886 def + /BoldSquare 886 def + /SolidPentagon 1093.2 def + /Pentagon 1093.2 def + /BoldPentagon 1093.2 def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /SolidDiamond 1008 def + /Diamond 1008 def + /BoldDiamond 1008 def +% DG/SR modification end + /.notdef 0 def + end + /BBoxes 13 dict def + BBoxes begin + /Circle { -550 -550 550 550 } def + /BoldCircle /Circle load def + /Bullet /Circle load def + /Triangle { -571.5 -330 571.5 660 } def + /BoldTriangle /Triangle load def + /SolidTriangle /Triangle load def + /Square { -450 -450 450 450 } def + /BoldSquare /Square load def + /SolidSquare /Square load def + /Pentagon { -546.6 -465 546.6 574.7 } def + /BoldPentagon /Pentagon load def + /SolidPentagon /Pentagon load def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /Diamond { -428.5 -742.5 428.5 742.5 } def + /BoldDiamond /Diamond load def + /SolidDiamond /Diamond load def +% DG/SR modification end + /.notdef { 0 0 0 0 } def + end + /CharProcs 20 dict def + CharProcs begin + /Adjust { + 2 copy dtransform floor .5 add exch floor .5 add exch idtransform + 3 -1 roll div 3 1 roll exch div exch scale + } def + /CirclePath { 0 0 500 0 360 arc closepath } def + /Bullet { 500 500 Adjust CirclePath fill } def + /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath + eofill } def + /BoldCircle { 500 500 Adjust CirclePath .8 .8 scale CirclePath + eofill } def + /BoldCircle { CirclePath .8 .8 scale CirclePath eofill } def + /TrianglePath { 0 660 moveto -571.5 -330 lineto 571.5 -330 lineto + closepath } def + /SolidTriangle { TrianglePath fill } def + /Triangle { TrianglePath .85 .85 scale TrianglePath eofill } def + /BoldTriangle { TrianglePath .7 .7 scale TrianglePath eofill } def + /SquarePath { -450 450 moveto 450 450 lineto 450 -450 lineto + -450 -450 lineto closepath } def + /SolidSquare { SquarePath fill } def + /Square { SquarePath .89 .89 scale SquarePath eofill } def + /BoldSquare { SquarePath .78 .78 scale SquarePath eofill } def + /PentagonPath { + -337.8 -465 moveto + 337.8 -465 lineto + 546.6 177.6 lineto + 0 574.7 lineto + -546.6 177.6 lineto + closepath + } def + /SolidPentagon { PentagonPath fill } def + /Pentagon { PentagonPath .89 .89 scale PentagonPath eofill } def + /BoldPentagon { PentagonPath .78 .78 scale PentagonPath eofill } def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /DiamondPath { 0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto + 428.5 0 lineto closepath } def + /SolidDiamond { DiamondPath fill } def + /Diamond { DiamondPath .85 .85 scale DiamondPath eofill } def + /BoldDiamond { DiamondPath .7 .7 scale DiamondPath eofill } def +% DG/SR modification end + /.notdef { } def + end + /BuildGlyph { + exch + begin + Metrics 1 index get exec 0 + BBoxes 3 index get exec + setcachedevice + CharProcs begin load exec end + end + } def + /BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec + } bind def +end +/PSTricksDotFont exch definefont pop +%END pst-dots.pro + +%%EndProcSet +%%BeginProcSet: pst-node.pro 0 0 +%! +% PostScript prologue for pst-node.tex. +% Version 97 patch 1, 97/05/09. +% For distribution, see pstricks.tex. +% +/tx@NodeDict 400 dict def tx@NodeDict begin +tx@Dict begin /T /translate load def end +/NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def } +if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next end +grestore } def +/InitPnode { /Y ED /X ED /NodePos { NodeSep Cos mul NodeSep Sin mul } def +} def +/InitCnode { /r ED /Y ED /X ED /NodePos { NodeSep r add dup Cos mul exch +Sin mul } def } def +/GetRnodePos { Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def +} ifelse Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def } +ifelse dx Sin mul abs dy Cos mul abs gt { dy Cos mul Sin div dy } { dx +dup Sin mul Cos Div } ifelse } def +/InitRnode { /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub +/u ED /NodePos { GetRnodePos } def } def +/DiaNodePos { w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup +Cos mul exch Sin mul } def +/TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w h +mul w Sin mul h Cos abs mul add Div NodeSep add dup Cos mul exch Sin mul +} ifelse } def +/InitTriNode { sub 2 div exch 2 div exch 2 copy T 2 copy 4 index index /d +ED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def d +sub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atan +sin def /NodePos { TriNodePos } def } def +/OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Cos +hh mul Atan dup cos ww mul exch sin hh mul } def +/GetCenter { begin X Y NodeMtrx transform CM itransform end } def +/XYPos { dup sin exch cos Do /Cos ED /Sin ED /Dist ED Cos 0 gt { Dist +Dist Sin mul Cos div } { Cos 0 lt { Dist neg Dist Sin mul Cos div neg } +{ 0 Dist Sin mul } ifelse } ifelse Do } def +/GetEdge { dup 0 eq { pop begin 1 0 NodeMtrx dtransform CM idtransform +exch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrx +dtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED pop +XYPos } ifelse } def +/AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1 +roll sin mul sub exch } ifelse } def +/GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleA +AddOffset yA add /yA1 ED xA add /xA1 ED } def +/GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleB +AddOffset yB add /yB1 ED xB add /xB1 ED } def +/GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmA +AngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do ED +ArmA AngleA XYPos OffsetA AngleA AddOffset yA add /yA2 ED xA add /xA2 ED +} ifelse } def +/GetArmB { ArmTypeB 0 eq { /xB2 ArmB AngleB cos mul xB1 add def /yB2 ArmB +AngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do ED +ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED +} ifelse } def +/InitNC { /b ED /a ED /NodeSepTypeB ED /NodeSepTypeA ED /NodeSepB ED +/NodeSepA ED /OffsetB ED /OffsetA ED tx@NodeDict a known tx@NodeDict b +known and dup { /NodeA a load def /NodeB b load def NodeA GetCenter /yA +ED /xA ED NodeB GetCenter /yB ED /xB ED } if } def +/LPutLine { 4 copy 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED 1 t sub +mul 3 1 roll 1 t sub mul 4 1 roll t mul add /Y ED t mul add /X ED } def +/LPutLines { mark LPutVar counttomark 2 div 1 sub /n ED t floor dup n gt +{ pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse cvi 2 mul { pop +} repeat LPutLine cleartomark } def +/BezierMidpoint { /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED +/t ED /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3 +mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx +sub def /ay y3 y0 sub cy sub by sub def ax t 3 exp mul bx t t mul mul +add cx t mul add x0 add ay t 3 exp mul by t t mul mul add cy t mul add +y0 add 3 ay t t mul mul mul 2 by t mul mul add cy add 3 ax t t mul mul +mul 2 bx t mul mul add cx add atan /NAngle ED /Y ED /X ED } def +/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def +} def +/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def +/NAngle yyB yyA sub xxB xxA sub Atan def } def +/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def +/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def +} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit +} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd +} def +/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def +} def +/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def +/NAngle yyB yyA sub xxB xxA sub Atan def } def +/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def +/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def +} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check { +exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark +VPosEnd } def +/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2 +roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx +def grestore exec /LPutVar /SaveLPutVar load def } def +/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def +GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos { +LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos { +LPutVar VPutLine } def LPutVar } def +/NCLine { NCCoor tx@Dict begin ArrowA CP 4 2 roll ArrowB lineto pop pop +end } def +/NCLines { false NArray n 0 eq { NCLine } { 2 copy yA sub exch xA sub +Atan /AngleA ED n 2 mul dup index exch index yB sub exch xB sub Atan +/AngleB ED GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1 +yA1 ] cvx def mark LPutVar tx@Dict begin false Line end /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +ifelse } def +/NCCurve { GetEdgeA GetEdgeB xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1 +roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA +GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict +begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ] +cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines +} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def +/NCAngles { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate +def xA2 yA2 mtrx transform pop xB2 yB2 mtrx transform exch pop mtrx +itransform /y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA2 +yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end /LPutVar [ xB1 +yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { LPutLines } def +/HPutPos { HPutLines } def /VPutPos { VPutLines } def } def +/NCAngle { GetEdgeA GetEdgeB GetArmB /mtrx AngleA matrix rotate def xB2 +yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform +/y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA1 yA1 +tx@Dict begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ] +cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +/NCBar { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate def +xA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrx +transform 3 -1 roll 0 gt { /yB2 exch yB2 add def /xB2 exch xB2 add def } +{ /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse mark ArmB +0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict +begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx +def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +/NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } if +xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end +/LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +def +/NCDiagg { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED +GetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin +false Line end /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +def +/NCLoop { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate +def xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2 +mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3 +mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 +xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false +Line end /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ] +cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +% DG/SR modification begin - May 9, 1997 - Patch 1 +%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r +%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add +%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 +%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED +/NCCircle { NodeSepA 0 NodeA 0 GetEdge pop 2 div dup 2 exp r +r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add +exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 +mul add dup 5 1 roll 90 sub PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED +% DG/SR modification end +} def /HPutPos { LPutPos } def /VPutPos { LPutPos } def r AngleA 90 sub a add +AngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 r +Div def /y ED /x ED } def +/NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB +180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cos +mul neg def /hx h AngleB sin mul neg def /hy h AngleB cos mul def +/LPutVar [ xA1 hx add yA1 hy add xB1 hx add yB1 hy add xB1 dx add yB1 dy +add xA1 dx add yA1 dy add ] cvx def /LPutPos { LPutLines } def /HPutPos +{ xB yB xA yA LPutLine } def /VPutPos { HPutPos } def mark LPutVar +tx@Dict begin false Polygon end } def +/NCArcBox { /l ED neg /d ED /h ED /a ED /AngleA yB yA sub xB xA sub Atan +def /AngleB AngleA 180 add def /tA AngleA a sub 90 add def /tB tA a 2 +mul add def /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def +/x0 xA r tA cos mul add def /y0 yA r tA sin mul add def /c 57.2958 r div +def /AngleA AngleA a sub 180 add def /AngleB AngleB a add 180 add def +GetEdgeA GetEdgeB /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul +sub def /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def l 0 +eq { x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn } +{ x0 y0 translate /tA AngleA l c mul add def /tB AngleB l c mul sub def +0 0 r h add tA tB arc r h add AngleB PtoC r d add AngleB PtoC 2 copy 6 2 +roll l arcto 4 { pop } repeat r d add tB PtoC l arcto 4 { pop } repeat 0 +0 r d add tB tA arcn r d add AngleA PtoC r h add AngleA PtoC 2 copy 6 2 +roll l arcto 4 { pop } repeat r h add tA PtoC l arcto 4 { pop } repeat } +ifelse closepath /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def /LPutPos +{ LPutVar /d ED /h ED /AngleB ED /AngleA ED /r ED /y0 ED /x0 ED t 1 le { +r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC } +{ t 2 lt { /NAngle AngleB 180 add def r 2 t sub h mul t 1 sub d mul add +add AngleB PtoC } { t 3 lt { r d add AngleB 3 t sub mul AngleA 2 t sub +mul add dup 90 sub /NAngle ED PtoC } { /NAngle AngleA 180 add def r 4 t +sub d mul t 3 sub h mul add add AngleA PtoC } ifelse } ifelse } ifelse +y0 add /Y ED x0 add /X ED } def /HPutPos { LPutPos } def /VPutPos { +LPutPos } def } def +/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB +sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1 +ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB +w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos +{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop } +{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine } +def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin +/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def +/LPutCoor { NAngle tx@Dict begin /NAngle ED end gsave CM STV CP Y sub neg +exch X sub neg exch moveto setmatrix CP grestore } def +/LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0 +def } ifelse LPutCoor } def +/HPutAdjust { Sin Cos mul 0 eq { 0 } { d Cos mul Sin div flag not { neg } +if h Cos mul Sin div flag { neg } if 2 copy gt { pop } { exch pop } +ifelse } ifelse s add flag { r add neg } { l add } ifelse X add /X ED } +def +/VPutAdjust { Sin Cos mul 0 eq { 0 } { l Sin mul Cos div flag { neg } if +r Sin mul Cos div flag not { neg } if 2 copy gt { pop } { exch pop } +ifelse } ifelse s add flag { d add } { h add neg } ifelse Y add /Y ED } +def +end +% END pst-node.pro + +%%EndProcSet +%%BeginProcSet: 3D.pro 0 0 +%version 31 octobre 2003 +% +/tx@3DDict 100 dict def +tx@3DDict begin +/Cube{% + /XA M11 A mul M12 B mul add M13 C mul add CX add def + /YA M21 A mul M22 B mul add M23 C mul add CY add def + /ZA M31 A mul M32 B mul add M33 C mul add CZ add def + /XB M11 A mul neg M12 B mul add M13 C mul add CX add def + /YB M21 A mul neg M22 B mul add M23 C mul add CY add def + /ZB M31 A mul neg M32 B mul add M33 C mul add CZ add def + /XC M11 A mul neg M12 B mul neg add M13 C mul add CX add def + /YC M21 A mul neg M22 B mul neg add M23 C mul add CY add def + /ZC M31 A mul neg M32 B mul neg add M33 C mul add CZ add def + /XD M11 A mul M12 B mul neg add M13 C mul add CX add def + /YD M21 A mul M22 B mul neg add M23 C mul add CY add def + /ZD M31 A mul M32 B mul neg add M33 C mul add CZ add def + /XE M11 A mul M12 B mul add M13 C mul sub CX add def + /YE M21 A mul M22 B mul add M23 C mul sub CY add def + /ZE M31 A mul M32 B mul add M33 C mul sub CZ add def + /XF M11 A mul neg M12 B mul add M13 C mul sub CX add def + /YF M21 A mul neg M22 B mul add M23 C mul sub CY add def + /ZF M31 A mul neg M32 B mul add M33 C mul sub CZ add def + /XG M11 A mul neg M12 B mul sub M13 C mul sub CX add def + /YG M21 A mul neg M22 B mul sub M23 C mul sub CY add def + /ZG M31 A mul neg M32 B mul sub M33 C mul sub CZ add def + /XH M11 A mul M12 B mul sub M13 C mul sub CX add def + /YH M21 A mul M22 B mul sub M23 C mul sub CY add def + /ZH M31 A mul M32 B mul sub M33 C mul sub CZ add def +% Centres des faces : condition de visibilité +% FACE 1 +% OC1 + /XC1 M13 C mul CX add def + /YC1 M23 C mul CY add def + /ZC1 M33 C mul CZ add def +% Normale à la face 1 + /NX1 M13 C mul def + /NY1 M23 C mul def + /NZ1 M33 C mul def +% rayon vers point de vue + /RXvue1 XC1 XpointVue sub def + /RYvue1 YC1 YpointVue sub def + /RZvue1 ZC1 ZpointVue sub def +% produit scalaire + /PS1 RXvue1 NX1 mul RYvue1 NY1 mul add RZvue1 NZ1 mul add def +% FACE 2 +% OC2 + /XC2 M11 A mul CX add def + /YC2 M21 A mul CY add def + /ZC2 M31 A mul CZ add def +% normale à la face 2 + /NX2 M11 A mul def + /NY2 M21 A mul def + /NZ2 M31 A mul def +% rayon vers point de vue + /RXvue2 XC2 XpointVue sub def + /RYvue2 YC2 YpointVue sub def + /RZvue2 ZC2 ZpointVue sub def +% produit scalaire + /PS2 RXvue2 NX2 mul RYvue2 NY2 mul add RZvue2 NZ2 mul add def +% FACE 3 +% OC3 + /XC3 M13 C neg mul CX add def + /YC3 M23 C neg mul CY add def + /ZC3 M33 C neg mul CZ add def +% normale à la face 3 + /NX3 M13 C neg mul def + /NY3 M23 C neg mul def + /NZ3 M33 C neg mul def +% rayon vers point de vue + /RXvue3 XC3 XpointVue sub def + /RYvue3 YC3 YpointVue sub def + /RZvue3 ZC3 ZpointVue sub def +% produit scalaire + /PS3 RXvue3 NX3 mul RYvue3 NY3 mul add RZvue3 NZ3 mul add def +% FACE 4 +% OC4 + /XC4 M11 A neg mul CX add def + /YC4 M21 A neg mul CY add def + /ZC4 M31 A neg mul CZ add def +% normale à la face 4 + /NX4 M11 A neg mul def + /NY4 M21 A neg mul def + /NZ4 M31 A neg mul def +% rayon vers point de vue + /RXvue4 XC4 XpointVue sub def + /RYvue4 YC4 YpointVue sub def + /RZvue4 ZC4 ZpointVue sub def +% produit scalaire + /PS4 RXvue4 NX4 mul RYvue4 NY4 mul add RZvue4 NZ4 mul add def +% FACE 5 +% OC5 + /XC5 M12 B neg mul CX add def + /YC5 M22 B neg mul CY add def + /ZC5 M32 B neg mul CZ add def +% normale à la face 5 + /NX5 M12 B neg mul def + /NY5 M22 B neg mul def + /NZ5 M32 B neg mul def +% rayon vers point de vue + /RXvue5 XC5 XpointVue sub def + /RYvue5 YC5 YpointVue sub def + /RZvue5 ZC5 ZpointVue sub def +% produit scalaire + /PS5 RXvue5 NX5 mul RYvue5 NY5 mul add RZvue5 NZ5 mul add def +% FACE 6 +% OC6 + /XC6 M12 B mul CX add def + /YC6 M22 B mul CY add def + /ZC6 M32 B mul CZ add def +% normale à la face 6 + /NX6 M12 B mul def + /NY6 M22 B mul def + /NZ6 M32 B mul def +% rayon vers point de vue + /RXvue6 XC6 XpointVue sub def + /RYvue6 YC6 YpointVue sub def + /RZvue6 ZC6 ZpointVue sub def +% produit scalaire + /PS6 RXvue6 NX6 mul RYvue6 NY6 mul add RZvue6 NZ6 mul add def +% faceOne +PS1 0 Condition { % +reduction reduction scale +1 setlinejoin +newpath + /Yordonnee YA def + /Zcote ZA def + /Xabscisse XA def + CalcCoordinates + moveto + /Zcote ZB def + /Xabscisse XB def + /Yordonnee YB def + CalcCoordinates + lineto + /Zcote ZC def + /Xabscisse XC def + /Yordonnee YC def + CalcCoordinates + lineto + /Zcote ZD def + /Xabscisse XD def + /Yordonnee YD def + CalcCoordinates + lineto + /Zcote ZA def + /Xabscisse XA def + /Yordonnee YA def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceOne setrgbcolor +fill +grestore +stroke +} if +% faceTwo +PS2 0 Condition{ % +reduction reduction scale +1 setlinejoin +newpath + /Xabscisse XA def + /Yordonnee YA def + /Zcote ZA def + CalcCoordinates + moveto + /Zcote ZD def + /Xabscisse XD def + /Yordonnee YD def + CalcCoordinates + lineto + /Zcote ZH def + /Xabscisse XH def + /Yordonnee YH def + CalcCoordinates + lineto + /Zcote ZE def + /Xabscisse XE def + /Yordonnee YE def + CalcCoordinates + lineto + /Zcote ZA def + /Xabscisse XA def + /Yordonnee YA def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceTwo setrgbcolor +fill +grestore +stroke +} if +% face three +PS3 0 Condition{ % +reduction reduction scale +1 setlinejoin +newpath + /Xabscisse XE def + /Yordonnee YE def + /Zcote ZE def + CalcCoordinates + moveto + /Zcote ZF def + /Xabscisse XF def + /Yordonnee YF def + CalcCoordinates + lineto + /Zcote ZG def + /Xabscisse XG def + /Yordonnee YG def + CalcCoordinates + lineto + /Zcote ZH def + /Xabscisse XH def + /Yordonnee YH def + CalcCoordinates + lineto + /Zcote ZE def + /Xabscisse XE def + /Yordonnee YE def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceThree setrgbcolor +fill +grestore +stroke +} if +% face four +PS4 0 Condition{ % +reduction reduction scale +1 setlinejoin +newpath + /Xabscisse XB def + /Yordonnee YB def + /Zcote ZB def + CalcCoordinates + moveto + /Zcote ZF def + /Xabscisse XF def + /Yordonnee YF def + CalcCoordinates + lineto + /Zcote ZG def + /Xabscisse XG def + /Yordonnee YG def + CalcCoordinates + lineto + /Zcote ZC def + /Xabscisse XC def + /Yordonnee YC def + CalcCoordinates + lineto + /Zcote ZB def + /Xabscisse XB def + /Yordonnee YB def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceFour setrgbcolor +fill +grestore +stroke +} if +% face five +PS5 0 Condition{ % +reduction reduction scale +1 setlinejoin +newpath + /Xabscisse XC def + /Yordonnee YC def + /Zcote ZC def + CalcCoordinates + moveto + /Zcote ZD def + /Xabscisse XD def + /Yordonnee YD def + CalcCoordinates + lineto + /Zcote ZH def + /Xabscisse XH def + /Yordonnee YH def + CalcCoordinates + lineto + /Zcote ZG def + /Xabscisse XG def + /Yordonnee YG def + CalcCoordinates + lineto + /Zcote ZC def + /Xabscisse XC def + /Yordonnee YC def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceFive setrgbcolor +fill +grestore +stroke +} if +% face six +PS6 0 Condition{ % +reduction reduction scale +1 setlinejoin +newpath + /Xabscisse XB def + /Yordonnee YB def + /Zcote ZB def + CalcCoordinates + moveto + /Zcote ZA def + /Xabscisse XA def + /Yordonnee YA def + CalcCoordinates + lineto + /Zcote ZE def + /Xabscisse XE def + /Yordonnee YE def + CalcCoordinates + lineto + /Zcote ZF def + /Xabscisse XF def + /Yordonnee YF def + CalcCoordinates + lineto + /Zcote ZB def + /Xabscisse XB def + /Yordonnee YB def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceSix setrgbcolor +fill +grestore +stroke +} if +} +def +% +/PointsDie{% +PS6 0 Condition{ % +reduction reduction scale +A 2 div neg A A 2 div { + /XCpoint exch def +C 2 div neg C C 2 div { + /ZCpoint exch def +newpath + /Zpoint Rpoint ZCpoint add def + /Xpoint XCpoint def + /Ypoint B def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Zpoint Rpoint Angle cos mul ZCpoint add def + /Xpoint Rpoint Angle sin mul XCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill + } for + } for + } if +PS5 0 Condition{ % +reduction reduction scale +newpath + /Ypoint B neg def + /XCpoint A 2 div neg def + /ZCpoint C 2 div def + /Xpoint Rpoint XCpoint add def + /Zpoint ZCpoint def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint Rpoint Angle cos mul XCpoint add def + /Zpoint Rpoint Angle sin mul ZCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +% +newpath + /XCpoint A 2 div def + /ZCpoint C 2 div neg def + /Xpoint Rpoint XCpoint add def + /Zpoint ZCpoint def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint Rpoint Angle cos mul XCpoint add def + /Zpoint Rpoint Angle sin mul ZCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +% +newpath + /XCpoint 0 def + /ZCpoint 0 def + /Xpoint Rpoint XCpoint add def + /Zpoint ZCpoint def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint Rpoint Angle cos mul XCpoint add def + /Zpoint Rpoint Angle sin mul ZCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +} if +PS4 0 Condition{ % +reduction reduction scale +C 2 div neg C C 2 div { + /ZCpoint exch def +B 2 div neg B B 2 div { + /YCpoint exch def +newpath + /Zpoint Rpoint ZCpoint add def + /Ypoint YCpoint def + /Xpoint A neg def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Zpoint Rpoint Angle cos mul ZCpoint add def + /Ypoint Rpoint Angle sin mul YCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill + } for + } for +% le point du milieu +newpath + /Zpoint Rpoint def + /Ypoint 0 def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Zpoint Rpoint Angle cos mul def + /Ypoint Rpoint Angle sin mul def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +} if +PS3 0 Condition{ % +reduction reduction scale +A 2 div neg A A 2 div { + /XCpoint exch def +B 2 div neg B 2 div B 2 div { + /YCpoint exch def +newpath + /Xpoint Rpoint XCpoint add def + /Ypoint YCpoint def + /Zpoint C neg def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint Rpoint Angle cos mul XCpoint add def + /Ypoint Rpoint Angle sin mul YCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill + } for + } for +} if +PS2 0 Condition{ % +reduction reduction scale +newpath + /Xpoint A def + /Ypoint Rpoint B 2 div add def + /Zpoint C 2 div neg def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Ypoint Rpoint Angle cos mul B 2 div add def + /Zpoint Rpoint Angle sin mul C 2 div sub def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +newpath + /Xpoint A def + /Ypoint Rpoint B 2 div sub def + /Zpoint C 2 div def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint A def + /Ypoint Rpoint Angle cos mul B 2 div sub def + /Zpoint Rpoint Angle sin mul A 2 div add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +} if +PS1 0 Condition{ % +reduction reduction scale +newpath + /Xpoint Rpoint def + /Ypoint 0 def + /Zpoint C def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint Rpoint Angle cos mul def + /Ypoint Rpoint Angle sin mul def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +} if +} def +% +/CalcCoordinates{% + formulesTroisD + Xi 28.45 mul Yi 28.45 mul + } + def +% pour la 3D conventionnelle +/formulesTroisD{% + /xObservateur Xabscisse Sin1 mul neg Yordonnee Cos1 mul add def + /yObservateur Xabscisse Cos1Sin2 mul neg Yordonnee Sin1Sin2 mul sub Zcote Cos2 mul add def + /zObservateur Xabscisse neg Cos1Cos2 mul Yordonnee Sin1Cos2 mul sub Zcote Sin2 mul sub Dobs add def + /Xi DScreen xObservateur mul zObservateur div def + /Yi DScreen yObservateur mul zObservateur div def + } +def +% +/CalculsPointsAfterTransformations{% + /Xabscisse M11 Xpoint mul M12 Ypoint mul add M13 Zpoint mul add CX add def + /Yordonnee M21 Xpoint mul M22 Ypoint mul add M23 Zpoint mul add CY add def + /Zcote M31 Xpoint mul M32 Ypoint mul add M33 Zpoint mul add CZ add def + } +def +% +/SommetsTetraedre{% + /xA RayonBaseTetraedre neg def + /yA 0 def + /zA 0 def + /xB 0.5 RayonBaseTetraedre mul def + /yB RayonBaseTetraedre 0.866 mul neg def + /zB 0 def + /xC xB def + /yC yB neg def + /zC 0 def + /xD 0 def + /yD 0 def + /zD RayonBaseTetraedre 1.414 mul def +% coordonnées centre des faces + /xFaceA xA xB xC add add 3 div def + /yFaceA yA yB yC add add 3 div def + /zFaceA zA zB zC add add 3 div def + /xFaceB xD xA xB add add 3 div def + /yFaceB yD yA yB add add 3 div def + /zFaceB zD zA zB add add 3 div def + /xFaceC xA xD xC add add 3 div def + /yFaceC yA yD yC add add 3 div def + /zFaceC zA zD zC add add 3 div def + /xFaceD xD xB xC add add 3 div def + /yFaceD yD yB yC add add 3 div def + /zFaceD zD zB zC add add 3 div def +% sommets après rotation et translation + /XA M11 xA mul M12 yA mul add M13 zA mul add CX add def + /YA M21 xA mul M22 yA mul add M23 zA mul add CY add def + /ZA M31 xA mul M32 yA mul add M33 zA mul add CZ add def + /XB M11 xB mul M12 yB mul add M13 zB mul add CX add def + /YB M21 xB mul M22 yB mul add M23 zB mul add CY add def + /ZB M31 xB mul M32 yB mul add M33 zB mul add CZ add def + /XC M11 xC mul M12 yC mul add M13 zC mul add CX add def + /YC M21 xC mul M22 yC mul add M23 zC mul add CY add def + /ZC M31 xC mul M32 yC mul add M33 zC mul add CZ add def + /XD M11 xD mul M12 yD mul add M13 zD mul add CX add def + /YD M21 xD mul M22 yD mul add M23 zD mul add CY add def + /ZD M31 xD mul M32 yD mul add M33 zD mul add CZ add def +% centres de faces après transformations + /XFaceA M11 xFaceA mul M12 yFaceA mul add M13 zFaceA mul add CX add def + /YFaceA M21 xFaceA mul M22 yFaceA mul add M23 zFaceA mul add CY add def + /ZFaceA M31 xFaceA mul M32 yFaceA mul add M33 zFaceA mul add CZ add def + /XFaceB M11 xFaceB mul M12 yFaceB mul add M13 zFaceB mul add CX add def + /YFaceB M21 xFaceB mul M22 yFaceB mul add M23 zFaceB mul add CY add def + /ZFaceB M31 xFaceB mul M32 yFaceB mul add M33 zFaceB mul add CZ add def + /XFaceC M11 xFaceC mul M12 yFaceC mul add M13 zFaceC mul add CX add def + /YFaceC M21 xFaceC mul M22 yFaceC mul add M23 zFaceC mul add CY add def + /ZFaceC M31 xFaceC mul M32 yFaceC mul add M33 zFaceC mul add CZ add def + /XFaceD M11 xFaceD mul M12 yFaceD mul add M13 zFaceD mul add CX add def + /YFaceD M21 xFaceD mul M22 yFaceD mul add M23 zFaceD mul add CY add def + /ZFaceD M31 xFaceD mul M32 yFaceD mul add M33 zFaceD mul add CZ add def +% Normales aux faces + /NxA XFaceA XD sub def + /NyA YFaceA YD sub def + /NzA ZFaceA ZD sub def + /NxB XFaceB XC sub def + /NyB YFaceB YC sub def + /NzB ZFaceB ZC sub def + /NxC XFaceC XB sub def + /NyC YFaceC YB sub def + /NzC ZFaceC ZB sub def + /NxD XFaceD XA sub def + /NyD YFaceD YA sub def + /NzD ZFaceD ZA sub def +% Conditions de visibilité +% rayon vers point de vue + /RXvueA XFaceA XpointVue sub def + /RYvueA YFaceA YpointVue sub def + /RZvueA ZFaceA ZpointVue sub def + /RXvueB XFaceB XpointVue sub def + /RYvueB YFaceB YpointVue sub def + /RZvueB ZFaceB ZpointVue sub def + /RXvueC XFaceC XpointVue sub def + /RYvueC YFaceC YpointVue sub def + /RZvueC ZFaceC ZpointVue sub def + /RXvueD XFaceD XpointVue sub def + /RYvueD YFaceD YpointVue sub def + /RZvueD ZFaceD ZpointVue sub def +% produit scalaire + /PSA RXvueA NxA mul RYvueA NyA mul add RZvueA NzA mul add def + /PSB RXvueB NxB mul RYvueB NyB mul add RZvueB NzB mul add def + /PSC RXvueC NxC mul RYvueC NyC mul add RZvueC NzC mul add def + /PSD RXvueD NxD mul RYvueD NyD mul add RZvueD NzD mul add def + } + def +/Tetraedre{% +SommetsTetraedre +% face ABC + PSA 0 le { % +reduction reduction scale +1 setlinejoin + /Xabscisse XA def + /Yordonnee YA def + /Zcote ZA def + CalcCoordinates + moveto + /Xabscisse XB def + /Yordonnee YB def + /Zcote ZB def + CalcCoordinates + lineto + /Xabscisse XC def + /Yordonnee YC def + /Zcote ZC def + CalcCoordinates + lineto + /Xabscisse XA def + /Yordonnee YA def + /Zcote ZA def + CalcCoordinates + lineto +} if +% face DAB + PSB 0 le { % +reduction reduction scale +1 setlinejoin + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + moveto + /Xabscisse XA def + /Yordonnee YA def + /Zcote ZA def + CalcCoordinates + lineto + /Xabscisse XB def + /Yordonnee YB def + /Zcote ZB def + CalcCoordinates + lineto + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + lineto +} if +% face DAC +PSC 0 le { % +reduction reduction scale +1 setlinejoin + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + moveto + /Xabscisse XA def + /Yordonnee YA def + /Zcote ZA def + CalcCoordinates + lineto + /Xabscisse XC def + /Yordonnee YC def + /Zcote ZC def + CalcCoordinates + lineto + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + lineto +} if +% face DBC + PSD 0 le { % +reduction reduction scale +1 setlinejoin + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + moveto + /Xabscisse XB def + /Yordonnee YB def + /Zcote ZB def + CalcCoordinates + lineto + /Xabscisse XC def + /Yordonnee YC def + /Zcote ZC def + CalcCoordinates + lineto + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + lineto +} if +} +def +% +/SommetsPyramide{% + /xA A def + /yA A neg def + /zA 0 def + /xB A def + /yB A def + /zB 0 def + /xC A neg def + /yC A def + /zC 0 def + /xD A neg def + /yD A neg def + /zD 0 def + /xS 0 def + /yS 0 def + /zS Hpyramide def +% coordonnées centre des faces + /Alpha A Hpyramide atan def + /xFaceSAB Hpyramide Alpha dup sin exch cos mul mul def + /yFaceSAB 0 def + /zFaceSAB Hpyramide Alpha sin dup mul mul def + /xFaceSBC 0 def + /yFaceSBC xFaceSAB def + /zFaceSBC zFaceSAB fracHeight mul def + /xFaceSCD xFaceSAB neg def + /yFaceSCD 0 def + /zFaceSCD zFaceSAB fracHeight mul def + /xFaceSDA 0 def + /yFaceSDA xFaceSAB neg def + /zFaceSDA zFaceSAB fracHeight mul def +% sommets après rotation et translation + /XA M11 xA mul M12 yA mul add M13 zA mul add CX add def + /YA M21 xA mul M22 yA mul add M23 zA mul add CY add def + /ZA M31 xA mul M32 yA mul add M33 zA mul add CZ add def + /XB M11 xB mul M12 yB mul add M13 zB mul add CX add def + /YB M21 xB mul M22 yB mul add M23 zB mul add CY add def + /ZB M31 xB mul M32 yB mul add M33 zB mul add CZ add def + /XC M11 xC mul M12 yC mul add M13 zC mul add CX add def + /YC M21 xC mul M22 yC mul add M23 zC mul add CY add def + /ZC M31 xC mul M32 yC mul add M33 zC mul add CZ add def + /XD M11 xD mul M12 yD mul add M13 zD mul add CX add def + /YD M21 xD mul M22 yD mul add M23 zD mul add CY add def + /ZD M31 xD mul M32 yD mul add M33 zD mul add CZ add def + /XS M11 xS mul M12 yS mul add M13 zS mul add CX add def + /YS M21 xS mul M22 yS mul add M23 zS mul add CY add def + /ZS M31 xS mul M32 yS mul add M33 zS mul add CZ add def +% centres de faces après transformations + /XFaceSAB M11 xFaceSAB mul M12 yFaceSAB mul add M13 zFaceSAB mul add CX add def + /YFaceSAB M21 xFaceSAB mul M22 yFaceSAB mul add M23 zFaceSAB mul add CY add def + /ZFaceSAB M31 xFaceSAB mul M32 yFaceSAB mul add M33 zFaceSAB mul add CZ add def + /XFaceSBC M11 xFaceSBC mul M12 yFaceSBC mul add M13 zFaceSBC mul add CX add def + /YFaceSBC M21 xFaceSBC mul M22 yFaceSBC mul add M23 zFaceSBC mul add CY add def + /ZFaceSBC M31 xFaceSBC mul M32 yFaceSBC mul add M33 zFaceSBC mul add CZ add def + /XFaceSCD M11 xFaceSCD mul M12 yFaceSCD mul add M13 zFaceSCD mul add CX add def + /YFaceSCD M21 xFaceSCD mul M22 yFaceSCD mul add M23 zFaceSCD mul add CY add def + /ZFaceSCD M31 xFaceSCD mul M32 yFaceSCD mul add M33 zFaceSCD mul add CZ add def + /XFaceSDA M11 xFaceSDA mul M12 yFaceSDA mul add M13 zFaceSDA mul add CX add def + /YFaceSDA M21 xFaceSDA mul M22 yFaceSDA mul add M23 zFaceSDA mul add CY add def + /ZFaceSDA M31 xFaceSDA mul M32 yFaceSDA mul add M33 zFaceSDA mul add CZ add def +% Normales aux faces + /NxSAB XFaceSAB CX sub def + /NySAB YFaceSAB CY sub def + /NzSAB ZFaceSAB CZ sub def + /NxSBC XFaceSBC CX sub def + /NySBC YFaceSBC CY sub def + /NzSBC ZFaceSBC CZ sub def + /NxSCD XFaceSCD CX sub def + /NySCD YFaceSCD CY sub def + /NzSCD ZFaceSCD CZ sub def + /NxSDA XFaceSDA CX sub def + /NySDA YFaceSDA CY sub def + /NzSDA ZFaceSDA CZ sub def + /NxABCD CX XS sub def + /NyABCD CY YS sub def + /NzABCD CZ ZS sub def +% Conditions de visibilité +% rayon vers point de vue + /RXvueSAB XFaceSAB XpointVue sub def + /RYvueSAB YFaceSAB YpointVue sub def + /RZvueSAB ZFaceSAB ZpointVue sub def + /RXvueSBC XFaceSBC XpointVue sub def + /RYvueSBC YFaceSBC YpointVue sub def + /RZvueSBC ZFaceSBC ZpointVue sub def + /RXvueSCD XFaceSCD XpointVue sub def + /RYvueSCD YFaceSCD YpointVue sub def + /RZvueSCD ZFaceSCD ZpointVue sub def + /RXvueSDA XFaceSDA XpointVue sub def + /RYvueSDA YFaceSDA YpointVue sub def + /RZvueSDA ZFaceSDA ZpointVue sub def + /RXvueABCD CX XpointVue sub def + /RYvueABCD CY YpointVue sub def + /RZvueABCD CZ ZpointVue sub def + /PSAB RXvueSAB NxSAB mul RYvueSAB NySAB mul add RZvueSAB NzSAB mul add def + /PSBC RXvueSBC NxSBC mul RYvueSBC NySBC mul add RZvueSBC NzSBC mul add def + /PSCD RXvueSCD NxSCD mul RYvueSCD NySCD mul add RZvueSCD NzSCD mul add def + /PSDA RXvueSDA NxSDA mul RYvueSDA NySDA mul add RZvueSDA NzSDA mul add def + /PSABCD RXvueABCD NxABCD mul RYvueABCD NyABCD mul add RZvueABCD NzABCD mul add def + } + def +% +/MaillageSphere { +0 increment 360 increment sub {% + /theta exch def +departPhi increment 90 increment sub {% + /phi exch def +% newpath + /Xpoint Rsphere theta cos mul phi cos mul def + /Ypoint Rsphere theta sin mul phi cos mul def + /Zpoint Rsphere phi sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + moveto +% Centre de la facette + /Xpoint Rsphere theta increment 2 div add cos mul phi increment 2 div add cos mul def + /Ypoint Rsphere theta increment 2 div add sin mul phi increment 2 div add cos mul def + /Zpoint Rsphere phi increment 2 div add sin mul def +CalculsPointsAfterTransformations + /xCentreFacette Xabscisse def + /yCentreFacette Yordonnee def + /zCentreFacette Zcote def +% normale à la facette + /nXfacette xCentreFacette CX sub def + /nYfacette yCentreFacette CY sub def + /nZfacette zCentreFacette CZ sub def +% rayon vers point de vue + /RXvue xCentreFacette XpointVue sub def + /RYvue yCentreFacette YpointVue sub def + /RZvue zCentreFacette ZpointVue sub def +% test de visibilité + /PSfacette RXvue nXfacette mul + RYvue nYfacette mul add + RZvue nZfacette mul add + def +condition { +theta 1 theta increment add {% + /theta1 exch def + /Xpoint Rsphere theta1 cos mul phi cos mul def + /Ypoint Rsphere theta1 sin mul phi cos mul def + /Zpoint Rsphere phi sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +phi 1 phi increment add { + /phi1 exch def + /Xpoint Rsphere theta increment add cos mul phi1 cos mul def + /Ypoint Rsphere theta increment add sin mul phi1 cos mul def + /Zpoint Rsphere phi1 sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +theta increment add -1 theta {% + /theta1 exch def + /Xpoint Rsphere theta1 cos mul phi increment add cos mul def + /Ypoint Rsphere theta1 sin mul phi increment add cos mul def + /Zpoint Rsphere phi increment add sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +phi increment add -1 phi { + /phi1 exch def + /Xpoint Rsphere theta cos mul phi1 cos mul def + /Ypoint Rsphere theta sin mul phi1 cos mul def + /Zpoint Rsphere phi1 sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +} if +} for +} for +} def +% +/CylinderThreeD{ +reduction reduction scale +1 setlinejoin +0 incrementANGLE 360 {% + /theta exch def + 0 incrementHAUTEUR Hcylindre incrementHAUTEUR sub {% + /H exch def +% newpath + /X1 Rcylindre theta cos mul def + /Y1 Rcylindre theta sin mul def + /Z1 H def + /Xpoint X1 def + /Ypoint Y1 def + /Zpoint Z1 def +CalculsPointsAfterTransformations + /Xfacette Xabscisse def + /Yfacette Yordonnee def + /Zfacette Zcote def + CalcCoordinates + moveto +% coordonnées du centre de la facette + /Xpoint Rcylindre theta incrementANGLE 2 div add cos mul def + /Ypoint Rcylindre theta incrementANGLE 2 div add sin mul def + /Zpoint H incrementHAUTEUR 2 div add def +CalculsPointsAfterTransformations +% Point sur l'axe du cylindre +% à la même hauteur que M1 + /Zpoint Z1 def + /Xpoint 0 def + /Ypoint 0 def +CalculsPointsAfterTransformations +% normale à la facette + /nXfacette Xfacette Xabscisse sub def + /nYfacette Yfacette Yordonnee sub def + /nZfacette Zfacette Zcote sub def +% rayon vers point de vue + /RXvue Xfacette XpointVue sub def + /RYvue Yfacette YpointVue sub def + /RZvue Zfacette ZpointVue sub def +% test de visibilité + /PSfacette nXfacette RXvue mul + nYfacette RYvue mul add + nZfacette RZvue mul add + def +PSfacette 0 le { +theta 1 theta incrementANGLE add {% + /theta1 exch def + /Xpoint Rcylindre theta1 cos mul def + /Ypoint Rcylindre theta1 sin mul def + /Zpoint H def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +H 1 H incrementHAUTEUR add { + /H1 exch def + /Xpoint Rcylindre theta incrementANGLE add cos mul def + /Ypoint Rcylindre theta incrementANGLE add sin mul def + /Zpoint H1 def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +theta incrementANGLE add -1 theta {% + /theta1 exch def + /Xpoint Rcylindre theta1 cos mul def + /Ypoint Rcylindre theta1 sin mul def + /Zpoint H incrementHAUTEUR add def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +H incrementHAUTEUR add -1 H { + /H1 exch def + /Xpoint Rcylindre theta cos mul def + /Ypoint Rcylindre theta sin mul def + /Zpoint H1 def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +} if +} for +} for +% Face supérieure +% centre de la face supérieure + /Xpoint 0 def + /Zpoint Hcylindre def + /Ypoint 0 def +CalculsPointsAfterTransformations + /CxFaceSup Xabscisse def + /CyFaceSup Yordonnee def + /CzFaceSup Zcote def +% centre de la face inférieure + /CxFaceInf CX def + /CyFaceInf CY def + /CzFaceInf CZ def +% Normale à la face supérieure + /nXFaceSup CxFaceSup CxFaceInf sub def + /nYFaceSup CyFaceSup CyFaceInf sub def + /nZFaceSup CzFaceSup CzFaceInf sub def +% rayon vers point de vue verd la face inférieure + /RXvueInf CxFaceInf XpointVue sub def + /RYvueInf CyFaceInf YpointVue sub def + /RZvueInf CzFaceInf ZpointVue sub def +% rayon vers point de vue verd la face supérieure + /RXvueSup CxFaceSup XpointVue sub def + /RYvueSup CyFaceSup YpointVue sub def + /RZvueSup CzFaceSup ZpointVue sub def +% Visibilité face supérieure + /PSfaceSup RXvueSup nXFaceSup mul + RYvueSup nYFaceSup mul add + RZvueSup nZFaceSup mul add def +% Visibilité face inférieure + /PSfaceInf RXvueInf nXFaceSup neg mul + RYvueInf nYFaceSup mul sub + RZvueInf nZFaceSup mul sub def +PSfaceSup 0 le { +/TableauxPoints [ +0 1 359 {% on décrit le cercle + /theta exch def [ + /Xpoint Rcylindre theta cos mul def + /Ypoint Rcylindre theta sin mul def + /Zpoint Hcylindre def +CalculsPointsAfterTransformations + CalcCoordinates ] + } for + ] def +gsave +newpath + TableauxPoints 0 get aload pop moveto +0 1 359 { + /compteur exch def + TableauxPoints compteur get aload pop + lineto } for +0.7 setgray +closepath +fill +grestore + } if +% face inférieure +PSfaceInf 0 le { +/TableauxPoints [ +0 1 359 {% on décrit le cercle + /theta exch def [ + /Xpoint Rcylindre theta cos mul def + /Ypoint Rcylindre theta sin mul def + /Zpoint 0 def +CalculsPointsAfterTransformations + CalcCoordinates ] + } for + ] def +gsave +newpath + TableauxPoints 0 get aload pop moveto + 0 1 359 { + /compteur exch def + TableauxPoints compteur get aload pop + lineto } for +0.7 setgray +closepath +fill +grestore + } if + } def +% + % +/ConeThreeD{ + /AngleCone Rcone Hcone atan def + /TanAngleCone AngleCone dup sin exch cos div def + /incrementANGLE 10 def + /incrementHAUTEUR Hcone fracHeight mul 5 div def +1 setlinejoin +newpath +0 incrementANGLE 360 {% + /theta exch def + 0 incrementHAUTEUR Hcone fracHeight mul incrementHAUTEUR sub {% + /H exch def + % normale à la facette + /nXfacette Hcone AngleCone dup sin exch cos mul theta incrementANGLE 2 div add cos mul + mul def + /nYfacette Hcone AngleCone dup sin exch cos mul theta incrementANGLE 2 div add sin mul + mul def + /nZfacette Hcone AngleCone sin dup mul mul def + /Xpoint nXfacette def + /Ypoint nYfacette def + /Zpoint nZfacette def +CalculsPointsAfterTransformations + /nXfacette Xabscisse CX sub def + /nYfacette Yordonnee CY sub def + /nZfacette Zcote CZ sub def +% + /OK Hcone H sub TanAngleCone mul def + /Xpoint OK theta cos mul def + /Ypoint OK theta sin mul def + /Zpoint H def +CalculsPointsAfterTransformations + /Xfacette Xabscisse def + /Yfacette Yordonnee def + /Zfacette Zcote def + CalcCoordinates + moveto +% coordonnées du centre de la facette + /OK Hcone H incrementHAUTEUR 2 div add sub TanAngleCone mul def + /Xpoint OK theta incrementANGLE 2 div add cos mul def + /Ypoint OK theta incrementANGLE 2 div add sin mul def + /Zpoint H incrementHAUTEUR 2 div add def +CalculsPointsAfterTransformations + /XcentreFacette Xabscisse def + /YcentreFacette Yordonnee def + /ZcentreFacette Zcote def +% rayon vers point de vue + /RXvue XcentreFacette XpointVue sub def + /RYvue YcentreFacette YpointVue sub def + /RZvue ZcentreFacette ZpointVue sub def +% test de visibilité + /PSfacette nXfacette RXvue mul + nYfacette RYvue mul add + nZfacette RZvue mul add + def +PSfacette 0 le { +theta 1 theta incrementANGLE add {% + /theta1 exch def + /OK Hcone H sub TanAngleCone mul def + /Xpoint OK theta1 cos mul def + /Ypoint OK theta1 sin mul def + /Zpoint H def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +H 1 H incrementHAUTEUR add { + /H1 exch def + /OK Hcone H1 sub TanAngleCone mul def + /Xpoint OK theta incrementANGLE add cos mul def + /Ypoint OK theta incrementANGLE add sin mul def + /Zpoint H1 def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +theta incrementANGLE add -1 theta {% + /theta1 exch def + /OK Hcone H incrementHAUTEUR add sub TanAngleCone mul def + /Xpoint OK theta1 cos mul def + /Ypoint OK theta1 sin mul def + /Zpoint H incrementHAUTEUR add def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +H incrementHAUTEUR add -1 H { + /H1 exch def + /OK Hcone H1 sub TanAngleCone mul def + /Xpoint OK theta cos mul def + /Ypoint OK theta sin mul def + /Zpoint H1 def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +} if +} for +} for +% centre de la base inférieure après transformations + /CxFaceInf CX def + /CyFaceInf CY def + /CzFaceInf CZ def +% modification du 16/11/2002 +% /Xpoint CxFaceInf def +% /Ypoint CyFaceInf def +% /Zpoint CzFaceInf def + /Xpoint 0 def + /Ypoint 0 def + /Zpoint 0 def +% fin modification du 16/11/2002 +CalculsPointsAfterTransformations + /CxBaseInf Xabscisse def + /CyBaseInf Yordonnee def + /CzBaseInf Zcote def +% centre de la base supérieure avant transformations + /CxFaceSup 0 def + /CyFaceSup 0 def + /CzFaceSup Hcone fracHeight mul def +% Sommet du cone + /Xpoint 0 def + /Ypoint 0 def + /Zpoint Hcone def +CalculsPointsAfterTransformations + /XsommetCone Xabscisse def + /YsommetCone Yordonnee def + /ZsommetCone Zcote def +% Normale extérieure à la base inférieure + /nXBaseInf CxFaceInf XsommetCone sub def + /nYBaseInf CyFaceInf YsommetCone sub def + /nZBaseInf CzFaceInf ZsommetCone sub def +% centre de la base supérieure + /Xpoint CxFaceSup def + /Ypoint CyFaceSup def + /Zpoint CzFaceSup def +CalculsPointsAfterTransformations + /CxBaseSup Xabscisse def + /CyBaseSup Yordonnee def + /CzBaseSup Zcote def +% Normale extérieure à la base supérieure + /nXBaseSup XsommetCone CxFaceSup sub def + /nYBaseSup YsommetCone CyFaceSup sub def + /nZBaseSup ZsommetCone CzFaceSup sub def +% rayon vers point de vue + /RXvueSup CxBaseSup XpointVue sub def + /RYvueSup CyBaseSup YpointVue sub def + /RZvueSup CzBaseSup ZpointVue sub def + /RXvueInf CxBaseInf XpointVue sub def + /RYvueInf CyBaseInf YpointVue sub def + /RZvueInf CzBaseInf ZpointVue sub def +% Visibilité de la base inférieure + /PSbaseInfCone nXBaseInf RXvueInf mul + nYBaseInf RYvueInf mul add + nZBaseInf RZvueInf mul add def +% Visibilité de la base supérieure + /PSbaseSupCone nXBaseSup RXvueSup mul + nYBaseSup RYvueSup mul add + nZBaseSup RZvueSup mul add def +PSbaseInfCone 0 le { +/TableauxPoints [ +0 1 359 {% on décrit le cercle + /theta exch def [ + /Xpoint Rcone theta cos mul def + /Ypoint Rcone theta sin mul def + /Zpoint 0 def +CalculsPointsAfterTransformations + CalcCoordinates ] + } for + ] def +gsave +newpath + TableauxPoints 0 get aload pop moveto +0 1 359 { + /compteur exch def + TableauxPoints compteur get aload pop + lineto } for +0.7 setgray +closepath +fill +grestore + } if +%% PSbaseSupCone 0 le { +%% modifié le 31/10/2003 +%PSbaseSupCone 0 ge { +PSbaseSupCone 0 le { +/TableauxPoints [ +0 1 359 {% on décrit le cercle + /theta exch def [ + /OK Hcone 1 fracHeight sub mul TanAngleCone mul def + /Xpoint OK theta cos mul def + /Ypoint OK theta sin mul def + /Zpoint Hcone fracHeight mul def +CalculsPointsAfterTransformations + CalcCoordinates ] + } for + ] def +gsave +newpath + TableauxPoints 0 get aload pop moveto +0 1 359 { + /compteur exch def + TableauxPoints compteur get aload pop + lineto } for +0.7 setgray +closepath +fill +grestore + } if + } def +/PortionSphere{% + /Xpoint Rsphere psTHETA dTHETA neg add cos mul psPHI dPHI sub cos mul def + /Ypoint Rsphere psTHETA dTHETA neg add sin mul psPHI dPHI sub cos mul def + /Zpoint Rsphere psPHI dPHI sub sin mul def +CalculsPointsAfterTransformations + /xCentreFacette Xabscisse def + /yCentreFacette Yordonnee def + /zCentreFacette Zcote def +% normale à la facette + /nXfacette xCentreFacette CX sub def + /nYfacette yCentreFacette CY sub def + /nZfacette zCentreFacette CZ sub def +% rayon vers point de vue + /RXvue xCentreFacette XpointVue sub def + /RYvue yCentreFacette YpointVue sub def + /RZvue zCentreFacette ZpointVue sub def +% test de visibilité + /PSfacette RXvue nXfacette mul + RYvue nYfacette mul add + RZvue nZfacette mul add + def +PSfacette 0 le { +CalcCoordinates +newpath + moveto +psTHETA dTHETA sub 1 psTHETA dTHETA add { + /Theta exch def + /Xpoint Rsphere Theta cos psPHI dPHI sub cos mul mul def + /Ypoint Rsphere Theta sin psPHI dPHI sub cos mul mul def + /Zpoint Rsphere psPHI dPHI sub sin mul def + CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +psPHI dPHI sub 1 psPHI dPHI add { + /Phi exch def + /Xpoint Rsphere psTHETA dTHETA add cos Phi cos mul mul def + /Ypoint Rsphere psTHETA dTHETA add sin Phi cos mul mul def + /Zpoint Rsphere Phi sin mul def + CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +psTHETA dTHETA add -1 psTHETA dTHETA sub { + /Theta exch def + /Xpoint Rsphere Theta cos psPHI dPHI add cos mul mul def + /Ypoint Rsphere Theta sin psPHI dPHI add cos mul mul def + /Zpoint Rsphere psPHI dPHI add sin mul def + CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +psPHI dPHI add -1 psPHI dPHI sub { + /Phi exch def + /Xpoint Rsphere psTHETA dTHETA sub cos Phi cos mul mul def + /Ypoint Rsphere psTHETA dTHETA sub sin Phi cos mul mul def + /Zpoint Rsphere Phi sin mul def + CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +closepath +} if +} def +end + +%%EndProcSet +%%BeginProcSet: pst-3dplot.pro 0 0 +%% +%% This is file `pst-3dplot.pro', +%% +%% IMPORTANT NOTICE: +%% +%% Package `pst-3dplot.tex' +%% +%% Herbert Voss +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% DESCRIPTION: +%% `pst-3dplot' is a PSTricks package to draw 3d curves and graphical objects +%% +%% +%% version 0.11 / 2004-04-28 Herbert Voss +% +/tx@3DPlotDict 10 dict def +tx@3DPlotDict begin +% +/saveCoor { + /z exch def + /y exch def + /x exch def + /z z dzUnit mul def + /y y dyUnit mul def + /x x dxUnit mul def +} def +% +/ConvertTo2D { + /x2D x neg Alpha cos mul y Alpha sin mul add def + /y2D x Alpha sin mul y Alpha cos mul add neg Beta sin mul z Beta cos mul add def +} def +% +/ConvertToCartesian { + /latitude exch def + /longitude exch def + /Radius exch def + /z Radius latitude sin mul def + /x Radius longitude cos mul latitude cos mul def + /y Radius longitude sin mul latitude cos mul def +} def +% +/SphericalTo2D { + x y z ConvertToCartesian ConvertTo2D +} def +% +/convertStackTo2D { + counttomark + /n exch def /n3 n 3 div cvi def + n3 { + n -3 roll + SphericalCoor { ConvertToCartesian } { saveCoor } ifelse + ConvertTo2D + x2D xUnit y2D yUnit + /n n 1 sub def + } repeat +} def +end + +%%EndProcSet +%%BeginProcSet: pst-grad.pro 0 0 +%! +% PostScript prologue for pst-grad.tex. +% Version 1.04, 2004/06/23 (adding %GradientCircle style - D.G.) +% prepared by Herbert Voss +% For copying restrictions, see pstricks.tex. +% +% For the PSTricks gradient fillstyle.% +% Based on some EPS files by leeweyr!bill@nuchat.sccsi.com (W. R. Lee).% +% Syntax:% D.G. modification begin - Apr. 9, %1998 +%%%%%% R0 G0 B0 R1 G1 B1 NumLines MidPoint Angle GradientFill +% ifGradientCircle GradientScale %GradientPosX GradientPosY +% R0 G0 B0 R1 G1 B1 NumLines MidPoint %Angle GradientFill +% D.G. modification end +% +/tx@GradientDict 40 dict def +tx@GradientDict begin +/GradientFill { + rotate + /MidPoint ED + /NumLines ED + /LastBlue ED + /LastGreen ED + /LastRed ED + /FirstBlue ED + /FirstGreen ED +/FirstRed ED +% D.G. modification begin - Apr. 9, 1998 +/GradientPosY ED +/GradientPosX ED + /GradientScale ED + /ifGradientCircle ED +% D.G. modification end + % This avoids gaps due to rounding errors: + clip + pathbbox %leave llx,lly,urx,ury on stack +% D.G. modification begin - Apr. 10, 1998 + 4 copy /ury ED /urx ED /lly ED /llx ED +% D.G. modification end + /y ED /x ED +% D.G. modification begin - Apr. 10, 1998 +ifGradientCircle + {0 GradientPosX eq + {0 GradientPosX eq {2 copy translate} if} if} + {2 copy translate} ifelse +% D.G. modification end + y sub neg /y ED + x sub neg /x ED % This avoids gaps due to rounding errors: + LastRed FirstRed add 2 div + LastGreen FirstGreen add 2 div + LastBlue FirstBlue add 2 div + setrgbcolor +% D.G. modification begin - Jul. 23, 1997 / Apr. 9, 1998 + ifGradientCircle + {/YSizePerLine y NumLines div def + /CurrentY y 2 div def + /MidLine NumLines 2 div 1 MidPoint sub mul abs cvi def} + {fill + /YSizePerLine y NumLines div def + /CurrentY 0 def + /MidLine NumLines 1 MidPoint sub mul abs cvi def} ifelse +% DG modification end + MidLine NumLines 2 sub gt + { /MidLine NumLines def } + { MidLine 2 lt { /MidLine 0 def } if } + ifelse + MidLine 0 gt + { + /Red FirstRed def + /Green FirstGreen def + /Blue FirstBlue def + /RedIncrement LastRed FirstRed sub MidLine 1 sub div def + /GreenIncrement LastGreen FirstGreen sub MidLine 1 sub div def + /BlueIncrement LastBlue FirstBlue sub MidLine 1 sub div def + MidLine { GradientLoop } repeat + } if + MidLine NumLines lt + { + /Red LastRed def + /Green LastGreen def + /Blue LastBlue def + /RedIncrement FirstRed LastRed sub NumLines MidLine sub 1 sub div def + /GreenIncrement FirstGreen LastGreen sub NumLines MidLine sub 1 sub div def + /BlueIncrement FirstBlue LastBlue sub NumLines MidLine sub 1 sub div def + NumLines MidLine sub { GradientLoop } repeat } + if + } def/GradientLoop { +% D.G. modification begin - Jul. 23, 1997 / Apr. 9, 1998 + ifGradientCircle + {CurrentY 0 gt { +% The default center used is the center of the bounding box of the object + 0 GradientPosX eq {0 GradientPosX eq + {/GradientPosX urx llx sub 2 div def + /GradientPosY ury lly sub 2 div def} if} if + GradientPosX GradientPosY CurrentY GradientScale mul 0 360 arc + Red Green Blue setrgbcolor fill + /CurrentY CurrentY YSizePerLine sub def + /Blue Blue BlueIncrement add def + /Green Green GreenIncrement add def + /Red Red RedIncrement add def} if} {0 CurrentY moveto x 0 rlineto + 0 YSizePerLine rlineto x neg 0 rlineto closepath + Red Green Blue setrgbcolor fill /CurrentY CurrentY YSizePerLine add def + /Blue Blue BlueIncrement add def /Green Green GreenIncrement add def + /Red Red RedIncrement add def} ifelse% D.G. modification end + }def + end +% END pst-grad.pro + +%%EndProcSet +%%BeginProcSet: texps.pro 0 0 +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics +exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub +dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} +ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict +end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ +dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 +roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def +dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} +if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} +def end + +%%EndProcSet +%%BeginProcSet: special.pro 0 0 +%! +TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N +/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N +/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N +/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ +/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho +X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B +/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ +/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known +{userdict/md get type/dicttype eq{userdict begin md length 10 add md +maxlength ge{/md md dup length 20 add dict copy def}if end md begin +/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S +atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ +itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll +transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll +curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf +pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} +if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 +-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 +get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip +yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub +neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ +noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop +90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get +neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr +1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr +2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 +-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S +TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ +Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale +}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState +save N userdict maxlength dict begin/magscale true def normalscale +currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts +/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x +psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx +psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub +TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict +begin/SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ +CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N +/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} +repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N +/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX +currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY +moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X +/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 +1 startangle endangle arc savematrix setmatrix}N end + +%%EndProcSet +%%BeginProcSet: color.pro 0 0 +%! +TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop +setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll +}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def +/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ +setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ +/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch +known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC +/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC +/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 +setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 +setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 +0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC +/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 +setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 +0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ +0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ +0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC +/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 +setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 +setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 +0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC +/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 +setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 +0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ +0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ +0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC +/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 +setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC +/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 +0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 +0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 +0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 +setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 +0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC +/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 +setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 +0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 +1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC +/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 +setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ +0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} +DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 +setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 +setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 +setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end + +%%EndProcSet +%%BeginFont: CMR7 +%!PS-AdobeFont-1.1: CMR7 1.0 +%%CreationDate: 1991 Aug 20 16:39:21 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 49 /one put +dup 50 /two put +dup 51 /three put +readonly def +/FontBBox{-27 -250 1122 750}readonly def +/UniqueID 5000790 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D +E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8 +47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C +8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4 +78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486 +1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E +01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B +C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0 +F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30 +8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF +A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7 +455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2 +9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105 +EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B +52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97 +563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F +0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB +7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1 +0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4 +1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4B067A46F8EE +2AFACDE591ADF7304939394F221B5B9B316BC47DC7772711A35B466E1790D4F5 +C02C57DE57A0498128C6041CB7E702F4D8500433633B8358C438237BBA39C647 +F659FACF75574B1AAD3FE61FB97D6C5D0B19E4AC762321891092E73D192C4816 +2F14A6FFAA1B22AABB65E8F611F1E9AF66DF68DA1B2B64B4CA8870261F8663FA +28953254FA64F0AD6EFBFAB15830AF856A65835C803B70963595060F91F4079B +F8BF5396F04C070254AC5DCACB20C0B1FADD38825886322366927C97E3C5AA1B +EA858D5974EBC14D17D4ADDCB3C7EA74A8A2B75293747CFCE0B484713D631F95 +43BD5A359229F1276D2F652078ADA5000D1E060CE5CDF2E57401E487F3C10975 +09AACD27CEE8581EBADC25D0FC9CEA533B99DCEDC0F28E782F4FE22AE097CCF3 +F73338DA748C535291B4E8AF84546FE4B910107B6FFC5439C5B966DE6C905D86 +460A69D6031EC3F7261FCB6D932F722BC1F550574EBD6F676AC9770969657422 +4C8212F9FC9A49C9F0E813A2ACD16D1131A73D3001E698C63F76FE6D6143D310 +155256BE90530489736CF35CA2D7E4A1FAEAE2423ABB52E55DD7314097DF7C09 +F39C3E3A29F9BAA3AEBA89CC3E7B134E79A2DA39D449D98FE4ADE1A0ACDA79C4 +1E2C78CDCC5BDD192DAA27F17DC4368EBC54CC009802018E50519F69025DE7E8 +FB61694AEA672E59D00F6BA0CA9509FB8DC6544CB92B70BA0AE393A43959C90E +8857B0DA53A8D26426CAE0DCF2F3033BAC62502E08447B09CC18B2525AB65EC2 +C63074FF725168D115137ECDAB1EEB083711F647F757C9806056811466D59087 +B93D6B71594046B3B60A7D5789D6B99FC14764428A251F0A54ED +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMR10 +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 40 /parenleft put +dup 41 /parenright put +dup 46 /period put +dup 51 /three put +dup 75 /K put +dup 80 /P put +dup 97 /a put +dup 100 /d put +dup 101 /e put +dup 105 /i put +dup 107 /k put +dup 110 /n put +dup 111 /o put +dup 114 /r put +dup 116 /t put +dup 117 /u put +readonly def +/FontBBox{-251 -250 1009 969}readonly def +/UniqueID 5000793 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 +87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F +D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 +92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C +295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 +409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C +4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF +2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E +0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E +B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 +24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B +43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF +D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 +5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC +96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 +7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 +0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 +B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D +AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 +97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 +FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27 +F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6 +DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6 +A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B +7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E +2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828226 +7A8B47241F73590CE626EDA930A1D18D758636250D9D6A09E133378CD725F586 +F40320EF186DDF87AF8C2F5470EADFF45B230623DD994111A1E8B4BFF9EAB5E6 +E856EC1242B2A36DB0E19710EC27BBEDDD25AFFDE220C5A24787DADB906D7B04 +6B3CDAECE9B693105C7086E5E5AF5A7A1EB68C7AAFD6A174B76EC9B4E80F6AAB +41B8E494B2014160CF85023E0F171856279D43F1DCCFC8A3A5A5A5C06132E3F9 +2F9A7DC0AE201544DC7A3A01A812E51B64E0D3B325C15577FB0CE39BEDB251F0 +3E9D057C364EB8747A414F55FB4FDEB79A695E89B5B3E5880522F4837C25D4A3 +3FD6693CDCA2BDBDBB7A3F34FF23F23A74A5B94006A962328555D68A5306996E +89AE39711B96F7131CD6931D8AF54191792FEEA9F5313C5A913F25E7911F063E +359C5864E46993F8269B3AFF7EF21613055ED580E6A5D4702FEA09DA0AFAF633 +DD7BC5B7C5A3A1EEFB478579F9F9259E4DDC2098FD5D96D213C1C066BFC94BF9 +2997A33A60D1DDCC2E72F93113BFB6EEB96AF85AAF5AF55443DB7A3928EB7B19 +D63911F4AC44FA5358837F7CC6ED863F0FCCE5F7906423FFEA63FB6897FD9423 +8091005E78F323348A66C4CDF5BFF06A54C1F98F12A9E59DF18D14A8495C2305 +C7DA7391F7F20453206FC27D3F8F03510174737903DE67E775663B85B3BEDF0A +D31AD80BC0DFFDCF10AB3BC4D6142A471C4065E78BAA75C39C6DEC1C977D2C07 +1309DE0BB4DCAE70FAAF216F5D3160BB73DB275843EF80302912AC11689D4E2F +6DD48446BBC06BFFE286C366E1F387AE1ADF7365415C74FFD0379253CC58F513 +80C5F0D80AAFBB5148730876143618CD33389BB0DEDC3299264CE02983116E19 +A103C3E9A071256151DA661686D68C30CAD2637EAAEF2D00EECEDD8199F58D88 +D941999E0E3C8D3840180526247F42A9BB30C67864C353B604598082B502CF04 +A6D31E72B5E5A9EF6A392C3BE5C3E4B25B2BA4BF5855B674E69A1E65844FD42C +AE25391FE6A534DE60A2A5E2F6AB3881AE1501FD000C9F8FE440047AFE9A5D09 +F38C1157B053BB2185D163336AEC11E7B9D1C9C3DA4F6D86F3CBFDD226C9BB0B +2F043559F15687F44CA8EA5E09B11C77EF963C907A424393F60DAF7FC83063E5 +B75B33A035FEC430582A6D056DBF6600637B5540AF3038E1CBFB0F0388DA440D +824436D21AA57240D49D98769F7DBFAA37A365445F5225D59546FA1C68880AFD +70197B7153B00EE8FA5D39A62592CA4885687A70B0BF7B62837BF1849885A95E +70BB651A0BE0E27BBB0CCFB118D8FBC29FC6F0D92D820C87ABD7453D6BF9B9D6 +DEC83F777A754593E5CD2F3D26D3A4B69D4619A61D2362B21549CA8E465B0F29 +3C3786FC81D362D823087C92DEF6B045B7F9BC1E6ACC9D3A66430F828A59C5C8 +77D3AE3C61E835510544FD983135CA1C3E38545FDA087A381C06A80453348C37 +5BB3B8D201E01F5E3FB4A5A4E1421E62614027475C15407D807D7B3C8051F285 +FA7C49E260D3F4C0C8EBEF1A81D900DBFDCD71FD0DACC8A08151FF82AF71C378 +B753F7EEA817001DE5B3B0664D0988BA548E638F917E2CB2EE5DBB402088F14B +1574CB16098F1D5FE11DBF5996A8E9B0B7B1E352E467899F069C4B729E0E3407 +B5B797F3DD42884C65371614F19D2A5FEE140FC33DD696BA08901B74CEED8481 +5AE191BA515AF6D11041B9B1CAF9E7B04DA294D9E6E1D08B79542E3FBF42E1AC +4B298BE258FA048B559DAB50CC11BFB51CB54F0055D292915D1A6E2A55B0F7A4 +582737F0F8D597AFD27AAA811A714D3E83D091BF89F85276EBBD5D7717D83668 +B501EE4FA256FDAF8023A921CE2FD501FB63AF561D67F51AFA8E02FBDC6AD510 +3DE6AAC9D4B5D2B47DB83ADAFA1E657850C3189895C8BBD0A7E37322D47F6146 +5EDF926B5E3CC90A824D17B6A335C15A0E443CEE1D13408E1DE89901C1D89AD6 +17C0C7584B788B3AD4CAE25870838BE6F8132BCFF0CDE1A452A73F7036355E98 +125E6BB52B7E93E906814FF67BD9A683AE3C3A7D6B06FEE421F3C0A142A99792 +851F483E38751E62361236D51A23FD5077D0514335E98476598662B0F967BAD0 +2876A6D7A39D06F4CE68D2989B764DCAE8D63724B5DC5C2FBD317D861E2E3503 +D8530972625920EDCBE1A313CFC8C7098A890E6A8F3BD4F550A1DBF9455AC0E0 +11FA73728018094405275F62138789093EB61A22332BA5EC4823C56098C547B7 +F41D303168B9726D1C39F935FAB2E97541FE26EF86D663528B313A7D6219C9FF +D3C2E10B2F2DEEDC3430DC990FA56A09D443B5A44F45C7EB0E24E9A422A8FEED +EFAED061744AE2E54C1EF2243EDCB2E1FC546AA0EC8DA3E67ECE536D68349BB3 +EA8786B49D53C239470666780C7A6CB86AA2E4B7C053020D04BA06E4BE4FB295 +BF4E9956B7F6D14FB90F0DA70379FE36C5457552E97EEA6EBFA25C60392B1B3E +A21A1110498BBB85408790F4F59F47FABC53FE0FCF34F932E1ADCB0B389CF1A1 +0A5AAF563DD008A33CC957A0ECBD1763500E4457EA68772D2B53271C5D490040 +F92097955E1035C4359B01016F62C15F6FB15F0AFBC12A7DE0FC5595EA3C71B1 +030127E0CD502F4E96E02A960B1DF232755933D0A52FA59544A6BA209C73CC2B +E2714631D9AB887E215FBAA2A34C10A301F1121DE2E683A5EE7AE0D9E005A2E0 +B39878D0EEDD047C7D6AC1DF33B78CFFC7CD11C836E3849F75D23A3BC539B09F +DB710FCB9AF84F72F0FEF4C2AD755A1619C0F9A45E49F3A237BD2F1755B0745E +9923C342F58379AB7BCC4F7DC9C54A2B16F7D6FB3D11518503C48A51674A4091 +10AD28B09611D633F3CC11B03815D2A8A9B4A48E6371098C129DA0456CB4156B +C369C69A950585D23EA0FA62B4038BFC6837D2520A958A446161D1A3D3C69BA7 +B40E44778CC890EECC4D6D7BA58B4710C86072C0AC1672FE00FAF9766F17077C +E3703145A82BD50B544BA9EAEAD4CD2F8DE0C7CCE202D0AE169372070C5BBD32 +B32E6A6169AE023DB906D3EF8ED6B64AC6F34F4D848C77529CC199905D4E15EE +0A59815A7F2EF909C16E2F908AD4515C5F8BB5C06CB6573275AEC07513FEAAEC +BEF660829AFECAEDAF8A15CC36CFB9254BD6F3FA4718D2941FC922C5A0C6000E +231C320D1F962FB5C1C069CA44A7A9E2B6AB4231BA61A27FA1B4EF5CD0D1F19A +763A9B2C2065C95D0752F73DE7B43EDCAA69CC9D5C2FCD1A5E77F81ADFA36572 +D44A1F21CD1D2BC6636E0F21D4B8817E5B8CFC67F01474F27A8D2DB5084F761C +85C582044743A85878F3A25418371C230924D0FB1DCEBDD8971C2D66DA946FB3 +13C01396D8289DB2FC6270E80E437B860555E58222B8391A6C1D89D701CA816D +5C868F01F2AC32D03DF8BDCF50461ED4A2287498DFF6D4084AC299A9FADFC8BC +89C359C1B0945B095CFE7B519FC50E0F17DA5B560A8FB23F3BAD2DA2E523F1FE +8DCC198C7E592075A8C06A263A3116E66326847F6236287A2E5E01355085144F +84BE5ABD0A10A8459D4F6D0063D32158FC26A492927909F250D01625A9DF1815 +98CBBC07520D8F4B9943EB741187EFAAD58F6AADC74CA1496CE54C51A80F09A1 +9383127588F81ADEF635EFE85D7B5F270FFD769E387E75F7979C9846A2929B1D +20FC6FE8928B94A998A6AE7EBFBD08752F6B487F9D28E973D659DD8481D998C2 +96A7FC01D84E894CB205996C49F26B898EE9C9489A561270EF2E34CB5753281A +06ADB5C737B0BFE850CEDBB03DEDEC5389D8B69AFAF941A3AD27BF6B5F8A651D +904271C74F714988DB57EB57F4CFEBFE79D0480CF913D04B2714EB042979761A +ACB24E2920F6629754F679A24AF44ADC79B8A08B198A610AC975005970D4EDA6 +6985F13C66497B74C281F9878D9DFA0E769B8352737A0A9BE68BCB0C29371191 +4049A9BF6E0D7C389B5F0272F1AD84985380B6E3C80AD882F08888308DFEBEF6 +C53AC8E04E17CB1B40E146731DD6C3D1A5D26DDAD52DA3BB55BEB221006DD906 +42E96E4B5E0A66061D4ED87C39F6DCCE42890D71304B66C6CA074F37B3B87366 +0A631EB58468CE30A443E3AB221865E6018EED5009E3C9318DDA75CE5F6BB5A1 +79925B1FBE0CFBF6F957B7D6E544EC9429AF2F97D10E5CDF646E05C4FE8AE97F +CF90BFB8B5E00181E4A32C3F4D8C4236291ED82553FEFEFA55B3C28577C369F3 +64EF57DB8DDD05C23F7540C313FE61060E4D2D75ADE218236AEBE7762843FF62 +4766F63C97292B05FE71CC754A97D879D2224988DCA575F1BC6103E459C86F2F +5169A68FAA906D7C1D2F2159D8E878DF36E3D85A7F7C132AA226AFFFC095E8B9 +7D75570BD329DE80278C2A4DDF595CEE122482A74350B1DE7789B902E507820A +A49A30F90398EE2291661D3F425162488D61CA2E6EEB3798CE685DFF36DD6CF2 +3EF1E281F4F49E223D06046288B54DBD80815BF2F74CE96228E2C4EE9D98FD0E +85336CEDDC9148D5E02562D11DBDF95868B6882F9DEBFFDA550EA452FD78E369 +99772289123BC8455D6FF07513C245E8B4B53BBF645248 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMSS8 +%!PS-AdobeFont-1.1: CMSS8 1.0 +%%CreationDate: 1991 Aug 20 17:34:12 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSS8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMSS8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 46 /period put +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +readonly def +/FontBBox{-65 -250 1062 761}readonly def +/UniqueID 5000801 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF4E9D2405B17498276F99362748F6E97327D +7CDA3F577075245561191667923D37830EEC37A0161B6A3EC8FDD63CDB8C8D4A +AD39C69A264813FA79C25E85AC95C71AB965F6C14A4A1ACF5BAE27A5F628B172 +47CF6A12008558438874199C237501B72BFEFE64B606A327623BD8B217E8349B +7BF5C2204F4DE2FB269845D5714A31151A66064419CCC46A63F8E54B92B5070F +F3D80801DBEC658CD3926B15BE3D4B7591FC36663D3C03926D0D3637B53BCC22 +73C8E0001B416A65FC67C53383458DC125FD14FFE391BBBA321B5AF5DEF85DBA +5A5FD759FD2AAB6AF31CDA6202EBB763E3CAC1FF91B1175EF818FD662B60C642 +738A3B4F27822A0560BB7C08AD42F976351FA5225A0E6D56C7FBE06A809CC468 +FB2E90C84FA56C62CB7BBFC80BD94F5C6BC0EED14433A4A356D2D15DC87B34B0 +99A100502F55A32D736757642F9F9719FD9E35A1430A72C254614B4000113705 +5474FCFCE47A6978F69FA467B818309E61598EC18089BB924C393B3FF1280D72 +E1969BF5AD3D1074FF13202D4CC324396BAFF2397DAB2C516C656B6B240F023D +0C28AEBB957C23012C971D444DD1C4C2BD7DCE178D46CF8EC20DCAB9A930907E +124F3B3B8D16DBF166BA40CD780DE2155BF21EC2C3E0073422E54A09DF4A9491 +63B55882122F6B40490D81533CB0E16967E32D4F5B5D5D14F578BAA0137704A3 +2386E6AA4E3D160559EB245625253380CE64C30B41B573D7249B0B6157B02EFE +0D82006B4CF4A294FDDAB5B87CAD0B2D3367F9138EE0922FBDD3D7BFE4C6B297 +762F95616A75D0FC2D2E22D79172DF1A3287C67BD27658A448FC61077B3033AA +5479ABBF5CD952B5E19E437CD642CDC43FBB26115DCC019FEB3195F267AAD478 +4BDB4D1AEFB4BB108438507C493B00002470B4711BA5B428B4A8129BE7179E4A +7521E8AF3D9160217C072A9928A84D7FE560D2C8C9FF175F5ACC4B756A4E5660 +FFD365DBFB074FEB45E9372F1B6F979E09D775319131E551A0A47FAFB5A2991B +BC0009392145EAA35927690D1D20FF5977DE7583F2BAC0D50B3AE23F60A776E9 +249C85364258E44F7E9E538D28BC1C50DF90F9FC563EB1B03CF353F760BF0CBF +C2CE4AB9BCAA0F835FB2F60FEA62A3E28C619182CFDA62420C77F502F70F2A2D +BBCB7B6C211402871C7862E06459E59E5EB1E9E1F2D8903D9ED1EDC9374BA744 +450DF79439BEA8CCB850890BD73CBEA39AD2E4852B64439407342A67B905D78D +9BE26CE238A767AD6EC10DACE58C13AE16332DD952DB84D6F96127EF94E77104 +CBFA4E6AD7E0B89BE542080241CB78D4D7EC8F01EB95724C34B5A2C69B062511 +B9254AD71D7F0F837A5D93D850FB7362252CCF91E6CB3B0576E25B475D24DB7D +A6F9CE199753BD33B8DFECE0E42BC1B15A99871203B6C630B1D213C2FE0BABBE +CF4F271EB4F939E0F4341DA58042278B252F8A1D9774C49C33CDD11143A143AC +8CD0CBD620BF3E5BE13F174DB04F885E1FE08E624DEFF55F5971BE8606FD2FA9 +BF974490F2B026B0C068146145C85F03A435776B2C63F6729E81125225432E29 +43AC6A7B26B33B0E3DA1A3F60584E66A36F05FDAB82F70F8FF1C40E300192DEB +A006CE31540785B22D7712CD35D4721884D13D24C352608D7D9A7DBC0A5D05FB +BA7880D469F267204F3570C88E9B2447EEE6A710CC5201B175192486FCBDE6C3 +167C9E4631569F84AB53A9DF0E4E19ECE690220BCE8634E5A61E195CFA9B841B +E2A1C1FF33EA42F04EE939F7043BB2683E1B1DE2E1D548528E4F1126B261D834 +A128348E1BA634341F52535656B89E82709F0B4767B2CF482B9D1198292D682E +477B35BF5BE26ADCA06268C8468F2CB7EAC12D847DBFC7A40E4C23AFF2C26EF9 +87A8EDFB77DA40BB17DE3800D98D10053CCF4EAF838795A471F6AA3EB9746C87 +8868EBF2192EB371299C1B7FCC06F8AEEAF6C5F324D997297590E7C9FDC7008B +D271005CC3A15AC10DB7643FD730F00C9B2749B3E9D82654E3FD164B8F0CF01C +EE2AEADAAC385AE78D +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 59 /comma put +dup 97 /a put +dup 120 /x put +dup 121 /y put +dup 122 /z put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +/UniqueID 5087385 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 +990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E +6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB +DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 +59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 +D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF +8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 +6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 +1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE +03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 +95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 +74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 +3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 +47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 +AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 +42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 +40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 +B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 +956017667271C1FD06DBA26AC7504FCD81979D968F25E82A94901AE49D6FD9A9 +F8C87DCC2B8605745A1F753F0EE14E390AC6514966CF8628EEC915E4AF6E9115 +51D4AE37C6E88C775F23C743B72D3C20158F94902981BCA25BC4E88A9A8F985F +CB07A70724C8BF3E576FF7E982BD4EC746713CFDBF76479596521FFA7D1D986D +A7BE0B23A415AC88723FAA18F624BFDF2A6BBC39C965A427CE690F4ACB3F3DA3 +04D2A12157468A7638808992F551B3356994B13DC708BF5A2891A873C6DD583F +29A961D4FF4934453BB1476EDBEF974C83C1D65829D967C54CFC1EDFAB2DF5A5 +A9C0AB95E7790888F45577E12779F5F620A342B929F3BA77F0FF237D8793E80E +BE86B8A2B16806A49C8E68901196901A5D8A487150AF9B3C3418945B14B9F78C +C9BFCAD92E0C90AD4B4743085AF412DBE54F3AB630A5234A0E3837ADDF3FDE52 +404911B59C397A2B499A6E8D9C3B93E9B99EC5E0999AC8E1BB78BD6B173F3875 +51D733E66E62900B40B094BF6DD51012454360EAA148D6457A45FC7F7570D3FD +B6A6C7F6958C6591F7824B9E7A6ED2A7A9D0FAD4FD9E4A571DA1010F118DB177 +F221C3C447CA13BD2093A725E2544B057B3A2AA4872B2508CE9DB5D70F8C4A24 +7BD611E9B790047146CBA5345698D278CF6A86B487423D01FA67A424D1C1CC24 +149423717766BCF746B83D37F55CA428870E8028C46B107988702F86795E554C +FF327A0F91B058FD04F3A56AE4B605DB6E540FE9954ECC1EA5591673CF61F526 +EC9D2CB56481594FD1E8B86FAE3488BCD34EE87A9D2E26D18D4E0014645116C0 +2B805664307E3BC34995C8325109B384419A7DD9B4679D135B5C85102C9B1CD9 +44ACE588B3F7C537833170FBC30AF997CF623C6C911B2A155F6398B1E3AC32D8 +F52232AD359DC2761BCC982BEC03585BD4985A954F4873C5A22CCB3A6EAEAB9E +A2DE3B275616EA2B17773D5DCF50F3D0CA6D616DD8AD8B6962012046EEA9F6DB +785CED5AE65258D2253B9298C2121ACF0DD399A693BD70B0B86619ED271D6357 +F3F6FBC41317307C1744CC593B3ED00E49793DD42FD13D8481707E86A1ED40B8 +C4BD24C20E61F1A6DDD9FA385DAD69455B4591E75A627B2D6BFB99B3BE48C184 +600B23CEF04C4E5FB0C170668F8D8A3F7585A2C4691A12F799A7CDC91EB00812 +B3196628392504B2A86BC0A140E5D8A7AFEEBEC4837745858352F5309688A16E +3CF55E0DA8F9B6579A97FEB3620D3EF9A4958F90CF36E3AF89EB79DD25E8F090 +ECCA8CD48CBE349120E5D6BDECA984E0A7C3962CA22B927AC2EB058CCF5472F4 +60E478E28588AFB1E50AE5075DF02E3AE37DA37C0801EB05E358FF7A44E2DDD2 +BC36F5B5730673B7D157E1D86B444AC641D0CB21BFB003FBE76A7EDBAC0C6F4A +300138DAF8D861B18FA2BBAC8B0A9BB40E6D06FCEBB26F299639E24A15A4351F +2A276C0AFE63835DC89611BDCE568FE4D6437E83809EB16FF0E2EF0B3D976311 +94A19FCDEBABE1529655803179E4CC00E03D79AA4B40B70A95302CBDEFA3B9FF +A79403CD9457084ABEE5794E02B7381A36D10731329535C3A39C42F9EA88BC0F +0BFAE6F7A74758FEAFB834B0D74936070B602AB571568EC37EBB77F4EFD33A50 +BF458E71F3C00B0385A432EB2E9D87C7305CF7C78FAC +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 40258437 52099154 1000 600 600 (3dgrafiken.dvi) +@start /Fa 204[33 33 33 49[{}3 58.1154 /CMR7 rf /Fb 138[46 +32 1[33 2[42 46 2[44 1[23 3[37 46 2[42 16[57 4[65 23[42 +4[23 4[32 32 40[{}16 83.022 /CMR10 rf /Fc 203[35 35 35 +35 35 1[20 46[{}6 66.4176 /CMSS8 rf /Fd 133[39 41 47 +22[44 37[23 59[{}5 83.022 /CMMI10 rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin + end +%%EndSetup +TeXDict begin 1 0 bop 0 TeXcolorgray 1 TeXcolorgray 0 +TeXcolorgray 1 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray +0 TeXcolorgray 1 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray +0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray +0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0.5 TeXcolorgray +0 TeXcolorgray 0 1890 a + tx@Dict begin gsave CM STV CP newpath moveto 3.0 neg 0 rmoveto clip +setmatrix end + 0 1890 a 0 1890 1709 1890 v 1709 +1890 a + currentpoint grestore moveto + 1709 1890 a 1 0 0 TeXcolorrgb 0 TeXcolorgray 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@xMin 10 +{InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 5 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@xMax 10 +{InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@yMin 10 +{InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 5 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@yMax 10 +{InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@zMin 10 +{InitPnode } NewNode end end + 236 1417 a 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 5 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@zMax 10 +{InitPnode } NewNode end end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def [ tx@NodeDict begin tx@NodeDict /N@xMax known { /N@xMax +load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict /N@xMin +known { /N@xMin load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap +stroke grestore end + +@endspecial +@beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def [ tx@NodeDict begin tx@NodeDict /N@yMax known { /N@yMax +load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict /N@yMin +known { /N@yMin load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap +stroke grestore end + +@endspecial @beginspecial +@setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def [ tx@NodeDict begin tx@NodeDict /N@zMax known { /N@zMax +load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict /N@zMin +known { /N@zMin load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap +stroke grestore end + +@endspecial 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@xMax known { /N@xMax +load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end + 236 1417 a 236 1417 +a + tx@Dict begin { 5.0 5.71527 4.30554 0.0 180. Uput UUput } PutCoor +PutBegin end + 236 1417 a 212 1435 a Fd(x)236 1417 y + tx@Dict begin PutEnd end + 236 1417 a 236 +1417 a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@yMax known { /N@yMax +load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end + 236 1417 a 236 1417 a + tx@Dict begin { 5.0 5.2616 4.30554 1.94444 30. Uput UUput } PutCoor +PutBegin end + 236 +1417 a 214 1427 a Fd(y)236 1417 y + tx@Dict begin PutEnd end + 236 1417 a 236 1417 +a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@zMax known { /N@zMax +load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end + 236 1417 a 236 1417 a + tx@Dict begin { 5.0 5.0903 4.30554 0.0 90. Uput UUput } PutCoor PutBegin + end + 236 1417 +a 215 1435 a Fd(z)236 1417 y + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 +1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 1.0 0.1 0 1.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 +a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 1.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 +a Fc(1.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a +@beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 2.0 0.1 0 2.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 2.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 a Fc(2.0)326 +1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial +@setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3.0 0.1 0 3.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 +a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 a Fc(3.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + +326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 4.0 0.1 0 4.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 4.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 +a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 a Fc(4.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a +236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 1.0 0 -0.1 1.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial +236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 1.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 +a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(1.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + +236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 2.0 0 -0.1 2.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 2.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 +1417 a Fc(2.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 +a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 3.0 0 -0.1 3.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 3.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(3.0)326 +1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial +@setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 4.0 0 -0.1 4.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 4.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 +a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(4.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + +326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 1.0 0 -0.1 1.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 1.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 +a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(1.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a +236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 2.0 0 -0.1 2.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial +236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 2.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 +a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(2.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + +236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 3.0 0 -0.1 3.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 3.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 +1417 a Fc(3.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 +a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 4.0 0 -0.1 4.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 4.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(4.0)326 +1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a 0 0 1 TeXcolorrgb +0 TeXcolorgray 0 0 1 TeXcolorrgb 0 TeXcolorgray 236 1417 +a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3 1.0 mul def /y 3 1 mul def /z 4 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@A 10 {InitPnode +} NewNode end end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor [ tx@NodeDict +begin tx@NodeDict /N@A known { /N@A load GetCenter } { 0 0 } ifelse +end false NArray /DS 2.0 2. CLW mul add 2 div def /PSTricksDotFont +0. [1.0 0.0 0.0 1.0 0.0 0.0] FontDot /Dot { moveto gsave 1. 1. scale +(b) show grestore } bind def newpath n { transform floor .5 add exch +floor .5 add exch itransform Dot } repeat end + +@endspecial 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3 1.0 mul def /y 3 1 mul def /z 0 def ConvertTo2D x2D +y2D end 28.45274 mul exch 28.45274 mul exch } false /N@B 10 {InitPnode +} NewNode end end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ tx@NodeDict begin tx@NodeDict /N@B known { +/N@B load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict +/N@A known { /N@A load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.1 SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 +0 0 add DashLine grestore end + +@endspecial +236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /x 3 1.0 mul +def /y 0 def /z 0 def ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 +mul exch } false /N@A 10 {InitPnode } NewNode end end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ tx@NodeDict begin tx@NodeDict /N@A known { +/N@A load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict +/N@B known { /N@B load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.1 SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 +0 0 add DashLine grestore end + +@endspecial +236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /x 0 def /y +3 1 mul def /z 0 def ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 +mul exch } false /N@A 10 {InitPnode } NewNode end end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ tx@NodeDict begin tx@NodeDict /N@A known { +/N@A load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict +/N@B known { /N@B load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.1 SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 +0 0 add DashLine grestore end + +@endspecial +0 0 1 TeXcolorrgb 0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 0 4 0 0 4 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + + +@endspecial 0 0 1 TeXcolorrgb 0 TeXcolorgray @beginspecial +@setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 3 4 3 0 4 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial 0 0 1 TeXcolorrgb 0 TeXcolorgray +@beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 0 4 3 0 0 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial 0 0 1 TeXcolorrgb +0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 3 4 0 0 4 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial +0 0 1 TeXcolorrgb 0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 3 4 0 3 0 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + + +@endspecial 0 0 1 TeXcolorrgb 0 TeXcolorgray @beginspecial +@setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 3 4 0 3 4 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial 1 0 0 TeXcolorrgb 0 TeXcolorgray +@beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 -0.4 0 3 0 0 tx@3DPlotDict begin /dxUnit +1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 1 0 0 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial 1 0 0 TeXcolorrgb +0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ -0.4 3 0 0 3 0 tx@3DPlotDict begin /dxUnit +1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 1 0 0 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial +1 0 0 TeXcolorrgb 0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 -0.4 4 0 0 4 tx@3DPlotDict begin /dxUnit +1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 1 0 0 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.5 1 mul def /z 4.5 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 +a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 180 Delta add +def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix +{ } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp +[ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix matrix +concatmatrix exch exec concat cp moveto end + 236 1417 a 1 0 0 TeXcolorrgb Fb(3.)37 b(Ko)r(ordinate)p +0 TeXcolorgray 774 1417 a + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 774 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 +a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3.3 1.0 mul def /y 3 1 mul def /z 4.3 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 +a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 180 Delta add +def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix +{ } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp +[ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix matrix +concatmatrix exch exec concat cp moveto end + 236 1417 a Fb(Punkt)461 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 461 1417 a 236 1417 +a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3.3 1.0 mul def /y 3 1 mul def /z 3.9 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 +a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 180 Delta add +def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix +{ } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp +[ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix matrix +concatmatrix exch exec concat cp moveto end + 236 1417 a Fb(\()q Fd(a)313 1429 y Fa(1)350 +1417 y Fd(;)14 b(a)431 1429 y Fa(2)468 1417 y Fd(;)g(a)549 +1429 y Fa(3)586 1417 y Fb(\))618 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 618 1417 a 236 +1417 a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3 1.0 mul def /y -0.8 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 +1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 180 Delta add +def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix +{ } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp +[ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix matrix +concatmatrix exch exec concat cp moveto end + 236 1417 a 1 0 0 TeXcolorrgb Fd(a)280 +1429 y Fa(1)p 0 TeXcolorgray 317 1417 a + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 317 1417 a 236 +1417 a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.6 1.0 mul def /y 3 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 +1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a 1 0 0 TeXcolorrgb Fd(a)280 +1429 y Fa(2)p 0 TeXcolorgray 317 1417 a + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 317 1417 a 236 +1417 a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y -1 1 mul def /z 4 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 +1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a 1 0 0 TeXcolorrgb Fd(a)280 +1429 y Fa(3)p 0 TeXcolorgray 317 1417 a + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 317 1417 a 236 +1417 a + tx@Dict begin PutEnd end + 236 1417 a eop end +%%Trailer + +userdict /end-hook known{end-hook}if +%%EOF diff --git a/VeranschaulichungVonVektorenImRaum01.pdf b/VeranschaulichungVonVektorenImRaum01.pdf new file mode 100644 index 0000000..fc79610 Binary files /dev/null and b/VeranschaulichungVonVektorenImRaum01.pdf differ diff --git a/VeranschaulichungVonVektorenImRaum02.eps b/VeranschaulichungVonVektorenImRaum02.eps new file mode 100644 index 0000000..f27f152 --- /dev/null +++ b/VeranschaulichungVonVektorenImRaum02.eps @@ -0,0 +1,4028 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: dvips(k) 5.94a Copyright 2003 Radical Eye Software +%%Title: 3dgrafiken.dvi +%%CreationDate: Mon Aug 23 11:29:32 2004 +%%BoundingBox: 71 492 278 721 +%%DocumentFonts: CMMI10 CMSS8 CMR10 CMR7 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips -E 3dgrafiken.dvi +%DVIPSParameters: dpi=600 +%DVIPSSource: TeX output 2004.08.23:1129 +%%BeginProcSet: tex.pro 0 0 +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S +/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy +setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask +restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: pstricks.pro 0 0 +%! +% PostScript prologue for pstricks.tex. +% Version 97 patch 4, 04/05/10 +% For distribution, see pstricks.tex. +% +/tx@Dict 200 dict def tx@Dict begin +/ADict 25 dict def +/CM { matrix currentmatrix } bind def +/SLW /setlinewidth load def +/CLW /currentlinewidth load def +/CP /currentpoint load def +/ED { exch def } bind def +/L /lineto load def +/T /translate load def +/TMatrix { } def +/RAngle { 0 } def +/Atan { /atan load stopped { pop pop 0 } if } def +/Div { dup 0 eq { pop } { div } ifelse } def +/NET { neg exch neg exch T } def +/Pyth { dup mul exch dup mul add sqrt } def +/PtoC { 2 copy cos mul 3 1 roll sin mul } def +/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } +def +/PathLength { flattenpath /z 0 def { /y1 ED /x1 ED /y2 y1 def /x2 x1 def +} { /y ED /x ED PathLength@ } {} { /y y2 def /x x2 def PathLength@ } +/pathforall load stopped { pop pop pop pop } if z } def +/STP { .996264 dup scale } def +/STV { SDict begin normalscale end STP } def +% +%%-------------- DG begin patch 15 ---------------%% +%/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def +%PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y +%mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul +%/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ] +%0 } ifelse setdash stroke } def +/DashLine { + dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def PathLength } ifelse + /b ED /x1 ED /y1 ED /x ED /y ED + /z y x add y1 add x1 add def + /Coef b a .5 sub 2 mul y mul sub z Div round + z mul a .5 sub 2 mul y mul add b exch Div def + /y y Coef mul def /x x Coef mul def /y1 y1 Coef mul def /x1 x1 Coef mul def + x1 0 gt y1 0 gt x 0 gt y 0 gt and { [ y x y1 x1 ] 1 a sub y mul} + { [ 1 0] 0 } ifelse setdash stroke +} def +%%-------------- DG end patch 15 ---------------%% +/DotLine { /b PathLength def /a ED /z ED /y CLW def /z y z add def a 0 gt +{ /b b a div def } { a 0 eq { /b b y sub def } { a -3 eq { /b b y add +def } if } ifelse } ifelse [ 0 b b z Div round Div dup 0 le { pop 1 } if +] a 0 gt { 0 } { y 2 div a -2 gt { neg } if } ifelse setdash 1 +setlinecap stroke } def +/LineFill { gsave abs CLW add /a ED a 0 dtransform round exch round exch +2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25 +% DG/SR modification begin - Dec. 12, 1997 - Patch 2 +%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a +itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a +% DG/SR modification end +Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict +/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1 +% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) +% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore } +% def +a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore +pop pop } def +% DG/SR modification end +/BeginArrow { ADict begin /@mtrx CM def gsave 2 copy T 2 index sub neg +exch 3 index sub exch Atan rotate newpath } def +/EndArrow { @mtrx setmatrix CP grestore end } def +/Arrow { CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1 +scale } if w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill +grestore } def +/Tbar { CLW mul add /z ED z -2 div CLW 2 div moveto z 0 rlineto stroke 0 +CLW moveto } def +/Bracket { CLW mul add dup CLW sub 2 div /x ED mul CLW add /y ED /z CLW 2 +div def x neg y moveto x neg CLW 2 div L x CLW 2 div L x y L stroke 0 +CLW moveto } def +/RoundBracket { CLW mul add dup 2 div /x ED mul /y ED /mtrx CM def 0 CLW +2 div T x y mul 0 ne { x y scale } if 1 1 moveto .85 .5 .35 0 0 0 +curveto -.35 0 -.85 .5 -1 1 curveto mtrx setmatrix stroke 0 CLW moveto } +def +/SD { 0 360 arc fill } def +/EndDot { { /z DS def } { /z 0 def } ifelse /b ED 0 z DS SD b { 0 z DS +CLW sub SD } if 0 DS z add CLW 4 div sub moveto } def +/Shadow { [ { /moveto load } { /lineto load } { /curveto load } { +/closepath load } /pathforall load stopped { pop pop pop pop CP /moveto +load } if ] cvx newpath 3 1 roll T exec } def +/NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch +cvi def } def +/NArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop } if +f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def +/Line { NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub +def n { Lineto } repeat CP 4 2 roll ArrowB L pop pop } if } def +/Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 } +ifelse { pop } repeat a } def +/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq +and { pop pop /n n 1 sub def } if } def +/Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop } +repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1 +ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1 +moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto +Lineto pop pop closepath } ifelse } def +/Diamond { /mtrx CM def T rotate /h ED /w ED dup 0 eq { pop } { CLW mul +neg /d ED /a w h Atan def /h d a sin Div h add def /w d a cos Div w add +def } ifelse mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 +div /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +setmatrix } def +% DG modification begin - Jan. 15, 1997 +%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq { +%pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 +%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0 +%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +%setmatrix } def +/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup +CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 +div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0 +d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) +% setmatrix } def +setmatrix pop } def +% DG/SR modification end +/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth +def } def +/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth +def } def +/CC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1 +def CCA /dx dx0 l1 c exp mul dx1 l0 c exp mul add def /dy dy0 l1 c exp +mul dy1 l0 c exp mul add def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos +abs b exp a mul dx dy Pyth Div 2 div def /x2 x l0 dx mul m mul sub def +/y2 y l0 dy mul m mul sub def /dx l1 dx mul m mul neg def /dy l1 dy mul +m mul neg def } def +/IC { /c c 1 add def c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } +ifelse /a a 2 mul 3 div 45 cos b exp div def CCA /dx 0 def /dy 0 def } +def +/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def +/NC { CC x1 y1 x2 y2 x y curveto } def +/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def +/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def +/NAC { x2 y2 x y curveto CC x1 y1 } def +/EAC { x2 y2 x y ArrowB curveto pop pop } def +/OpenCurve { NArray n 3 lt { n { pop pop } repeat } { BOC /n n 3 sub def + n { NC } repeat EOC } ifelse } def +/AltCurve { { false NArray n 2 mul 2 roll [ n 2 mul 3 sub 1 roll ] aload +/Points ED n 2 mul -2 roll } { false NArray } ifelse n 4 lt { n { pop +pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse } def +/ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt { +CheckClosed } if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC } +repeat closepath pop pop } ifelse } def +/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def +/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def +/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } +def +/FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix +rotate matrix concatmatrix exch findfont exch makefont setfont } def +/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto +x1 y1 lineto closepath } def +/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1 +y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div +exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse +/b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto +x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath } +ifelse } def +/Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add +/y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq { +pop pop Rect } { OvalFrame } ifelse } def +/BezierNArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop +} if n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat f { ] +aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def +/OpenBezier { BezierNArray n 1 eq { pop pop } { ArrowA n 4 sub 3 idiv { 6 +2 roll 4 2 roll curveto } repeat 6 2 roll 4 2 roll ArrowB curveto } +ifelse } def +/ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv { +6 2 roll 4 2 roll curveto } repeat closepath } ifelse } def +/BezierShowPoints { gsave Points aload length 2 div cvi /n ED moveto n 1 +sub { lineto } repeat CLW 2 div SLW [ 4 4 ] 0 setdash stroke grestore } +def +/Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1 +sub 3 div def /dy y0 y1 sub 3 div def x0 dx sub y0 dy add x1 y1 ArrowA +x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB curveto /Points [ x1 y1 x0 +y0 x0 2 mul x1 sub y1 ] def } def +/Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 } +if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if +/dx ED dy div round dy mul /y0 ED dx div round dx mul /x0 ED dy div +round cvi /y2 ED dx div round cvi /x2 ED dy div round cvi /y1 ED dx div +round cvi /x1 ED /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1 sub +0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div CLW 2 div add def +/Helvetica findfont b scalefont setfont /b b .95 mul CLW 2 div add def } +if systemdict /setstrokeadjust known { true setstrokeadjust /t { } def } +{ /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add +exch itransform } bind def } ifelse gsave n 0 gt { 1 setlinecap [ 0 dy n +div ] dy n div 2 div setdash } { 2 setlinecap } ifelse /i x1 def /f y1 +dy mul n 0 gt { dy n div 2 div h mul sub } if def /g y2 dy mul n 0 gt { +dy n div 2 div h mul add } if def x2 x1 sub w mul 1 add dup 1000 gt { +pop 1000 } if { i dx mul dup y0 moveto b 0 gt { gsave c i a cvs dup +stringwidth pop /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg} +{z1} ifelse rmoveto show grestore } if dup t f moveto g t L stroke /i i +w add def } repeat grestore gsave n 0 gt +% DG/SR modification begin - Nov. 7, 1997 - Patch 1 +%{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash } +{ 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash } +% DG/SR modification end +{ 2 setlinecap } ifelse /i y1 def /f x1 dx mul +n 0 gt { dx n div 2 div w mul sub } if def /g x2 dx mul n 0 gt { dx n +div 2 div w mul add } if def y2 y1 sub h mul 1 add dup 1000 gt { pop +1000 } if { newpath i dy mul dup x0 exch moveto b 0 gt { gsave c i a cvs +dup stringwidth pop /z2 ED w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt +{z1} {b neg} ifelse rmoveto show grestore } if dup f exch t moveto g +exch t L stroke /i i h add def } repeat grestore } def +/ArcArrow { /d ED /b ED /a ED gsave newpath 0 -1000 moveto clip newpath 0 +1 0 0 b grestore c mul /e ED pop pop pop r a e d PtoC y add exch x add +exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c +mul neg d } def +/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def +/Rot { CP CP translate 3 -1 roll neg rotate NET } def +/RotBegin { tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } +def } if /TMatrix [ TMatrix CM ] cvx def /a ED a Rot /RAngle [ RAngle +dup a add ] cvx def } def +/RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ] +cvx def } def +/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def +/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def +/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def +/Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s +abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b +div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } { +h1 abs h sub dup s mul abs } ifelse } def +/UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s +mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q +{ x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add +exch } def +/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible +/IfVisible true def } if } { IfVisible { Invisible /IfVisible false def +} if } ifelse } def +/InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def +/Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit +neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def +/IfVisible true def } def +end +% END pstricks.pro + +%%EndProcSet +%%BeginProcSet: pst-dots.pro 0 0 +%!PS-Adobe-2.0 +%%Title: Dot Font for PSTricks +%%Creator: Timothy Van Zandt +%%Creation Date: May 7, 1993 +%% Version 97 patch 1, 99/12/16 +%% Modified by Etienne Riga - Dec. 16, 1999 +%% to add /Diamond, /SolidDiamond and /BoldDiamond +10 dict dup begin + /FontType 3 def + /FontMatrix [ .001 0 0 .001 0 0 ] def + /FontBBox [ 0 0 0 0 ] def + /Encoding 256 array def + 0 1 255 { Encoding exch /.notdef put } for + Encoding + dup (b) 0 get /Bullet put + dup (c) 0 get /Circle put + dup (C) 0 get /BoldCircle put + dup (u) 0 get /SolidTriangle put + dup (t) 0 get /Triangle put + dup (T) 0 get /BoldTriangle put + dup (r) 0 get /SolidSquare put + dup (s) 0 get /Square put + dup (S) 0 get /BoldSquare put + dup (q) 0 get /SolidPentagon put + dup (p) 0 get /Pentagon put + dup (P) 0 get /BoldPentagon put +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + dup (l) 0 get /SolidDiamond put + dup (d) 0 get /Diamond put + (D) 0 get /BoldDiamond put +% DG/SR modification end + /Metrics 13 dict def + Metrics begin + /Bullet 1000 def + /Circle 1000 def + /BoldCircle 1000 def + /SolidTriangle 1344 def + /Triangle 1344 def + /BoldTriangle 1344 def + /SolidSquare 886 def + /Square 886 def + /BoldSquare 886 def + /SolidPentagon 1093.2 def + /Pentagon 1093.2 def + /BoldPentagon 1093.2 def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /SolidDiamond 1008 def + /Diamond 1008 def + /BoldDiamond 1008 def +% DG/SR modification end + /.notdef 0 def + end + /BBoxes 13 dict def + BBoxes begin + /Circle { -550 -550 550 550 } def + /BoldCircle /Circle load def + /Bullet /Circle load def + /Triangle { -571.5 -330 571.5 660 } def + /BoldTriangle /Triangle load def + /SolidTriangle /Triangle load def + /Square { -450 -450 450 450 } def + /BoldSquare /Square load def + /SolidSquare /Square load def + /Pentagon { -546.6 -465 546.6 574.7 } def + /BoldPentagon /Pentagon load def + /SolidPentagon /Pentagon load def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /Diamond { -428.5 -742.5 428.5 742.5 } def + /BoldDiamond /Diamond load def + /SolidDiamond /Diamond load def +% DG/SR modification end + /.notdef { 0 0 0 0 } def + end + /CharProcs 20 dict def + CharProcs begin + /Adjust { + 2 copy dtransform floor .5 add exch floor .5 add exch idtransform + 3 -1 roll div 3 1 roll exch div exch scale + } def + /CirclePath { 0 0 500 0 360 arc closepath } def + /Bullet { 500 500 Adjust CirclePath fill } def + /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath + eofill } def + /BoldCircle { 500 500 Adjust CirclePath .8 .8 scale CirclePath + eofill } def + /BoldCircle { CirclePath .8 .8 scale CirclePath eofill } def + /TrianglePath { 0 660 moveto -571.5 -330 lineto 571.5 -330 lineto + closepath } def + /SolidTriangle { TrianglePath fill } def + /Triangle { TrianglePath .85 .85 scale TrianglePath eofill } def + /BoldTriangle { TrianglePath .7 .7 scale TrianglePath eofill } def + /SquarePath { -450 450 moveto 450 450 lineto 450 -450 lineto + -450 -450 lineto closepath } def + /SolidSquare { SquarePath fill } def + /Square { SquarePath .89 .89 scale SquarePath eofill } def + /BoldSquare { SquarePath .78 .78 scale SquarePath eofill } def + /PentagonPath { + -337.8 -465 moveto + 337.8 -465 lineto + 546.6 177.6 lineto + 0 574.7 lineto + -546.6 177.6 lineto + closepath + } def + /SolidPentagon { PentagonPath fill } def + /Pentagon { PentagonPath .89 .89 scale PentagonPath eofill } def + /BoldPentagon { PentagonPath .78 .78 scale PentagonPath eofill } def +% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga + /DiamondPath { 0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto + 428.5 0 lineto closepath } def + /SolidDiamond { DiamondPath fill } def + /Diamond { DiamondPath .85 .85 scale DiamondPath eofill } def + /BoldDiamond { DiamondPath .7 .7 scale DiamondPath eofill } def +% DG/SR modification end + /.notdef { } def + end + /BuildGlyph { + exch + begin + Metrics 1 index get exec 0 + BBoxes 3 index get exec + setcachedevice + CharProcs begin load exec end + end + } def + /BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec + } bind def +end +/PSTricksDotFont exch definefont pop +%END pst-dots.pro + +%%EndProcSet +%%BeginProcSet: pst-node.pro 0 0 +%! +% PostScript prologue for pst-node.tex. +% Version 97 patch 1, 97/05/09. +% For distribution, see pstricks.tex. +% +/tx@NodeDict 400 dict def tx@NodeDict begin +tx@Dict begin /T /translate load def end +/NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def } +if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next end +grestore } def +/InitPnode { /Y ED /X ED /NodePos { NodeSep Cos mul NodeSep Sin mul } def +} def +/InitCnode { /r ED /Y ED /X ED /NodePos { NodeSep r add dup Cos mul exch +Sin mul } def } def +/GetRnodePos { Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def +} ifelse Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def } +ifelse dx Sin mul abs dy Cos mul abs gt { dy Cos mul Sin div dy } { dx +dup Sin mul Cos Div } ifelse } def +/InitRnode { /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub +/u ED /NodePos { GetRnodePos } def } def +/DiaNodePos { w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup +Cos mul exch Sin mul } def +/TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w h +mul w Sin mul h Cos abs mul add Div NodeSep add dup Cos mul exch Sin mul +} ifelse } def +/InitTriNode { sub 2 div exch 2 div exch 2 copy T 2 copy 4 index index /d +ED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def d +sub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atan +sin def /NodePos { TriNodePos } def } def +/OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Cos +hh mul Atan dup cos ww mul exch sin hh mul } def +/GetCenter { begin X Y NodeMtrx transform CM itransform end } def +/XYPos { dup sin exch cos Do /Cos ED /Sin ED /Dist ED Cos 0 gt { Dist +Dist Sin mul Cos div } { Cos 0 lt { Dist neg Dist Sin mul Cos div neg } +{ 0 Dist Sin mul } ifelse } ifelse Do } def +/GetEdge { dup 0 eq { pop begin 1 0 NodeMtrx dtransform CM idtransform +exch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrx +dtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED pop +XYPos } ifelse } def +/AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1 +roll sin mul sub exch } ifelse } def +/GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleA +AddOffset yA add /yA1 ED xA add /xA1 ED } def +/GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleB +AddOffset yB add /yB1 ED xB add /xB1 ED } def +/GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmA +AngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do ED +ArmA AngleA XYPos OffsetA AngleA AddOffset yA add /yA2 ED xA add /xA2 ED +} ifelse } def +/GetArmB { ArmTypeB 0 eq { /xB2 ArmB AngleB cos mul xB1 add def /yB2 ArmB +AngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do ED +ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED +} ifelse } def +/InitNC { /b ED /a ED /NodeSepTypeB ED /NodeSepTypeA ED /NodeSepB ED +/NodeSepA ED /OffsetB ED /OffsetA ED tx@NodeDict a known tx@NodeDict b +known and dup { /NodeA a load def /NodeB b load def NodeA GetCenter /yA +ED /xA ED NodeB GetCenter /yB ED /xB ED } if } def +/LPutLine { 4 copy 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED 1 t sub +mul 3 1 roll 1 t sub mul 4 1 roll t mul add /Y ED t mul add /X ED } def +/LPutLines { mark LPutVar counttomark 2 div 1 sub /n ED t floor dup n gt +{ pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse cvi 2 mul { pop +} repeat LPutLine cleartomark } def +/BezierMidpoint { /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED +/t ED /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3 +mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx +sub def /ay y3 y0 sub cy sub by sub def ax t 3 exp mul bx t t mul mul +add cx t mul add x0 add ay t 3 exp mul by t t mul mul add cy t mul add +y0 add 3 ay t t mul mul mul 2 by t mul mul add cy add 3 ax t t mul mul +mul 2 bx t mul mul add cx add atan /NAngle ED /Y ED /X ED } def +/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def +} def +/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def +/NAngle yyB yyA sub xxB xxA sub Atan def } def +/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def +/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def +} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit +} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd +} def +/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def +} def +/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def +/NAngle yyB yyA sub xxB xxA sub Atan def } def +/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def +/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def +} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check { +exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark +VPosEnd } def +/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2 +roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx +def grestore exec /LPutVar /SaveLPutVar load def } def +/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def +GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos { +LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos { +LPutVar VPutLine } def LPutVar } def +/NCLine { NCCoor tx@Dict begin ArrowA CP 4 2 roll ArrowB lineto pop pop +end } def +/NCLines { false NArray n 0 eq { NCLine } { 2 copy yA sub exch xA sub +Atan /AngleA ED n 2 mul dup index exch index yB sub exch xB sub Atan +/AngleB ED GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1 +yA1 ] cvx def mark LPutVar tx@Dict begin false Line end /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +ifelse } def +/NCCurve { GetEdgeA GetEdgeB xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1 +roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA +GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict +begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ] +cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines +} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def +/NCAngles { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate +def xA2 yA2 mtrx transform pop xB2 yB2 mtrx transform exch pop mtrx +itransform /y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA2 +yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end /LPutVar [ xB1 +yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { LPutLines } def +/HPutPos { HPutLines } def /VPutPos { VPutLines } def } def +/NCAngle { GetEdgeA GetEdgeB GetArmB /mtrx AngleA matrix rotate def xB2 +yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform +/y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA1 yA1 +tx@Dict begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ] +cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +/NCBar { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate def +xA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrx +transform 3 -1 roll 0 gt { /yB2 exch yB2 add def /xB2 exch xB2 add def } +{ /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse mark ArmB +0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict +begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx +def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +/NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } if +xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end +/LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +def +/NCDiagg { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED +GetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin +false Line end /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +def +/NCLoop { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate +def xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2 +mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3 +mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 +xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false +Line end /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ] +cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +% DG/SR modification begin - May 9, 1997 - Patch 1 +%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r +%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add +%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 +%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED +/NCCircle { NodeSepA 0 NodeA 0 GetEdge pop 2 div dup 2 exp r +r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add +exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 +mul add dup 5 1 roll 90 sub PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED +% DG/SR modification end +} def /HPutPos { LPutPos } def /VPutPos { LPutPos } def r AngleA 90 sub a add +AngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 r +Div def /y ED /x ED } def +/NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB +180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cos +mul neg def /hx h AngleB sin mul neg def /hy h AngleB cos mul def +/LPutVar [ xA1 hx add yA1 hy add xB1 hx add yB1 hy add xB1 dx add yB1 dy +add xA1 dx add yA1 dy add ] cvx def /LPutPos { LPutLines } def /HPutPos +{ xB yB xA yA LPutLine } def /VPutPos { HPutPos } def mark LPutVar +tx@Dict begin false Polygon end } def +/NCArcBox { /l ED neg /d ED /h ED /a ED /AngleA yB yA sub xB xA sub Atan +def /AngleB AngleA 180 add def /tA AngleA a sub 90 add def /tB tA a 2 +mul add def /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def +/x0 xA r tA cos mul add def /y0 yA r tA sin mul add def /c 57.2958 r div +def /AngleA AngleA a sub 180 add def /AngleB AngleB a add 180 add def +GetEdgeA GetEdgeB /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul +sub def /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def l 0 +eq { x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn } +{ x0 y0 translate /tA AngleA l c mul add def /tB AngleB l c mul sub def +0 0 r h add tA tB arc r h add AngleB PtoC r d add AngleB PtoC 2 copy 6 2 +roll l arcto 4 { pop } repeat r d add tB PtoC l arcto 4 { pop } repeat 0 +0 r d add tB tA arcn r d add AngleA PtoC r h add AngleA PtoC 2 copy 6 2 +roll l arcto 4 { pop } repeat r h add tA PtoC l arcto 4 { pop } repeat } +ifelse closepath /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def /LPutPos +{ LPutVar /d ED /h ED /AngleB ED /AngleA ED /r ED /y0 ED /x0 ED t 1 le { +r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC } +{ t 2 lt { /NAngle AngleB 180 add def r 2 t sub h mul t 1 sub d mul add +add AngleB PtoC } { t 3 lt { r d add AngleB 3 t sub mul AngleA 2 t sub +mul add dup 90 sub /NAngle ED PtoC } { /NAngle AngleA 180 add def r 4 t +sub d mul t 3 sub h mul add add AngleA PtoC } ifelse } ifelse } ifelse +y0 add /Y ED x0 add /X ED } def /HPutPos { LPutPos } def /VPutPos { +LPutPos } def } def +/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB +sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1 +ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB +w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos +{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop } +{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine } +def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin +/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def +/LPutCoor { NAngle tx@Dict begin /NAngle ED end gsave CM STV CP Y sub neg +exch X sub neg exch moveto setmatrix CP grestore } def +/LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0 +def } ifelse LPutCoor } def +/HPutAdjust { Sin Cos mul 0 eq { 0 } { d Cos mul Sin div flag not { neg } +if h Cos mul Sin div flag { neg } if 2 copy gt { pop } { exch pop } +ifelse } ifelse s add flag { r add neg } { l add } ifelse X add /X ED } +def +/VPutAdjust { Sin Cos mul 0 eq { 0 } { l Sin mul Cos div flag { neg } if +r Sin mul Cos div flag not { neg } if 2 copy gt { pop } { exch pop } +ifelse } ifelse s add flag { d add } { h add neg } ifelse Y add /Y ED } +def +end +% END pst-node.pro + +%%EndProcSet +%%BeginProcSet: 3D.pro 0 0 +%version 31 octobre 2003 +% +/tx@3DDict 100 dict def +tx@3DDict begin +/Cube{% + /XA M11 A mul M12 B mul add M13 C mul add CX add def + /YA M21 A mul M22 B mul add M23 C mul add CY add def + /ZA M31 A mul M32 B mul add M33 C mul add CZ add def + /XB M11 A mul neg M12 B mul add M13 C mul add CX add def + /YB M21 A mul neg M22 B mul add M23 C mul add CY add def + /ZB M31 A mul neg M32 B mul add M33 C mul add CZ add def + /XC M11 A mul neg M12 B mul neg add M13 C mul add CX add def + /YC M21 A mul neg M22 B mul neg add M23 C mul add CY add def + /ZC M31 A mul neg M32 B mul neg add M33 C mul add CZ add def + /XD M11 A mul M12 B mul neg add M13 C mul add CX add def + /YD M21 A mul M22 B mul neg add M23 C mul add CY add def + /ZD M31 A mul M32 B mul neg add M33 C mul add CZ add def + /XE M11 A mul M12 B mul add M13 C mul sub CX add def + /YE M21 A mul M22 B mul add M23 C mul sub CY add def + /ZE M31 A mul M32 B mul add M33 C mul sub CZ add def + /XF M11 A mul neg M12 B mul add M13 C mul sub CX add def + /YF M21 A mul neg M22 B mul add M23 C mul sub CY add def + /ZF M31 A mul neg M32 B mul add M33 C mul sub CZ add def + /XG M11 A mul neg M12 B mul sub M13 C mul sub CX add def + /YG M21 A mul neg M22 B mul sub M23 C mul sub CY add def + /ZG M31 A mul neg M32 B mul sub M33 C mul sub CZ add def + /XH M11 A mul M12 B mul sub M13 C mul sub CX add def + /YH M21 A mul M22 B mul sub M23 C mul sub CY add def + /ZH M31 A mul M32 B mul sub M33 C mul sub CZ add def +% Centres des faces : condition de visibilité +% FACE 1 +% OC1 + /XC1 M13 C mul CX add def + /YC1 M23 C mul CY add def + /ZC1 M33 C mul CZ add def +% Normale à la face 1 + /NX1 M13 C mul def + /NY1 M23 C mul def + /NZ1 M33 C mul def +% rayon vers point de vue + /RXvue1 XC1 XpointVue sub def + /RYvue1 YC1 YpointVue sub def + /RZvue1 ZC1 ZpointVue sub def +% produit scalaire + /PS1 RXvue1 NX1 mul RYvue1 NY1 mul add RZvue1 NZ1 mul add def +% FACE 2 +% OC2 + /XC2 M11 A mul CX add def + /YC2 M21 A mul CY add def + /ZC2 M31 A mul CZ add def +% normale à la face 2 + /NX2 M11 A mul def + /NY2 M21 A mul def + /NZ2 M31 A mul def +% rayon vers point de vue + /RXvue2 XC2 XpointVue sub def + /RYvue2 YC2 YpointVue sub def + /RZvue2 ZC2 ZpointVue sub def +% produit scalaire + /PS2 RXvue2 NX2 mul RYvue2 NY2 mul add RZvue2 NZ2 mul add def +% FACE 3 +% OC3 + /XC3 M13 C neg mul CX add def + /YC3 M23 C neg mul CY add def + /ZC3 M33 C neg mul CZ add def +% normale à la face 3 + /NX3 M13 C neg mul def + /NY3 M23 C neg mul def + /NZ3 M33 C neg mul def +% rayon vers point de vue + /RXvue3 XC3 XpointVue sub def + /RYvue3 YC3 YpointVue sub def + /RZvue3 ZC3 ZpointVue sub def +% produit scalaire + /PS3 RXvue3 NX3 mul RYvue3 NY3 mul add RZvue3 NZ3 mul add def +% FACE 4 +% OC4 + /XC4 M11 A neg mul CX add def + /YC4 M21 A neg mul CY add def + /ZC4 M31 A neg mul CZ add def +% normale à la face 4 + /NX4 M11 A neg mul def + /NY4 M21 A neg mul def + /NZ4 M31 A neg mul def +% rayon vers point de vue + /RXvue4 XC4 XpointVue sub def + /RYvue4 YC4 YpointVue sub def + /RZvue4 ZC4 ZpointVue sub def +% produit scalaire + /PS4 RXvue4 NX4 mul RYvue4 NY4 mul add RZvue4 NZ4 mul add def +% FACE 5 +% OC5 + /XC5 M12 B neg mul CX add def + /YC5 M22 B neg mul CY add def + /ZC5 M32 B neg mul CZ add def +% normale à la face 5 + /NX5 M12 B neg mul def + /NY5 M22 B neg mul def + /NZ5 M32 B neg mul def +% rayon vers point de vue + /RXvue5 XC5 XpointVue sub def + /RYvue5 YC5 YpointVue sub def + /RZvue5 ZC5 ZpointVue sub def +% produit scalaire + /PS5 RXvue5 NX5 mul RYvue5 NY5 mul add RZvue5 NZ5 mul add def +% FACE 6 +% OC6 + /XC6 M12 B mul CX add def + /YC6 M22 B mul CY add def + /ZC6 M32 B mul CZ add def +% normale à la face 6 + /NX6 M12 B mul def + /NY6 M22 B mul def + /NZ6 M32 B mul def +% rayon vers point de vue + /RXvue6 XC6 XpointVue sub def + /RYvue6 YC6 YpointVue sub def + /RZvue6 ZC6 ZpointVue sub def +% produit scalaire + /PS6 RXvue6 NX6 mul RYvue6 NY6 mul add RZvue6 NZ6 mul add def +% faceOne +PS1 0 Condition { % +reduction reduction scale +1 setlinejoin +newpath + /Yordonnee YA def + /Zcote ZA def + /Xabscisse XA def + CalcCoordinates + moveto + /Zcote ZB def + /Xabscisse XB def + /Yordonnee YB def + CalcCoordinates + lineto + /Zcote ZC def + /Xabscisse XC def + /Yordonnee YC def + CalcCoordinates + lineto + /Zcote ZD def + /Xabscisse XD def + /Yordonnee YD def + CalcCoordinates + lineto + /Zcote ZA def + /Xabscisse XA def + /Yordonnee YA def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceOne setrgbcolor +fill +grestore +stroke +} if +% faceTwo +PS2 0 Condition{ % +reduction reduction scale +1 setlinejoin +newpath + /Xabscisse XA def + /Yordonnee YA def + /Zcote ZA def + CalcCoordinates + moveto + /Zcote ZD def + /Xabscisse XD def + /Yordonnee YD def + CalcCoordinates + lineto + /Zcote ZH def + /Xabscisse XH def + /Yordonnee YH def + CalcCoordinates + lineto + /Zcote ZE def + /Xabscisse XE def + /Yordonnee YE def + CalcCoordinates + lineto + /Zcote ZA def + /Xabscisse XA def + /Yordonnee YA def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceTwo setrgbcolor +fill +grestore +stroke +} if +% face three +PS3 0 Condition{ % +reduction reduction scale +1 setlinejoin +newpath + /Xabscisse XE def + /Yordonnee YE def + /Zcote ZE def + CalcCoordinates + moveto + /Zcote ZF def + /Xabscisse XF def + /Yordonnee YF def + CalcCoordinates + lineto + /Zcote ZG def + /Xabscisse XG def + /Yordonnee YG def + CalcCoordinates + lineto + /Zcote ZH def + /Xabscisse XH def + /Yordonnee YH def + CalcCoordinates + lineto + /Zcote ZE def + /Xabscisse XE def + /Yordonnee YE def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceThree setrgbcolor +fill +grestore +stroke +} if +% face four +PS4 0 Condition{ % +reduction reduction scale +1 setlinejoin +newpath + /Xabscisse XB def + /Yordonnee YB def + /Zcote ZB def + CalcCoordinates + moveto + /Zcote ZF def + /Xabscisse XF def + /Yordonnee YF def + CalcCoordinates + lineto + /Zcote ZG def + /Xabscisse XG def + /Yordonnee YG def + CalcCoordinates + lineto + /Zcote ZC def + /Xabscisse XC def + /Yordonnee YC def + CalcCoordinates + lineto + /Zcote ZB def + /Xabscisse XB def + /Yordonnee YB def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceFour setrgbcolor +fill +grestore +stroke +} if +% face five +PS5 0 Condition{ % +reduction reduction scale +1 setlinejoin +newpath + /Xabscisse XC def + /Yordonnee YC def + /Zcote ZC def + CalcCoordinates + moveto + /Zcote ZD def + /Xabscisse XD def + /Yordonnee YD def + CalcCoordinates + lineto + /Zcote ZH def + /Xabscisse XH def + /Yordonnee YH def + CalcCoordinates + lineto + /Zcote ZG def + /Xabscisse XG def + /Yordonnee YG def + CalcCoordinates + lineto + /Zcote ZC def + /Xabscisse XC def + /Yordonnee YC def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceFive setrgbcolor +fill +grestore +stroke +} if +% face six +PS6 0 Condition{ % +reduction reduction scale +1 setlinejoin +newpath + /Xabscisse XB def + /Yordonnee YB def + /Zcote ZB def + CalcCoordinates + moveto + /Zcote ZA def + /Xabscisse XA def + /Yordonnee YA def + CalcCoordinates + lineto + /Zcote ZE def + /Xabscisse XE def + /Yordonnee YE def + CalcCoordinates + lineto + /Zcote ZF def + /Xabscisse XF def + /Yordonnee YF def + CalcCoordinates + lineto + /Zcote ZB def + /Xabscisse XB def + /Yordonnee YB def + CalcCoordinates + lineto +closepath +gsave +CubeColorFaceSix setrgbcolor +fill +grestore +stroke +} if +} +def +% +/PointsDie{% +PS6 0 Condition{ % +reduction reduction scale +A 2 div neg A A 2 div { + /XCpoint exch def +C 2 div neg C C 2 div { + /ZCpoint exch def +newpath + /Zpoint Rpoint ZCpoint add def + /Xpoint XCpoint def + /Ypoint B def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Zpoint Rpoint Angle cos mul ZCpoint add def + /Xpoint Rpoint Angle sin mul XCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill + } for + } for + } if +PS5 0 Condition{ % +reduction reduction scale +newpath + /Ypoint B neg def + /XCpoint A 2 div neg def + /ZCpoint C 2 div def + /Xpoint Rpoint XCpoint add def + /Zpoint ZCpoint def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint Rpoint Angle cos mul XCpoint add def + /Zpoint Rpoint Angle sin mul ZCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +% +newpath + /XCpoint A 2 div def + /ZCpoint C 2 div neg def + /Xpoint Rpoint XCpoint add def + /Zpoint ZCpoint def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint Rpoint Angle cos mul XCpoint add def + /Zpoint Rpoint Angle sin mul ZCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +% +newpath + /XCpoint 0 def + /ZCpoint 0 def + /Xpoint Rpoint XCpoint add def + /Zpoint ZCpoint def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint Rpoint Angle cos mul XCpoint add def + /Zpoint Rpoint Angle sin mul ZCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +} if +PS4 0 Condition{ % +reduction reduction scale +C 2 div neg C C 2 div { + /ZCpoint exch def +B 2 div neg B B 2 div { + /YCpoint exch def +newpath + /Zpoint Rpoint ZCpoint add def + /Ypoint YCpoint def + /Xpoint A neg def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Zpoint Rpoint Angle cos mul ZCpoint add def + /Ypoint Rpoint Angle sin mul YCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill + } for + } for +% le point du milieu +newpath + /Zpoint Rpoint def + /Ypoint 0 def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Zpoint Rpoint Angle cos mul def + /Ypoint Rpoint Angle sin mul def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +} if +PS3 0 Condition{ % +reduction reduction scale +A 2 div neg A A 2 div { + /XCpoint exch def +B 2 div neg B 2 div B 2 div { + /YCpoint exch def +newpath + /Xpoint Rpoint XCpoint add def + /Ypoint YCpoint def + /Zpoint C neg def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint Rpoint Angle cos mul XCpoint add def + /Ypoint Rpoint Angle sin mul YCpoint add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill + } for + } for +} if +PS2 0 Condition{ % +reduction reduction scale +newpath + /Xpoint A def + /Ypoint Rpoint B 2 div add def + /Zpoint C 2 div neg def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Ypoint Rpoint Angle cos mul B 2 div add def + /Zpoint Rpoint Angle sin mul C 2 div sub def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +newpath + /Xpoint A def + /Ypoint Rpoint B 2 div sub def + /Zpoint C 2 div def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint A def + /Ypoint Rpoint Angle cos mul B 2 div sub def + /Zpoint Rpoint Angle sin mul A 2 div add def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +} if +PS1 0 Condition{ % +reduction reduction scale +newpath + /Xpoint Rpoint def + /Ypoint 0 def + /Zpoint C def +CalculsPointsAfterTransformations +CalcCoordinates + moveto +0 1 359 {% + /Angle exch def + /Xpoint Rpoint Angle cos mul def + /Ypoint Rpoint Angle sin mul def +CalculsPointsAfterTransformations +CalcCoordinates + lineto + } for +closepath +0 setgray +fill +} if +} def +% +/CalcCoordinates{% + formulesTroisD + Xi 28.45 mul Yi 28.45 mul + } + def +% pour la 3D conventionnelle +/formulesTroisD{% + /xObservateur Xabscisse Sin1 mul neg Yordonnee Cos1 mul add def + /yObservateur Xabscisse Cos1Sin2 mul neg Yordonnee Sin1Sin2 mul sub Zcote Cos2 mul add def + /zObservateur Xabscisse neg Cos1Cos2 mul Yordonnee Sin1Cos2 mul sub Zcote Sin2 mul sub Dobs add def + /Xi DScreen xObservateur mul zObservateur div def + /Yi DScreen yObservateur mul zObservateur div def + } +def +% +/CalculsPointsAfterTransformations{% + /Xabscisse M11 Xpoint mul M12 Ypoint mul add M13 Zpoint mul add CX add def + /Yordonnee M21 Xpoint mul M22 Ypoint mul add M23 Zpoint mul add CY add def + /Zcote M31 Xpoint mul M32 Ypoint mul add M33 Zpoint mul add CZ add def + } +def +% +/SommetsTetraedre{% + /xA RayonBaseTetraedre neg def + /yA 0 def + /zA 0 def + /xB 0.5 RayonBaseTetraedre mul def + /yB RayonBaseTetraedre 0.866 mul neg def + /zB 0 def + /xC xB def + /yC yB neg def + /zC 0 def + /xD 0 def + /yD 0 def + /zD RayonBaseTetraedre 1.414 mul def +% coordonnées centre des faces + /xFaceA xA xB xC add add 3 div def + /yFaceA yA yB yC add add 3 div def + /zFaceA zA zB zC add add 3 div def + /xFaceB xD xA xB add add 3 div def + /yFaceB yD yA yB add add 3 div def + /zFaceB zD zA zB add add 3 div def + /xFaceC xA xD xC add add 3 div def + /yFaceC yA yD yC add add 3 div def + /zFaceC zA zD zC add add 3 div def + /xFaceD xD xB xC add add 3 div def + /yFaceD yD yB yC add add 3 div def + /zFaceD zD zB zC add add 3 div def +% sommets après rotation et translation + /XA M11 xA mul M12 yA mul add M13 zA mul add CX add def + /YA M21 xA mul M22 yA mul add M23 zA mul add CY add def + /ZA M31 xA mul M32 yA mul add M33 zA mul add CZ add def + /XB M11 xB mul M12 yB mul add M13 zB mul add CX add def + /YB M21 xB mul M22 yB mul add M23 zB mul add CY add def + /ZB M31 xB mul M32 yB mul add M33 zB mul add CZ add def + /XC M11 xC mul M12 yC mul add M13 zC mul add CX add def + /YC M21 xC mul M22 yC mul add M23 zC mul add CY add def + /ZC M31 xC mul M32 yC mul add M33 zC mul add CZ add def + /XD M11 xD mul M12 yD mul add M13 zD mul add CX add def + /YD M21 xD mul M22 yD mul add M23 zD mul add CY add def + /ZD M31 xD mul M32 yD mul add M33 zD mul add CZ add def +% centres de faces après transformations + /XFaceA M11 xFaceA mul M12 yFaceA mul add M13 zFaceA mul add CX add def + /YFaceA M21 xFaceA mul M22 yFaceA mul add M23 zFaceA mul add CY add def + /ZFaceA M31 xFaceA mul M32 yFaceA mul add M33 zFaceA mul add CZ add def + /XFaceB M11 xFaceB mul M12 yFaceB mul add M13 zFaceB mul add CX add def + /YFaceB M21 xFaceB mul M22 yFaceB mul add M23 zFaceB mul add CY add def + /ZFaceB M31 xFaceB mul M32 yFaceB mul add M33 zFaceB mul add CZ add def + /XFaceC M11 xFaceC mul M12 yFaceC mul add M13 zFaceC mul add CX add def + /YFaceC M21 xFaceC mul M22 yFaceC mul add M23 zFaceC mul add CY add def + /ZFaceC M31 xFaceC mul M32 yFaceC mul add M33 zFaceC mul add CZ add def + /XFaceD M11 xFaceD mul M12 yFaceD mul add M13 zFaceD mul add CX add def + /YFaceD M21 xFaceD mul M22 yFaceD mul add M23 zFaceD mul add CY add def + /ZFaceD M31 xFaceD mul M32 yFaceD mul add M33 zFaceD mul add CZ add def +% Normales aux faces + /NxA XFaceA XD sub def + /NyA YFaceA YD sub def + /NzA ZFaceA ZD sub def + /NxB XFaceB XC sub def + /NyB YFaceB YC sub def + /NzB ZFaceB ZC sub def + /NxC XFaceC XB sub def + /NyC YFaceC YB sub def + /NzC ZFaceC ZB sub def + /NxD XFaceD XA sub def + /NyD YFaceD YA sub def + /NzD ZFaceD ZA sub def +% Conditions de visibilité +% rayon vers point de vue + /RXvueA XFaceA XpointVue sub def + /RYvueA YFaceA YpointVue sub def + /RZvueA ZFaceA ZpointVue sub def + /RXvueB XFaceB XpointVue sub def + /RYvueB YFaceB YpointVue sub def + /RZvueB ZFaceB ZpointVue sub def + /RXvueC XFaceC XpointVue sub def + /RYvueC YFaceC YpointVue sub def + /RZvueC ZFaceC ZpointVue sub def + /RXvueD XFaceD XpointVue sub def + /RYvueD YFaceD YpointVue sub def + /RZvueD ZFaceD ZpointVue sub def +% produit scalaire + /PSA RXvueA NxA mul RYvueA NyA mul add RZvueA NzA mul add def + /PSB RXvueB NxB mul RYvueB NyB mul add RZvueB NzB mul add def + /PSC RXvueC NxC mul RYvueC NyC mul add RZvueC NzC mul add def + /PSD RXvueD NxD mul RYvueD NyD mul add RZvueD NzD mul add def + } + def +/Tetraedre{% +SommetsTetraedre +% face ABC + PSA 0 le { % +reduction reduction scale +1 setlinejoin + /Xabscisse XA def + /Yordonnee YA def + /Zcote ZA def + CalcCoordinates + moveto + /Xabscisse XB def + /Yordonnee YB def + /Zcote ZB def + CalcCoordinates + lineto + /Xabscisse XC def + /Yordonnee YC def + /Zcote ZC def + CalcCoordinates + lineto + /Xabscisse XA def + /Yordonnee YA def + /Zcote ZA def + CalcCoordinates + lineto +} if +% face DAB + PSB 0 le { % +reduction reduction scale +1 setlinejoin + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + moveto + /Xabscisse XA def + /Yordonnee YA def + /Zcote ZA def + CalcCoordinates + lineto + /Xabscisse XB def + /Yordonnee YB def + /Zcote ZB def + CalcCoordinates + lineto + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + lineto +} if +% face DAC +PSC 0 le { % +reduction reduction scale +1 setlinejoin + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + moveto + /Xabscisse XA def + /Yordonnee YA def + /Zcote ZA def + CalcCoordinates + lineto + /Xabscisse XC def + /Yordonnee YC def + /Zcote ZC def + CalcCoordinates + lineto + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + lineto +} if +% face DBC + PSD 0 le { % +reduction reduction scale +1 setlinejoin + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + moveto + /Xabscisse XB def + /Yordonnee YB def + /Zcote ZB def + CalcCoordinates + lineto + /Xabscisse XC def + /Yordonnee YC def + /Zcote ZC def + CalcCoordinates + lineto + /Xabscisse XD def + /Yordonnee YD def + /Zcote ZD def + CalcCoordinates + lineto +} if +} +def +% +/SommetsPyramide{% + /xA A def + /yA A neg def + /zA 0 def + /xB A def + /yB A def + /zB 0 def + /xC A neg def + /yC A def + /zC 0 def + /xD A neg def + /yD A neg def + /zD 0 def + /xS 0 def + /yS 0 def + /zS Hpyramide def +% coordonnées centre des faces + /Alpha A Hpyramide atan def + /xFaceSAB Hpyramide Alpha dup sin exch cos mul mul def + /yFaceSAB 0 def + /zFaceSAB Hpyramide Alpha sin dup mul mul def + /xFaceSBC 0 def + /yFaceSBC xFaceSAB def + /zFaceSBC zFaceSAB fracHeight mul def + /xFaceSCD xFaceSAB neg def + /yFaceSCD 0 def + /zFaceSCD zFaceSAB fracHeight mul def + /xFaceSDA 0 def + /yFaceSDA xFaceSAB neg def + /zFaceSDA zFaceSAB fracHeight mul def +% sommets après rotation et translation + /XA M11 xA mul M12 yA mul add M13 zA mul add CX add def + /YA M21 xA mul M22 yA mul add M23 zA mul add CY add def + /ZA M31 xA mul M32 yA mul add M33 zA mul add CZ add def + /XB M11 xB mul M12 yB mul add M13 zB mul add CX add def + /YB M21 xB mul M22 yB mul add M23 zB mul add CY add def + /ZB M31 xB mul M32 yB mul add M33 zB mul add CZ add def + /XC M11 xC mul M12 yC mul add M13 zC mul add CX add def + /YC M21 xC mul M22 yC mul add M23 zC mul add CY add def + /ZC M31 xC mul M32 yC mul add M33 zC mul add CZ add def + /XD M11 xD mul M12 yD mul add M13 zD mul add CX add def + /YD M21 xD mul M22 yD mul add M23 zD mul add CY add def + /ZD M31 xD mul M32 yD mul add M33 zD mul add CZ add def + /XS M11 xS mul M12 yS mul add M13 zS mul add CX add def + /YS M21 xS mul M22 yS mul add M23 zS mul add CY add def + /ZS M31 xS mul M32 yS mul add M33 zS mul add CZ add def +% centres de faces après transformations + /XFaceSAB M11 xFaceSAB mul M12 yFaceSAB mul add M13 zFaceSAB mul add CX add def + /YFaceSAB M21 xFaceSAB mul M22 yFaceSAB mul add M23 zFaceSAB mul add CY add def + /ZFaceSAB M31 xFaceSAB mul M32 yFaceSAB mul add M33 zFaceSAB mul add CZ add def + /XFaceSBC M11 xFaceSBC mul M12 yFaceSBC mul add M13 zFaceSBC mul add CX add def + /YFaceSBC M21 xFaceSBC mul M22 yFaceSBC mul add M23 zFaceSBC mul add CY add def + /ZFaceSBC M31 xFaceSBC mul M32 yFaceSBC mul add M33 zFaceSBC mul add CZ add def + /XFaceSCD M11 xFaceSCD mul M12 yFaceSCD mul add M13 zFaceSCD mul add CX add def + /YFaceSCD M21 xFaceSCD mul M22 yFaceSCD mul add M23 zFaceSCD mul add CY add def + /ZFaceSCD M31 xFaceSCD mul M32 yFaceSCD mul add M33 zFaceSCD mul add CZ add def + /XFaceSDA M11 xFaceSDA mul M12 yFaceSDA mul add M13 zFaceSDA mul add CX add def + /YFaceSDA M21 xFaceSDA mul M22 yFaceSDA mul add M23 zFaceSDA mul add CY add def + /ZFaceSDA M31 xFaceSDA mul M32 yFaceSDA mul add M33 zFaceSDA mul add CZ add def +% Normales aux faces + /NxSAB XFaceSAB CX sub def + /NySAB YFaceSAB CY sub def + /NzSAB ZFaceSAB CZ sub def + /NxSBC XFaceSBC CX sub def + /NySBC YFaceSBC CY sub def + /NzSBC ZFaceSBC CZ sub def + /NxSCD XFaceSCD CX sub def + /NySCD YFaceSCD CY sub def + /NzSCD ZFaceSCD CZ sub def + /NxSDA XFaceSDA CX sub def + /NySDA YFaceSDA CY sub def + /NzSDA ZFaceSDA CZ sub def + /NxABCD CX XS sub def + /NyABCD CY YS sub def + /NzABCD CZ ZS sub def +% Conditions de visibilité +% rayon vers point de vue + /RXvueSAB XFaceSAB XpointVue sub def + /RYvueSAB YFaceSAB YpointVue sub def + /RZvueSAB ZFaceSAB ZpointVue sub def + /RXvueSBC XFaceSBC XpointVue sub def + /RYvueSBC YFaceSBC YpointVue sub def + /RZvueSBC ZFaceSBC ZpointVue sub def + /RXvueSCD XFaceSCD XpointVue sub def + /RYvueSCD YFaceSCD YpointVue sub def + /RZvueSCD ZFaceSCD ZpointVue sub def + /RXvueSDA XFaceSDA XpointVue sub def + /RYvueSDA YFaceSDA YpointVue sub def + /RZvueSDA ZFaceSDA ZpointVue sub def + /RXvueABCD CX XpointVue sub def + /RYvueABCD CY YpointVue sub def + /RZvueABCD CZ ZpointVue sub def + /PSAB RXvueSAB NxSAB mul RYvueSAB NySAB mul add RZvueSAB NzSAB mul add def + /PSBC RXvueSBC NxSBC mul RYvueSBC NySBC mul add RZvueSBC NzSBC mul add def + /PSCD RXvueSCD NxSCD mul RYvueSCD NySCD mul add RZvueSCD NzSCD mul add def + /PSDA RXvueSDA NxSDA mul RYvueSDA NySDA mul add RZvueSDA NzSDA mul add def + /PSABCD RXvueABCD NxABCD mul RYvueABCD NyABCD mul add RZvueABCD NzABCD mul add def + } + def +% +/MaillageSphere { +0 increment 360 increment sub {% + /theta exch def +departPhi increment 90 increment sub {% + /phi exch def +% newpath + /Xpoint Rsphere theta cos mul phi cos mul def + /Ypoint Rsphere theta sin mul phi cos mul def + /Zpoint Rsphere phi sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + moveto +% Centre de la facette + /Xpoint Rsphere theta increment 2 div add cos mul phi increment 2 div add cos mul def + /Ypoint Rsphere theta increment 2 div add sin mul phi increment 2 div add cos mul def + /Zpoint Rsphere phi increment 2 div add sin mul def +CalculsPointsAfterTransformations + /xCentreFacette Xabscisse def + /yCentreFacette Yordonnee def + /zCentreFacette Zcote def +% normale à la facette + /nXfacette xCentreFacette CX sub def + /nYfacette yCentreFacette CY sub def + /nZfacette zCentreFacette CZ sub def +% rayon vers point de vue + /RXvue xCentreFacette XpointVue sub def + /RYvue yCentreFacette YpointVue sub def + /RZvue zCentreFacette ZpointVue sub def +% test de visibilité + /PSfacette RXvue nXfacette mul + RYvue nYfacette mul add + RZvue nZfacette mul add + def +condition { +theta 1 theta increment add {% + /theta1 exch def + /Xpoint Rsphere theta1 cos mul phi cos mul def + /Ypoint Rsphere theta1 sin mul phi cos mul def + /Zpoint Rsphere phi sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +phi 1 phi increment add { + /phi1 exch def + /Xpoint Rsphere theta increment add cos mul phi1 cos mul def + /Ypoint Rsphere theta increment add sin mul phi1 cos mul def + /Zpoint Rsphere phi1 sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +theta increment add -1 theta {% + /theta1 exch def + /Xpoint Rsphere theta1 cos mul phi increment add cos mul def + /Ypoint Rsphere theta1 sin mul phi increment add cos mul def + /Zpoint Rsphere phi increment add sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +phi increment add -1 phi { + /phi1 exch def + /Xpoint Rsphere theta cos mul phi1 cos mul def + /Ypoint Rsphere theta sin mul phi1 cos mul def + /Zpoint Rsphere phi1 sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +} if +} for +} for +} def +% +/CylinderThreeD{ +reduction reduction scale +1 setlinejoin +0 incrementANGLE 360 {% + /theta exch def + 0 incrementHAUTEUR Hcylindre incrementHAUTEUR sub {% + /H exch def +% newpath + /X1 Rcylindre theta cos mul def + /Y1 Rcylindre theta sin mul def + /Z1 H def + /Xpoint X1 def + /Ypoint Y1 def + /Zpoint Z1 def +CalculsPointsAfterTransformations + /Xfacette Xabscisse def + /Yfacette Yordonnee def + /Zfacette Zcote def + CalcCoordinates + moveto +% coordonnées du centre de la facette + /Xpoint Rcylindre theta incrementANGLE 2 div add cos mul def + /Ypoint Rcylindre theta incrementANGLE 2 div add sin mul def + /Zpoint H incrementHAUTEUR 2 div add def +CalculsPointsAfterTransformations +% Point sur l'axe du cylindre +% à la même hauteur que M1 + /Zpoint Z1 def + /Xpoint 0 def + /Ypoint 0 def +CalculsPointsAfterTransformations +% normale à la facette + /nXfacette Xfacette Xabscisse sub def + /nYfacette Yfacette Yordonnee sub def + /nZfacette Zfacette Zcote sub def +% rayon vers point de vue + /RXvue Xfacette XpointVue sub def + /RYvue Yfacette YpointVue sub def + /RZvue Zfacette ZpointVue sub def +% test de visibilité + /PSfacette nXfacette RXvue mul + nYfacette RYvue mul add + nZfacette RZvue mul add + def +PSfacette 0 le { +theta 1 theta incrementANGLE add {% + /theta1 exch def + /Xpoint Rcylindre theta1 cos mul def + /Ypoint Rcylindre theta1 sin mul def + /Zpoint H def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +H 1 H incrementHAUTEUR add { + /H1 exch def + /Xpoint Rcylindre theta incrementANGLE add cos mul def + /Ypoint Rcylindre theta incrementANGLE add sin mul def + /Zpoint H1 def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +theta incrementANGLE add -1 theta {% + /theta1 exch def + /Xpoint Rcylindre theta1 cos mul def + /Ypoint Rcylindre theta1 sin mul def + /Zpoint H incrementHAUTEUR add def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +H incrementHAUTEUR add -1 H { + /H1 exch def + /Xpoint Rcylindre theta cos mul def + /Ypoint Rcylindre theta sin mul def + /Zpoint H1 def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +} if +} for +} for +% Face supérieure +% centre de la face supérieure + /Xpoint 0 def + /Zpoint Hcylindre def + /Ypoint 0 def +CalculsPointsAfterTransformations + /CxFaceSup Xabscisse def + /CyFaceSup Yordonnee def + /CzFaceSup Zcote def +% centre de la face inférieure + /CxFaceInf CX def + /CyFaceInf CY def + /CzFaceInf CZ def +% Normale à la face supérieure + /nXFaceSup CxFaceSup CxFaceInf sub def + /nYFaceSup CyFaceSup CyFaceInf sub def + /nZFaceSup CzFaceSup CzFaceInf sub def +% rayon vers point de vue verd la face inférieure + /RXvueInf CxFaceInf XpointVue sub def + /RYvueInf CyFaceInf YpointVue sub def + /RZvueInf CzFaceInf ZpointVue sub def +% rayon vers point de vue verd la face supérieure + /RXvueSup CxFaceSup XpointVue sub def + /RYvueSup CyFaceSup YpointVue sub def + /RZvueSup CzFaceSup ZpointVue sub def +% Visibilité face supérieure + /PSfaceSup RXvueSup nXFaceSup mul + RYvueSup nYFaceSup mul add + RZvueSup nZFaceSup mul add def +% Visibilité face inférieure + /PSfaceInf RXvueInf nXFaceSup neg mul + RYvueInf nYFaceSup mul sub + RZvueInf nZFaceSup mul sub def +PSfaceSup 0 le { +/TableauxPoints [ +0 1 359 {% on décrit le cercle + /theta exch def [ + /Xpoint Rcylindre theta cos mul def + /Ypoint Rcylindre theta sin mul def + /Zpoint Hcylindre def +CalculsPointsAfterTransformations + CalcCoordinates ] + } for + ] def +gsave +newpath + TableauxPoints 0 get aload pop moveto +0 1 359 { + /compteur exch def + TableauxPoints compteur get aload pop + lineto } for +0.7 setgray +closepath +fill +grestore + } if +% face inférieure +PSfaceInf 0 le { +/TableauxPoints [ +0 1 359 {% on décrit le cercle + /theta exch def [ + /Xpoint Rcylindre theta cos mul def + /Ypoint Rcylindre theta sin mul def + /Zpoint 0 def +CalculsPointsAfterTransformations + CalcCoordinates ] + } for + ] def +gsave +newpath + TableauxPoints 0 get aload pop moveto + 0 1 359 { + /compteur exch def + TableauxPoints compteur get aload pop + lineto } for +0.7 setgray +closepath +fill +grestore + } if + } def +% + % +/ConeThreeD{ + /AngleCone Rcone Hcone atan def + /TanAngleCone AngleCone dup sin exch cos div def + /incrementANGLE 10 def + /incrementHAUTEUR Hcone fracHeight mul 5 div def +1 setlinejoin +newpath +0 incrementANGLE 360 {% + /theta exch def + 0 incrementHAUTEUR Hcone fracHeight mul incrementHAUTEUR sub {% + /H exch def + % normale à la facette + /nXfacette Hcone AngleCone dup sin exch cos mul theta incrementANGLE 2 div add cos mul + mul def + /nYfacette Hcone AngleCone dup sin exch cos mul theta incrementANGLE 2 div add sin mul + mul def + /nZfacette Hcone AngleCone sin dup mul mul def + /Xpoint nXfacette def + /Ypoint nYfacette def + /Zpoint nZfacette def +CalculsPointsAfterTransformations + /nXfacette Xabscisse CX sub def + /nYfacette Yordonnee CY sub def + /nZfacette Zcote CZ sub def +% + /OK Hcone H sub TanAngleCone mul def + /Xpoint OK theta cos mul def + /Ypoint OK theta sin mul def + /Zpoint H def +CalculsPointsAfterTransformations + /Xfacette Xabscisse def + /Yfacette Yordonnee def + /Zfacette Zcote def + CalcCoordinates + moveto +% coordonnées du centre de la facette + /OK Hcone H incrementHAUTEUR 2 div add sub TanAngleCone mul def + /Xpoint OK theta incrementANGLE 2 div add cos mul def + /Ypoint OK theta incrementANGLE 2 div add sin mul def + /Zpoint H incrementHAUTEUR 2 div add def +CalculsPointsAfterTransformations + /XcentreFacette Xabscisse def + /YcentreFacette Yordonnee def + /ZcentreFacette Zcote def +% rayon vers point de vue + /RXvue XcentreFacette XpointVue sub def + /RYvue YcentreFacette YpointVue sub def + /RZvue ZcentreFacette ZpointVue sub def +% test de visibilité + /PSfacette nXfacette RXvue mul + nYfacette RYvue mul add + nZfacette RZvue mul add + def +PSfacette 0 le { +theta 1 theta incrementANGLE add {% + /theta1 exch def + /OK Hcone H sub TanAngleCone mul def + /Xpoint OK theta1 cos mul def + /Ypoint OK theta1 sin mul def + /Zpoint H def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +H 1 H incrementHAUTEUR add { + /H1 exch def + /OK Hcone H1 sub TanAngleCone mul def + /Xpoint OK theta incrementANGLE add cos mul def + /Ypoint OK theta incrementANGLE add sin mul def + /Zpoint H1 def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +theta incrementANGLE add -1 theta {% + /theta1 exch def + /OK Hcone H incrementHAUTEUR add sub TanAngleCone mul def + /Xpoint OK theta1 cos mul def + /Ypoint OK theta1 sin mul def + /Zpoint H incrementHAUTEUR add def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +H incrementHAUTEUR add -1 H { + /H1 exch def + /OK Hcone H1 sub TanAngleCone mul def + /Xpoint OK theta cos mul def + /Ypoint OK theta sin mul def + /Zpoint H1 def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +} if +} for +} for +% centre de la base inférieure après transformations + /CxFaceInf CX def + /CyFaceInf CY def + /CzFaceInf CZ def +% modification du 16/11/2002 +% /Xpoint CxFaceInf def +% /Ypoint CyFaceInf def +% /Zpoint CzFaceInf def + /Xpoint 0 def + /Ypoint 0 def + /Zpoint 0 def +% fin modification du 16/11/2002 +CalculsPointsAfterTransformations + /CxBaseInf Xabscisse def + /CyBaseInf Yordonnee def + /CzBaseInf Zcote def +% centre de la base supérieure avant transformations + /CxFaceSup 0 def + /CyFaceSup 0 def + /CzFaceSup Hcone fracHeight mul def +% Sommet du cone + /Xpoint 0 def + /Ypoint 0 def + /Zpoint Hcone def +CalculsPointsAfterTransformations + /XsommetCone Xabscisse def + /YsommetCone Yordonnee def + /ZsommetCone Zcote def +% Normale extérieure à la base inférieure + /nXBaseInf CxFaceInf XsommetCone sub def + /nYBaseInf CyFaceInf YsommetCone sub def + /nZBaseInf CzFaceInf ZsommetCone sub def +% centre de la base supérieure + /Xpoint CxFaceSup def + /Ypoint CyFaceSup def + /Zpoint CzFaceSup def +CalculsPointsAfterTransformations + /CxBaseSup Xabscisse def + /CyBaseSup Yordonnee def + /CzBaseSup Zcote def +% Normale extérieure à la base supérieure + /nXBaseSup XsommetCone CxFaceSup sub def + /nYBaseSup YsommetCone CyFaceSup sub def + /nZBaseSup ZsommetCone CzFaceSup sub def +% rayon vers point de vue + /RXvueSup CxBaseSup XpointVue sub def + /RYvueSup CyBaseSup YpointVue sub def + /RZvueSup CzBaseSup ZpointVue sub def + /RXvueInf CxBaseInf XpointVue sub def + /RYvueInf CyBaseInf YpointVue sub def + /RZvueInf CzBaseInf ZpointVue sub def +% Visibilité de la base inférieure + /PSbaseInfCone nXBaseInf RXvueInf mul + nYBaseInf RYvueInf mul add + nZBaseInf RZvueInf mul add def +% Visibilité de la base supérieure + /PSbaseSupCone nXBaseSup RXvueSup mul + nYBaseSup RYvueSup mul add + nZBaseSup RZvueSup mul add def +PSbaseInfCone 0 le { +/TableauxPoints [ +0 1 359 {% on décrit le cercle + /theta exch def [ + /Xpoint Rcone theta cos mul def + /Ypoint Rcone theta sin mul def + /Zpoint 0 def +CalculsPointsAfterTransformations + CalcCoordinates ] + } for + ] def +gsave +newpath + TableauxPoints 0 get aload pop moveto +0 1 359 { + /compteur exch def + TableauxPoints compteur get aload pop + lineto } for +0.7 setgray +closepath +fill +grestore + } if +%% PSbaseSupCone 0 le { +%% modifié le 31/10/2003 +%PSbaseSupCone 0 ge { +PSbaseSupCone 0 le { +/TableauxPoints [ +0 1 359 {% on décrit le cercle + /theta exch def [ + /OK Hcone 1 fracHeight sub mul TanAngleCone mul def + /Xpoint OK theta cos mul def + /Ypoint OK theta sin mul def + /Zpoint Hcone fracHeight mul def +CalculsPointsAfterTransformations + CalcCoordinates ] + } for + ] def +gsave +newpath + TableauxPoints 0 get aload pop moveto +0 1 359 { + /compteur exch def + TableauxPoints compteur get aload pop + lineto } for +0.7 setgray +closepath +fill +grestore + } if + } def +/PortionSphere{% + /Xpoint Rsphere psTHETA dTHETA neg add cos mul psPHI dPHI sub cos mul def + /Ypoint Rsphere psTHETA dTHETA neg add sin mul psPHI dPHI sub cos mul def + /Zpoint Rsphere psPHI dPHI sub sin mul def +CalculsPointsAfterTransformations + /xCentreFacette Xabscisse def + /yCentreFacette Yordonnee def + /zCentreFacette Zcote def +% normale à la facette + /nXfacette xCentreFacette CX sub def + /nYfacette yCentreFacette CY sub def + /nZfacette zCentreFacette CZ sub def +% rayon vers point de vue + /RXvue xCentreFacette XpointVue sub def + /RYvue yCentreFacette YpointVue sub def + /RZvue zCentreFacette ZpointVue sub def +% test de visibilité + /PSfacette RXvue nXfacette mul + RYvue nYfacette mul add + RZvue nZfacette mul add + def +PSfacette 0 le { +CalcCoordinates +newpath + moveto +psTHETA dTHETA sub 1 psTHETA dTHETA add { + /Theta exch def + /Xpoint Rsphere Theta cos psPHI dPHI sub cos mul mul def + /Ypoint Rsphere Theta sin psPHI dPHI sub cos mul mul def + /Zpoint Rsphere psPHI dPHI sub sin mul def + CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +psPHI dPHI sub 1 psPHI dPHI add { + /Phi exch def + /Xpoint Rsphere psTHETA dTHETA add cos Phi cos mul mul def + /Ypoint Rsphere psTHETA dTHETA add sin Phi cos mul mul def + /Zpoint Rsphere Phi sin mul def + CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +psTHETA dTHETA add -1 psTHETA dTHETA sub { + /Theta exch def + /Xpoint Rsphere Theta cos psPHI dPHI add cos mul mul def + /Ypoint Rsphere Theta sin psPHI dPHI add cos mul mul def + /Zpoint Rsphere psPHI dPHI add sin mul def + CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +psPHI dPHI add -1 psPHI dPHI sub { + /Phi exch def + /Xpoint Rsphere psTHETA dTHETA sub cos Phi cos mul mul def + /Ypoint Rsphere psTHETA dTHETA sub sin Phi cos mul mul def + /Zpoint Rsphere Phi sin mul def + CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +closepath +} if +} def +end + +%%EndProcSet +%%BeginProcSet: pst-3dplot.pro 0 0 +%% +%% This is file `pst-3dplot.pro', +%% +%% IMPORTANT NOTICE: +%% +%% Package `pst-3dplot.tex' +%% +%% Herbert Voss +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% DESCRIPTION: +%% `pst-3dplot' is a PSTricks package to draw 3d curves and graphical objects +%% +%% +%% version 0.11 / 2004-04-28 Herbert Voss +% +/tx@3DPlotDict 10 dict def +tx@3DPlotDict begin +% +/saveCoor { + /z exch def + /y exch def + /x exch def + /z z dzUnit mul def + /y y dyUnit mul def + /x x dxUnit mul def +} def +% +/ConvertTo2D { + /x2D x neg Alpha cos mul y Alpha sin mul add def + /y2D x Alpha sin mul y Alpha cos mul add neg Beta sin mul z Beta cos mul add def +} def +% +/ConvertToCartesian { + /latitude exch def + /longitude exch def + /Radius exch def + /z Radius latitude sin mul def + /x Radius longitude cos mul latitude cos mul def + /y Radius longitude sin mul latitude cos mul def +} def +% +/SphericalTo2D { + x y z ConvertToCartesian ConvertTo2D +} def +% +/convertStackTo2D { + counttomark + /n exch def /n3 n 3 div cvi def + n3 { + n -3 roll + SphericalCoor { ConvertToCartesian } { saveCoor } ifelse + ConvertTo2D + x2D xUnit y2D yUnit + /n n 1 sub def + } repeat +} def +end + +%%EndProcSet +%%BeginProcSet: pst-grad.pro 0 0 +%! +% PostScript prologue for pst-grad.tex. +% Version 1.04, 2004/06/23 (adding %GradientCircle style - D.G.) +% prepared by Herbert Voss +% For copying restrictions, see pstricks.tex. +% +% For the PSTricks gradient fillstyle.% +% Based on some EPS files by leeweyr!bill@nuchat.sccsi.com (W. R. Lee).% +% Syntax:% D.G. modification begin - Apr. 9, %1998 +%%%%%% R0 G0 B0 R1 G1 B1 NumLines MidPoint Angle GradientFill +% ifGradientCircle GradientScale %GradientPosX GradientPosY +% R0 G0 B0 R1 G1 B1 NumLines MidPoint %Angle GradientFill +% D.G. modification end +% +/tx@GradientDict 40 dict def +tx@GradientDict begin +/GradientFill { + rotate + /MidPoint ED + /NumLines ED + /LastBlue ED + /LastGreen ED + /LastRed ED + /FirstBlue ED + /FirstGreen ED +/FirstRed ED +% D.G. modification begin - Apr. 9, 1998 +/GradientPosY ED +/GradientPosX ED + /GradientScale ED + /ifGradientCircle ED +% D.G. modification end + % This avoids gaps due to rounding errors: + clip + pathbbox %leave llx,lly,urx,ury on stack +% D.G. modification begin - Apr. 10, 1998 + 4 copy /ury ED /urx ED /lly ED /llx ED +% D.G. modification end + /y ED /x ED +% D.G. modification begin - Apr. 10, 1998 +ifGradientCircle + {0 GradientPosX eq + {0 GradientPosX eq {2 copy translate} if} if} + {2 copy translate} ifelse +% D.G. modification end + y sub neg /y ED + x sub neg /x ED % This avoids gaps due to rounding errors: + LastRed FirstRed add 2 div + LastGreen FirstGreen add 2 div + LastBlue FirstBlue add 2 div + setrgbcolor +% D.G. modification begin - Jul. 23, 1997 / Apr. 9, 1998 + ifGradientCircle + {/YSizePerLine y NumLines div def + /CurrentY y 2 div def + /MidLine NumLines 2 div 1 MidPoint sub mul abs cvi def} + {fill + /YSizePerLine y NumLines div def + /CurrentY 0 def + /MidLine NumLines 1 MidPoint sub mul abs cvi def} ifelse +% DG modification end + MidLine NumLines 2 sub gt + { /MidLine NumLines def } + { MidLine 2 lt { /MidLine 0 def } if } + ifelse + MidLine 0 gt + { + /Red FirstRed def + /Green FirstGreen def + /Blue FirstBlue def + /RedIncrement LastRed FirstRed sub MidLine 1 sub div def + /GreenIncrement LastGreen FirstGreen sub MidLine 1 sub div def + /BlueIncrement LastBlue FirstBlue sub MidLine 1 sub div def + MidLine { GradientLoop } repeat + } if + MidLine NumLines lt + { + /Red LastRed def + /Green LastGreen def + /Blue LastBlue def + /RedIncrement FirstRed LastRed sub NumLines MidLine sub 1 sub div def + /GreenIncrement FirstGreen LastGreen sub NumLines MidLine sub 1 sub div def + /BlueIncrement FirstBlue LastBlue sub NumLines MidLine sub 1 sub div def + NumLines MidLine sub { GradientLoop } repeat } + if + } def/GradientLoop { +% D.G. modification begin - Jul. 23, 1997 / Apr. 9, 1998 + ifGradientCircle + {CurrentY 0 gt { +% The default center used is the center of the bounding box of the object + 0 GradientPosX eq {0 GradientPosX eq + {/GradientPosX urx llx sub 2 div def + /GradientPosY ury lly sub 2 div def} if} if + GradientPosX GradientPosY CurrentY GradientScale mul 0 360 arc + Red Green Blue setrgbcolor fill + /CurrentY CurrentY YSizePerLine sub def + /Blue Blue BlueIncrement add def + /Green Green GreenIncrement add def + /Red Red RedIncrement add def} if} {0 CurrentY moveto x 0 rlineto + 0 YSizePerLine rlineto x neg 0 rlineto closepath + Red Green Blue setrgbcolor fill /CurrentY CurrentY YSizePerLine add def + /Blue Blue BlueIncrement add def /Green Green GreenIncrement add def + /Red Red RedIncrement add def} ifelse% D.G. modification end + }def + end +% END pst-grad.pro + +%%EndProcSet +%%BeginProcSet: texps.pro 0 0 +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics +exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub +dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} +ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict +end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ +dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 +roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def +dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} +if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} +def end + +%%EndProcSet +%%BeginProcSet: special.pro 0 0 +%! +TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N +/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N +/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N +/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ +/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho +X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B +/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ +/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known +{userdict/md get type/dicttype eq{userdict begin md length 10 add md +maxlength ge{/md md dup length 20 add dict copy def}if end md begin +/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S +atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ +itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll +transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll +curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf +pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} +if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 +-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 +get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip +yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub +neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ +noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop +90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get +neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr +1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr +2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 +-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S +TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ +Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale +}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState +save N userdict maxlength dict begin/magscale true def normalscale +currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts +/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x +psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx +psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub +TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict +begin/SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ +CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N +/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} +repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N +/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX +currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY +moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X +/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 +1 startangle endangle arc savematrix setmatrix}N end + +%%EndProcSet +%%BeginProcSet: color.pro 0 0 +%! +TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop +setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll +}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def +/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ +setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ +/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch +known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC +/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC +/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 +setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 +setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 +0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC +/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 +setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 +0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ +0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ +0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC +/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 +setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 +setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 +0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC +/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 +setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 +0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ +0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ +0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC +/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 +setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC +/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 +0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 +0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 +0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 +setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 +0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC +/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 +setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 +0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 +1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC +/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 +setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ +0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} +DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 +setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 +setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 +setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end + +%%EndProcSet +%%BeginFont: CMR7 +%!PS-AdobeFont-1.1: CMR7 1.0 +%%CreationDate: 1991 Aug 20 16:39:21 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 49 /one put +dup 50 /two put +dup 51 /three put +readonly def +/FontBBox{-27 -250 1122 750}readonly def +/UniqueID 5000790 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D +E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8 +47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C +8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4 +78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486 +1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E +01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B +C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0 +F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30 +8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF +A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7 +455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2 +9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105 +EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B +52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97 +563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F +0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB +7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1 +0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4 +1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4B067A46F8EE +2AFACDE591ADF7304939394F221B5B9B316BC47DC7772711A35B466E1790D4F5 +C02C57DE57A0498128C6041CB7E702F4D8500433633B8358C438237BBA39C647 +F659FACF75574B1AAD3FE61FB97D6C5D0B19E4AC762321891092E73D192C4816 +2F14A6FFAA1B22AABB65E8F611F1E9AF66DF68DA1B2B64B4CA8870261F8663FA +28953254FA64F0AD6EFBFAB15830AF856A65835C803B70963595060F91F4079B +F8BF5396F04C070254AC5DCACB20C0B1FADD38825886322366927C97E3C5AA1B +EA858D5974EBC14D17D4ADDCB3C7EA74A8A2B75293747CFCE0B484713D631F95 +43BD5A359229F1276D2F652078ADA5000D1E060CE5CDF2E57401E487F3C10975 +09AACD27CEE8581EBADC25D0FC9CEA533B99DCEDC0F28E782F4FE22AE097CCF3 +F73338DA748C535291B4E8AF84546FE4B910107B6FFC5439C5B966DE6C905D86 +460A69D6031EC3F7261FCB6D932F722BC1F550574EBD6F676AC9770969657422 +4C8212F9FC9A49C9F0E813A2ACD16D1131A73D3001E698C63F76FE6D6143D310 +155256BE90530489736CF35CA2D7E4A1FAEAE2423ABB52E55DD7314097DF7C09 +F39C3E3A29F9BAA3AEBA89CC3E7B134E79A2DA39D449D98FE4ADE1A0ACDA79C4 +1E2C78CDCC5BDD192DAA27F17DC4368EBC54CC009802018E50519F69025DE7E8 +FB61694AEA672E59D00F6BA0CA9509FB8DC6544CB92B70BA0AE393A43959C90E +8857B0DA53A8D26426CAE0DCF2F3033BAC62502E08447B09CC18B2525AB65EC2 +C63074FF725168D115137ECDAB1EEB083711F647F757C9806056811466D59087 +B93D6B71594046B3B60A7D5789D6B99FC14764428A251F0A54ED +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMR10 +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 34 /quotedblright put +dup 40 /parenleft put +dup 41 /parenright put +dup 80 /P put +dup 86 /V put +dup 101 /e put +dup 102 /f put +dup 105 /i put +dup 107 /k put +dup 108 /l put +dup 111 /o put +dup 114 /r put +dup 116 /t put +readonly def +/FontBBox{-251 -250 1009 969}readonly def +/UniqueID 5000793 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 +87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F +D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 +92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C +295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 +409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C +4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF +2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E +0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E +B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 +24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B +43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF +D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 +5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC +96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 +7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE18EFA2C389E5E30 +A01122D4441EBDC07E8FF810DAC4B013B1B89F5E18548EFFA31C3777BB187362 +FBBE6623184ECD991A057D130019D498D2ED4D2564124D648B1E0956E861DE83 +22DE4B89AD33CEC6DD6BC2744D542521314697AC87F8582E18ACD9233CB483DE +3038D43DEE9C4101EC3001E16A8AB4DBF57849C544A743267A6C9B510BA2D4BA +A94F5957E3FA951B817B69BEDF51BE484A6FA1B22079BB32D468F393A6187502 +C4D904A26BA22D3EA5867045C5621797FB5B6216077AF948D21F19461C01EB6D +54A084D3DCC5ABC5DF3CADC870236751D9EF221AC1E7BD29FDC20E11094E2852 +779FC5C0D5DB9D3C8E4443F64E4037AC19B46A1050451ECEB053DC8EB7B1FC8E +4B8175703FEC53549A80FA0B8B14AD07A99A7BEF99111BABBBEDB83B50CB2D6E +44036DA3DE4A6BB700EFA22290B3DC8113DB1B383EC98F8367ECA284490AEE8D +2E2DBB374BA8B0C30D5E782C9B7DB4551E2BFB4BE67A1833D36D09829FA03EE7 +D559D5AA9876BCCBAA3972BCABAB06157DBFB18A3A746FA3102EAD32D37460CE +2099273F1622C089AB3CB216A5C27D66D2C8170187CDF780CAF45A8E0C2D394A +26B50F8BE2ED926D812092E92DA4D04D0895B07B66D5344986A0FC7A8B2F7B9B +62EE1105F37A99A308E7DA80A3018D0ABC05D3F178B531BA4517B18300254453 +0CED9C755ED7FB6640DEBDACC45D477D8788EFC79A0297F6D5CBB83FAEE7B897 +F107662E8467FAC8D9E2AA0F906F3B47E80DCC1112B17D53D40A2B6069113FFA +623E46BE165E6F804BE8F048CBABB1F17C135472030108CBA8AC573D7380FC35 +63D88AEDC9A339CF931828B48D80B932FDFEBB8A80ABD3372BF7B61D458BBC8C +B555C4BB928EDBF84BC2F29B7ECECE6266769BB9A4F91C3F1DC4203744C86A1F +E55F5369B12A05851331961CDC0F00558B2B5C7AA82C448D569112EF87B9D599 +147B87ED398435F96B3863A922E378FB7D2BC4D01A23B40B4706EF716D48661D +B17D104C489A9966FBDE2B55A8B0031DE455BEB83DF8971CCC3745707987E8E6 +72F486552480FFE3D56EF1EC01FC6CD8269C08EA3961649C0309CF1E532885A4 +95990A9A0AE68E33B5A3213250E4B49D16F7F31113D7BF4D50388ADD1F348334 +4E39D042337837719451BAD268F7ABD25738E9325B93FEEDA00988C418D7CC3C +A6DDD29BC49FCC70369788A0A8250A7F2C8EAA800676CA52494432E4850CAA4C +62EF4C71460AB254330B114AFEFC99B16DF06DCE7073905D33DD417DCAE19030 +8701316D6FC19B49C3D62B051BAEE127D446C46E96C097D8932AD2D1DFC5B878 +3282FA801783E252E00053E60154B5F7E4A91A8A3BE31327A388B97DA5C742BE +5BCEF5261054329A4BC6276C559801CD1A1CF79F7A79703D3BA1CBC1F90A02D0 +1553A028DE95BB49E8053F8A4EFD61BD63F96015CE19DD72755E7334D292DA68 +516BA8AEDC0CB061A001A7EE97454562D3B415565A164D01CC99E77871FDD7B7 +AB9E0B04C3255DBCD6058665551F21BC90C0CA9DC55FCE004DCB491284B2FAFA +D02EEB197997A197951E51698F4DB020102F209894E684A894B681F4241C059A +A777ECE82C82C7E8DF34D84B5711B05771704CBC4B9113F5ACBC97546F8A9EE0 +13765C9FF5F8E20CC3AF574A06FCD0697B1A79A972DD6D0358841ECF7DE19BE9 +4158399E5A2AE172B895B2E4A04ABA4F15D620A72B8B0A06B994B1F469B51368 +8480C32AB2BF35C25ACA1492D7F0ECEAFEED1EBFE365ABDC8CF8977BCB4A15C1 +56DE9E609FF88CF503DE24EBBD86E3295805314837F72301937B47AF909C3242 +D2620462D16157523AB42971BB9CB090A80A45591A2205BB2D5B9231C0D70901 +EA1B2860008B56B987067F0DFC2C3F5497A00DE56F6EE86595FED526F00808E4 +1F587329BFFE6D0A2EEDCE22E3AB2F96E66C74FD283AF64EECB2E043BB2A2BAA +A5669E0F3FA90C017E20D4F8CE3F58F339A6C7C3D67E93EAA35B23184575E851 +FDFAAB5E32E0A3EE3D6FF9E947ECB35FF693A9028EBC347FF0219A55083D9D59 +6D1A41370E4C889BB3EF7BEF002716FD44BD7101674060FFCD52621944864E0D +AAC6CAA3E7B29C764AF611A8C534445AEA9C936561FA1B00368DBBAC3E22EB43 +FA8853641F3235446E7F862FFBF797BEBD5EF0AF3D49E7CCCFADF34D3CEA5EA0 +6FE0CF3A347E9C60FE19671730853695A4DD9E9127ED0F35845838044B3C6E47 +0C01758326A6C061B13682D85CAB44E789D6A99DE7D86F1A9B748B10785DCFBE +EEC209D806AC06D58A8335B8B23B9094A783566340D9BD921CF1006EE1F991E0 +09B188F9813D1BD570DC49895A00A001D4BCFAE55BDED50F6C6BF444B7926762 +D2579438C652ADA21CE55213A4B483F0251EFFD6DE895509ED07AB3D1CD2DAA3 +5F4C837D4CB0A422AFB4F33A94C44116D6E57957DFF48C348D2BFDA687C15875 +BB5737882B6D700231CCC74848F1E0084B6F595CA052B60CD7EA3856F2304256 +493BA21A7D1BC532C943E41B00EA4F6C9E5D0EAA729DBFD0371C4C38DED87010 +2D4FCD7ADF2DCC733AB067461377944025CD35DB8516A149494C968F56636E32 +3AFFA635FDD31640309C507077F20481F9D9A9711827992CBE88E2B853DC11F4 +D78C46C584B4124FCBA7F2705BB9E8326C92AFF868122098750B1493D78A3C02 +99D5689CCEA510AB6D24B1A73D94B0E5CFE07275E51631F5C70D4E416168B3D0 +740DF0C63B5F23B9B3A4A1702184A852B6A97AD7C5D4E7B520C7780BA76E2E87 +B626123F3625F72382D62C14F27ED7A21447A38D1F18FD7F47804CA8C6144124 +6BC33C4D206CD4D94953BC1D25D2D4B8906A22D054F2FB72E6233A7D485FA904 +E34857906F54DA49A0FC39B38951D1D5F7F6F7E56526AC1132B28BFE7901EB25 +CA52B54813FB66BA2664B9B9FD764FC8AB0DF3164C3FD1CC084B483DBFE7B034 +0454599BA578AFEB2A57DADA3124037FD1BF1329D3F8ADBD39FCF2C0F02757CD +35D372176B437C1A8EBBD86FD5308CD75F335C8382E7F6B14B6F590746E83615 +E38DBDA4866AD3B755785D33EFDE52DC14495642435D35E9ADBB779495EB013A +E904856635F3EFFC31FCAC89105C1AC490E3C4DB561F1A4940D756E375B67C26 +A3453FECA2176132F3C006D4DE63C4E102DBC39838DF1D4B83D8D1E47A74536A +ACAC1B5527913E368AE45136624DC4AA81B94256D82758085643ADA0F8B91E00 +995F69025EDFD5C21E83066B2B205D20E050D10612F4B283BD596634A3C44BF9 +B4E5EB79B9818DB3CFAAFC48D0BD4A6D8B30B0D0C14608BE40F21ED5950FD9E3 +550EAE90518787CEAAB1EE5E84C349F94DF178D5A5AEB03911664135134F2B9B +E9DB2DB463CEBCFAFA2BED53379130F020B98C289834419AFF020D092E70E078 +CEF094C4677FBF09ADD7C13D3372DF24E8CEEA4AE9AF3587F86F1BE23DB37A96 +E2AFD3F95F8C555229233177565ECA65910161D058AC21970D5D66D88F5E4C4F +F94DF4373FCF3A32ED93E654D41ECE178E07092C998D5C54921CB42D538453D3 +59978464E34D6AC0B7440C7A4B1465EC83132A81D632BC44BAA116DE1760AAED +1854A067B1ACE6D977C731113D113006AD3D90ADCB5F168A1124D6DC7F13D8BE +360FAD90E8F6986D0096806AFCC7B374F857B23C34FCEE2BB5CABE5B032DC452 +9C5F81296D2119F0B9BE22E7E4D125FBD98A9EB3EE53835D26624276CD64BA83 +DCCA5CBDB8F16C4C93EF2F8A9FF2274AE0202F1B58C2B9525E140A7AD4514CFA +6704F8A9CD026AB498273127D2684F840CBA3433756CD325FC11FE9F85C95CA1 +EC17C87915975A33E56AB42D7D40DADB04A1E95367F8B868837307E48E675220 +6C0C41FB80643B76D10AAFD73C77EE230A1EB00832A5FAD912722E7AA2EB13A6 +38ADD55159C0770A072066FBB344C16EA50DD854D1225869F52AF841F83363F3 +629A9FB64CCB53CD39CE7D0600208EBF +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMSS8 +%!PS-AdobeFont-1.1: CMSS8 1.0 +%%CreationDate: 1991 Aug 20 17:34:12 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSS8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMSS8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 46 /period put +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +readonly def +/FontBBox{-65 -250 1062 761}readonly def +/UniqueID 5000801 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF4E9D2405B17498276F99362748F6E97327D +7CDA3F577075245561191667923D37830EEC37A0161B6A3EC8FDD63CDB8C8D4A +AD39C69A264813FA79C25E85AC95C71AB965F6C14A4A1ACF5BAE27A5F628B172 +47CF6A12008558438874199C237501B72BFEFE64B606A327623BD8B217E8349B +7BF5C2204F4DE2FB269845D5714A31151A66064419CCC46A63F8E54B92B5070F +F3D80801DBEC658CD3926B15BE3D4B7591FC36663D3C03926D0D3637B53BCC22 +73C8E0001B416A65FC67C53383458DC125FD14FFE391BBBA321B5AF5DEF85DBA +5A5FD759FD2AAB6AF31CDA6202EBB763E3CAC1FF91B1175EF818FD662B60C642 +738A3B4F27822A0560BB7C08AD42F976351FA5225A0E6D56C7FBE06A809CC468 +FB2E90C84FA56C62CB7BBFC80BD94F5C6BC0EED14433A4A356D2D15DC87B34B0 +99A100502F55A32D736757642F9F9719FD9E35A1430A72C254614B4000113705 +5474FCFCE47A6978F69FA467B818309E61598EC18089BB924C393B3FF1280D72 +E1969BF5AD3D1074FF13202D4CC324396BAFF2397DAB2C516C656B6B240F023D +0C28AEBB957C23012C971D444DD1C4C2BD7DCE178D46CF8EC20DCAB9A930907E +124F3B3B8D16DBF166BA40CD780DE2155BF21EC2C3E0073422E54A09DF4A9491 +63B55882122F6B40490D81533CB0E16967E32D4F5B5D5D14F578BAA0137704A3 +2386E6AA4E3D160559EB245625253380CE64C30B41B573D7249B0B6157B02EFE +0D82006B4CF4A294FDDAB5B87CAD0B2D3367F9138EE0922FBDD3D7BFE4C6B297 +762F95616A75D0FC2D2E22D79172DF1A3287C67BD27658A448FC61077B3033AA +5479ABBF5CD952B5E19E437CD642CDC43FBB26115DCC019FEB3195F267AAD478 +4BDB4D1AEFB4BB108438507C493B00002470B4711BA5B428B4A8129BE7179E4A +7521E8AF3D9160217C072A9928A84D7FE560D2C8C9FF175F5ACC4B756A4E5660 +FFD365DBFB074FEB45E9372F1B6F979E09D775319131E551A0A47FAFB5A2991B +BC0009392145EAA35927690D1D20FF5977DE7583F2BAC0D50B3AE23F60A776E9 +249C85364258E44F7E9E538D28BC1C50DF90F9FC563EB1B03CF353F760BF0CBF +C2CE4AB9BCAA0F835FB2F60FEA62A3E28C619182CFDA62420C77F502F70F2A2D +BBCB7B6C211402871C7862E06459E59E5EB1E9E1F2D8903D9ED1EDC9374BA744 +450DF79439BEA8CCB850890BD73CBEA39AD2E4852B64439407342A67B905D78D +9BE26CE238A767AD6EC10DACE58C13AE16332DD952DB84D6F96127EF94E77104 +CBFA4E6AD7E0B89BE542080241CB78D4D7EC8F01EB95724C34B5A2C69B062511 +B9254AD71D7F0F837A5D93D850FB7362252CCF91E6CB3B0576E25B475D24DB7D +A6F9CE199753BD33B8DFECE0E42BC1B15A99871203B6C630B1D213C2FE0BABBE +CF4F271EB4F939E0F4341DA58042278B252F8A1D9774C49C33CDD11143A143AC +8CD0CBD620BF3E5BE13F174DB04F885E1FE08E624DEFF55F5971BE8606FD2FA9 +BF974490F2B026B0C068146145C85F03A435776B2C63F6729E81125225432E29 +43AC6A7B26B33B0E3DA1A3F60584E66A36F05FDAB82F70F8FF1C40E300192DEB +A006CE31540785B22D7712CD35D4721884D13D24C352608D7D9A7DBC0A5D05FB +BA7880D469F267204F3570C88E9B2447EEE6A710CC5201B175192486FCBDE6C3 +167C9E4631569F84AB53A9DF0E4E19ECE690220BCE8634E5A61E195CFA9B841B +E2A1C1FF33EA42F04EE939F7043BB2683E1B1DE2E1D548528E4F1126B261D834 +A128348E1BA634341F52535656B89E82709F0B4767B2CF482B9D1198292D682E +477B35BF5BE26ADCA06268C8468F2CB7EAC12D847DBFC7A40E4C23AFF2C26EF9 +87A8EDFB77DA40BB17DE3800D98D10053CCF4EAF838795A471F6AA3EB9746C87 +8868EBF2192EB371299C1B7FCC06F8AEEAF6C5F324D997297590E7C9FDC7008B +D271005CC3A15AC10DB7643FD730F00C9B2749B3E9D82654E3FD164B8F0CF01C +EE2AEADAAC385AE78D +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 97 /a put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 126 /vector put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +/UniqueID 5087385 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 +990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E +6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB +DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 +59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 +D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF +8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 +6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 +1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE +03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 +95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 +74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 +3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 +47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 +AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 +42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 +40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 +B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 +956017667271C1FD06DBA26AC7504FCD81979D968F25EAC28F245E67080D282B +AAF95C9C72D34DB0A55DD7F78C87363B0B1DEC5C2AFC43C104658A3534C4BD76 +281C117E0FCB6167E2E19DF9D7172700085666D98348A3428BFF586A1A380823 +3421458F96B6E7EEA81AD0DA8478B1BE1378460411802D9DBCCDF22C4B910DEC +B270420E3EADA3BF7F2AD72E5ECCF558598414310E5876BF0866CCABC660576D +B70DA214F598FA4CE721F8DEF96E180C43F37268DDEE07716D3676A2C9FDF2AB +B573ACD8A0CA6DF494A08FB89802107CAB0335B6A711CD84471FCA71B2EB08FC +7F1AAD334D8E65D52AC519B477009B8634152DDF92F591E6CAADE1F22636BF83 +53A42E7D2C6AB4AF4B9EBF50FEE77ADA0D9A60DEC00A5F1C7BBC3594A82C33FF +5E9AAB5A80476DA5663AF48A4859966317CA3D3EEA06BA7394AF1264D8660AFC +237CF5C127F81F4817E2CA421359080F3E51F549C33151F40FD3D6B28804DFEF +493D755DCCCDD2EE193FE1F8C7F57B8BBD23C1936DDD2A9D0DBA38AD2893B464 +FE4171482337D6E183B14B8E72FE063537B104D52FB2D3A8FA15FAA63F11C94D +003BB811916748797D367ACD336E5D34B354DC679FD0D2B9EBA3E2DDE964C275 +0AD4621A61D191BCC5E21BEC79BA90F097EF754ADCB4B3B5231B1CDF7289D229 +4C323AA97CDF7448CAC6982FD01A069F2E568E03F14C3B73D9EE77F3A66C3CF7 +D533BD02A735F162E19FF47802D4618C3B43BC2A9DEA65FE1A757B386A078199 +59010175DA5384834981489EAD124A421F3315116415D73CEB0847F87F2AA967 +DCA407F5B1A318406BD2F6709D52043CABACADE96907A445F4555F4AF87CED3B +6B7EC52886C3B65E045B21F871DE434A05EE6B8549DBA101575577FD313B50C0 +2C45EF12A620DF22187BC4B639F482D7B024987CF875516DA637601242B865D0 +B13225DA31B229224F0C0091BF0059EC2CA620C1076717ADC8438089A4E1A1A8 +A3757242BE47814C43372967D4653BF6986F34EF11F7B71A5FB2EA4ED5155077 +DF86D19240A14756C273A4BA906DD14C1CF09E954A79DBC32A397DC46728DA6A +1F0F0886C74245FC82A6371A9782668F11EBED37A8EEE06003C46F24123473C8 +66DAB7CA762F3354138342D47C9ECEE883BBD05E048DD82F9578A0BB61554138 +A6DED6631CE53327A302464B4785CA62A8DB456F3430EE1BC45929FFBEC1ED80 +84721906A08C98FDE29E23256FB39EE441E6010AD5E293412EB81635D66DB79F +1FCC4A3C3A7163B0AA0543FB38B2C41C9F30BC6A15E4BE0F9C72E4736BC142F1 +7868E17DB55D930CAB0048F57814CA2F45CBEA62CC81F68416E4F9F1AE46FFBC +062120B9B5D565BFE81888F4A291064D2B583AE9DECACDAAF87E3A8B24AAB9F7 +AF0DFAE6284581A084D6BFF612754E4C8621CA994543C708AD8D8E4DB0DEEC71 +2502DA02E4A255119CC5B7BCEE7BF70B6A9F91054264CF6D20DC8F7563F37C46 +9BFFD996BB10760C3DEFCB2D51EFD0E54CE4EFA389FA703BFC655E70A9C55491 +90854F4CA50B0F3F16FD6C4A457AF0BC39B81373850A7E291842E8ED950A96FF +D080E0703D35EEC268FDCEC2B61E8A91586BF1BE32BD247EF2438CE203DD8C0B +AC5D673265741808B221A6260A5DFFD7D479CED48F2F3A76D3CDB2F9735E1F60 +382340A6570D26C45359 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 40258437 52099154 1000 600 600 (3dgrafiken.dvi) +@start /Fa 204[33 33 33 49[{}3 58.1154 /CMR7 rf /Fb 139[32 +1[33 2[42 2[23 44 1[23 2[25 37 14[62 5[57 38[32 32 5[42 +34[{}13 83.022 /CMR10 rf /Fc 203[35 35 35 35 35 1[20 +46[{}6 66.4176 /CMSS8 rf /Fd 129[42 3[39 41 47 22[44 +97[{}5 83.022 /CMMI10 rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin + end +%%EndSetup +TeXDict begin 1 0 bop 0 TeXcolorgray 1 TeXcolorgray 0 +TeXcolorgray 1 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray +0 TeXcolorgray 1 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray +0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray +0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0.5 TeXcolorgray +0 TeXcolorgray 0 1890 a + tx@Dict begin gsave CM STV CP newpath moveto 3.0 neg 0 rmoveto clip +setmatrix end + 0 1890 a 0 1890 1709 1890 v 1709 +1890 a + currentpoint grestore moveto + 1709 1890 a 1 0 0 TeXcolorrgb 0 TeXcolorgray 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@xMin 10 +{InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 5 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@xMax 10 +{InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@yMin 10 +{InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 5 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@yMax 10 +{InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@zMin 10 +{InitPnode } NewNode end end + 236 1417 a 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 5 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@zMax 10 +{InitPnode } NewNode end end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def [ tx@NodeDict begin tx@NodeDict /N@xMax known { /N@xMax +load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict /N@xMin +known { /N@xMin load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap +stroke grestore end + +@endspecial +@beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def [ tx@NodeDict begin tx@NodeDict /N@yMax known { /N@yMax +load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict /N@yMin +known { /N@yMin load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap +stroke grestore end + +@endspecial @beginspecial +@setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def [ tx@NodeDict begin tx@NodeDict /N@zMax known { /N@zMax +load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict /N@zMin +known { /N@zMin load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap +stroke grestore end + +@endspecial 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@xMax known { /N@xMax +load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end + 236 1417 a 236 1417 +a + tx@Dict begin { 5.0 5.71527 4.30554 0.0 180. Uput UUput } PutCoor +PutBegin end + 236 1417 a 212 1435 a Fd(x)236 1417 y + tx@Dict begin PutEnd end + 236 1417 a 236 +1417 a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@yMax known { /N@yMax +load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end + 236 1417 a 236 1417 a + tx@Dict begin { 5.0 5.2616 4.30554 1.94444 30. Uput UUput } PutCoor +PutBegin end + 236 +1417 a 214 1427 a Fd(y)236 1417 y + tx@Dict begin PutEnd end + 236 1417 a 236 1417 +a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@zMax known { /N@zMax +load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end + 236 1417 a 236 1417 a + tx@Dict begin { 5.0 5.0903 4.30554 0.0 90. Uput UUput } PutCoor PutBegin + end + 236 1417 +a 215 1435 a Fd(z)236 1417 y + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 +1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 1.0 0.1 0 1.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 +a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 1.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 +a Fc(1.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a +@beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 2.0 0.1 0 2.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 2.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 a Fc(2.0)326 +1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial +@setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3.0 0.1 0 3.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 +a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 a Fc(3.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + +326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 4.0 0.1 0 4.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 4.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 +a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 a Fc(4.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a +236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 1.0 0 -0.1 1.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial +236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 1.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 +a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(1.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + +236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 2.0 0 -0.1 2.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 2.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 +1417 a Fc(2.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 +a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 3.0 0 -0.1 3.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 3.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(3.0)326 +1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial +@setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 4.0 0 -0.1 4.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 4.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 +a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(4.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + +326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 1.0 0 -0.1 1.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 1.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 +a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(1.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a +236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 2.0 0 -0.1 2.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial +236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 2.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 +a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(2.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + +236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 3.0 0 -0.1 3.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 3.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 +1417 a Fc(3.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 +a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 4.0 0 -0.1 4.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 4.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(4.0)326 +1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a 1 0 0 TeXcolorrgb +0 TeXcolorgray 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@xMin 10 +{InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 5 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@xMax 10 +{InitPnode } NewNode end end + 236 1417 +a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@yMin 10 +{InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 5 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@yMax 10 +{InitPnode } NewNode end end + 236 1417 a 236 1417 +a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@zMin 10 +{InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0 1 mul def /z 5 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@zMax 10 +{InitPnode } NewNode end end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def [ tx@NodeDict begin tx@NodeDict /N@xMax known { /N@xMax +load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict /N@xMin +known { /N@xMin load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap +stroke grestore end + + +@endspecial @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def [ tx@NodeDict begin tx@NodeDict /N@yMax known { /N@yMax +load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict /N@yMin +known { /N@yMin load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap +stroke grestore end + +@endspecial @beginspecial +@setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def [ tx@NodeDict begin tx@NodeDict /N@zMax known { /N@zMax +load GetCenter } { 0 0 } ifelse end tx@NodeDict begin tx@NodeDict /N@zMin +known { /N@zMin load GetCenter } { 0 0 } ifelse end /Lineto /lineto +load def false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap +stroke grestore end + +@endspecial 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@xMax known { /N@xMax +load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end + 236 1417 a 236 1417 +a + tx@Dict begin { 5.0 5.71527 4.30554 0.0 180. Uput UUput } PutCoor +PutBegin end + 236 1417 a 212 1435 a Fd(x)236 1417 y + tx@Dict begin PutEnd end + 236 1417 a 236 +1417 a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@yMax known { /N@yMax +load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end + 236 1417 a 236 1417 a + tx@Dict begin { 5.0 5.2616 4.30554 1.94444 30. Uput UUput } PutCoor +PutBegin end + 236 +1417 a 214 1427 a Fd(y)236 1417 y + tx@Dict begin PutEnd end + 236 1417 a 236 1417 +a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@zMax known { /N@zMax +load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end + 236 1417 a 236 1417 a + tx@Dict begin { 5.0 5.0903 4.30554 0.0 90. Uput UUput } PutCoor PutBegin + end + 236 1417 +a 215 1435 a Fd(z)236 1417 y + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 +1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 1.0 0.1 0 1.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 +a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 1.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 +a Fc(1.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a +@beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 2.0 0.1 0 2.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 2.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 a Fc(2.0)326 +1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial +@setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3.0 0.1 0 3.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 +a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 a Fc(3.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + +326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 4.0 0.1 0 4.0 -0.1 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 4.0 1.0 mul def /y -0.4 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 +a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 90 Gamma add Delta +add def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { +/TMatrix { } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx +def /cp [ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix +matrix concatmatrix exch exec concat cp moveto end + 236 1417 a Fc(4.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a +236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 1.0 0 -0.1 1.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial +236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 1.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 +a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(1.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + +236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 2.0 0 -0.1 2.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 2.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 +1417 a Fc(2.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 +a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 3.0 0 -0.1 3.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 3.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(3.0)326 +1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial +@setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0.1 4.0 0 -0.1 4.0 0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.2 1.0 mul def /y 4.0 1 mul def /z 0 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 a 236 1417 +a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(4.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + +326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 1.0 0 -0.1 1.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 1.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 +a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(1.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a +236 1417 a + tx@Dict begin PutEnd end + 236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 2.0 0 -0.1 2.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial +236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 2.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 +a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(2.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + +236 1417 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 3.0 0 -0.1 3.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 +1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 3.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 +1417 a Fc(3.0)326 1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 +a @beginspecial @setspecial + tx@Dict begin STP newpath 0.5 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 0.1 4.0 0 -0.1 4.0 tx@3DPlotDict begin +/dxUnit 1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta +30 def /SphericalCoor false def /xUnit { 28.45274 mul } def /yUnit +{ 28.45274 mul } def convertStackTo2D end /Lineto /lineto load def +false Line gsave 0.5 SLW 1 0 0 setrgbcolor 0 setlinecap stroke +grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y 0.2 1 mul def /z 4.0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a Fc(4.0)326 +1417 y + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 326 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a 0 0 1 TeXcolorrgb +0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 0 4 0 0 4 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial +0 0 1 TeXcolorrgb 0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 3 4 3 0 4 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + + +@endspecial 0 0 1 TeXcolorrgb 0 TeXcolorgray @beginspecial +@setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 0 4 3 0 0 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial 0 0 1 TeXcolorrgb 0 TeXcolorgray +@beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 3 4 0 0 4 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial 0 0 1 TeXcolorrgb +0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 3 4 0 3 0 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial +0 0 1 TeXcolorrgb 0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 3 4 0 3 4 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + + +@endspecial 0 0 1 TeXcolorrgb 0 TeXcolorgray @beginspecial +@setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 3 0 3 0 0 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial 0 0 1 TeXcolorrgb 0 TeXcolorgray +@beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 3 0 3 3 0 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial 0 0 1 TeXcolorrgb +0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 0 0 1 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 3 4 3 3 0 tx@3DPlotDict begin /dxUnit 1.0 +def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 0 0 1 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial +1 0 0 TeXcolorrgb 0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 3 -0.4 0 3 0 0 tx@3DPlotDict begin /dxUnit +1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 1 0 0 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + + +@endspecial 1 0 0 TeXcolorrgb 0 TeXcolorgray @beginspecial +@setspecial + tx@Dict begin STP newpath 0.1 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ -0.4 3 0 0 3 0 tx@3DPlotDict begin /dxUnit +1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 1 0 0 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial 1 0 0 TeXcolorrgb 0 TeXcolorgray +@beginspecial @setspecial + tx@Dict begin STP newpath 0.1 SLW 1 0 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { } def [ 0 -0.4 4 0 0 4 tx@3DPlotDict begin /dxUnit +1.0 def /dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.1 +SLW 1 0 0 setrgbcolor 5.0 3.0 0.0 0.0 0 0 add DashLine grestore end + +@endspecial 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3.1 1.0 mul def /y 3.1 1 mul def /z 4.1 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 +1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 180 Delta add +def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix +{ } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp +[ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix matrix +concatmatrix exch exec concat cp moveto end + 236 1417 a 0 1 0 +TeXcolorrgb Fb(V)-7 b(ektor)p 0 TeXcolorgray 479 1417 +a + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 479 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3.3 1.0 mul def /y 2.6 1 mul def /z 4.1 1.0 mul def +ConvertTo2D x2D y2D end 28.45274 mul exch 28.45274 mul exch } false +/N@temp@pstNode 10 {InitPnode } NewNode end end + 236 1417 +a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 180 Delta add +def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix +{ } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp +[ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix matrix +concatmatrix exch exec concat cp moveto end + 236 1417 a 0 1 0 TeXcolorrgb +Fb(\("Pfeil"\))22 b Fd(~)-37 b(a)p 0 TeXcolorgray 620 +1417 a + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 620 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 a 0 1 0 TeXcolorrgb +0 TeXcolorgray @beginspecial @setspecial + tx@Dict begin STP newpath 0.8 SLW 0 1 0 setrgbcolor /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 5.69046 0. Arrow + EndArrow } def [ 3 3 4 0 0 0 tx@3DPlotDict begin /dxUnit 1.0 def +/dyUnit 1 def /dzUnit 1.0 def /Alpha 150 def /Beta 30 def /SphericalCoor +false def /xUnit { 28.45274 mul } def /yUnit { 28.45274 mul } def +convertStackTo2D end /Lineto /lineto load def false Line gsave 0.8 +SLW 0 1 0 setrgbcolor 0 setlinecap stroke grestore end + +@endspecial +236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 3 1.0 mul def /y -0.8 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 +a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def 270 Delta sub rotate /Rho 180 Delta add +def Rho cos Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix +{ } def /RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp +[ currentpoint ] cvx def CM CP T STV CM matrix invertmatrix matrix +concatmatrix exch exec concat cp moveto end + 236 1417 a 1 0 0 TeXcolorrgb Fd(a)280 1429 y Fa(1)p +0 TeXcolorgray 317 1417 a + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 317 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 +a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x -0.6 1.0 mul def /y 3 1 mul def /z 0 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 +a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a 1 0 0 TeXcolorrgb Fd(a)280 1429 y Fa(2)p +0 TeXcolorgray 317 1417 a + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 317 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 +a 236 1417 a + tx@Dict begin tx@NodeDict begin {tx@3DPlotDict begin /Alpha 150 def +/Beta 30 def /x 0 1.0 mul def /y -1 1 mul def /z 4 1.0 mul def ConvertTo2D +x2D y2D end 28.45274 mul exch 28.45274 mul exch } false /N@temp@pstNode +10 {InitPnode } NewNode end end + 236 1417 a 236 1417 a + tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@temp@pstNode known +{ /N@temp@pstNode load GetCenter } { 0 0 } ifelse end } PutCoor PutBegin + end + 236 1417 a 236 1417 +a + tx@Dict begin { [ 1 0 /Alpha 150 def /Beta 30 def /Delta Beta sin +Alpha sin mul Alpha cos atan neg 90 add def /Gamma Beta sin Alpha cos +mul neg Alpha sin atan def Gamma rotate /Rho 90 Gamma sub def Rho cos +Rho sin 0 0 ] concat} tx@Dict /TMatrix known not { /TMatrix { } def +/RAngle { 0 } def } if /TMatrix [ TMatrix CM ] cvx def /cp [ currentpoint +] cvx def CM CP T STV CM matrix invertmatrix matrix concatmatrix exch +exec concat cp moveto end + 236 1417 a 1 0 0 TeXcolorrgb Fd(a)280 1429 y Fa(3)p +0 TeXcolorgray 317 1417 a + tx@Dict begin CP /TMatrix [ TMatrix setmatrix ] cvx def moveto end + 317 1417 a 236 1417 a + tx@Dict begin PutEnd end + 236 1417 +a eop end +%%Trailer + +userdict /end-hook known{end-hook}if +%%EOF diff --git a/VeranschaulichungVonVektorenImRaum02.pdf b/VeranschaulichungVonVektorenImRaum02.pdf new file mode 100644 index 0000000..db17cfc Binary files /dev/null and b/VeranschaulichungVonVektorenImRaum02.pdf differ diff --git a/definitions.tex b/definitions.tex new file mode 100644 index 0000000..6e483c6 --- /dev/null +++ b/definitions.tex @@ -0,0 +1,342 @@ + +%!TEX root=main.tex +\usepackage{geometry} +\geometry{ + %a4paper, + %total={170mm,257mm}, + left=20mm, + top=20mm, + right=40mm, + marginparwidth=30mm +} + +%\usepackage[top=2cm, bottom=1.3cm, left=10mm, right=0.5cm, heightrounded, +%marginparwidth=30mm, marginparsep=3mm]{geometry} + +%\usepackage{pythontex} + +\usepackage[ngerman]{babel} +\usepackage[utf8]{inputenc} +%\usepackage{microtype} +%\usepackage[sfmath,slantedGreeks]{kpfonts} +%% +% Just some sample text +\usepackage{lipsum} +\usepackage{wrapfig} +%% +% For nicely typeset tabular material +\usepackage{booktabs} +%\usepackage[utf8]{inputenc} + +%% +% For graphics / images +\usepackage{graphicx} +%\setkeys{Gin}{width=\linewidth,totalheight=\textheight,keepaspectratio} +%\graphicspath{{graphics/}} + +\usepackage{mathtools} + +%\usepackage[inline]{asymptote} + +% The fancyvrb package lets us customize the formatting of verbatim +% environments. We use a slightly smaller font. +%\usepackage{fancyvrb} +%\fvset{fontsize=\normalsize} +\usepackage{cmbright} +%% +% Prints argument within hanging parentheses (i.e., parentheses that take +% up no horizontal space). Useful in tabular environments. +\newcommand{\hangp}[1]{\makebox[0pt][r]{(}#1\makebox[0pt][l]{)}} + +%% +% Prints an asterisk that takes up no horizontal space. +% Useful in tabular environments. +\newcommand{\hangstar}{\makebox[0pt][l]{*}} + +%% +% Prints a trailing space in a smart way. +\usepackage{xspace} +%\usepackage[makeroom]{cancel} +%% +% Some shortcuts for Tufte's book titles. The lowercase commands will +% produce the initials of the book title in italics. The all-caps commands +% will print out the full title of the book in italics. +%\newcommand{\vdqi}{\textit{VDQI}\xspace} +%\newcommand{\ei}{\textit{EI}\xspace} +%\newcommand{\ve}{\textit{VE}\xspace} +%\newcommand{\be}{\textit{BE}\xspace} +%\newcommand{\VDQI}{\textit{The Visual Display of Quantitative Information}\xspace} +%\newcommand{\EI}{\textit{Envisioning Information}\xspace} +%\newcommand{\VE}{\textit{Visual Explanations}\xspace} +%\newcommand{\BE}{\textit{Beautiful Evidence}\xspace} + +%\newcommand{\TL}{Tufte-\LaTeX\xspace} +%20180930 Fonts LX +%\usepackage{lxfonts} +%\usepackage[sfdefault,scaled=1.5]{FiraSans} + +%\usepackage[sfdefault,lining,scaled=1.5]{FiraSans} %% option 'sfdefault' activates Fira Sans as the default text font +%\usepackage[fakebold, scaled=1.5]{firamath-otf} +%\renewcommand*\oldstylenums[1]{{\firaoldstyle #1}} + +\usepackage[defaultfam,tabular,lining]{montserrat} %% Option 'defaultfam' +%% only if the base font of the document is to be sans serif +\usepackage[T1]{fontenc} +\renewcommand*\oldstylenums[1]{{\fontfamily{Montserrat-TOsF}\selectfont #1}} + + +%\usepackage{newtxsf} +%\setkomafont{subsection}{\usefont{T1}{fvm}{m}{n}} +\setkomafont{section}{\usefont{T1}{fvs}{b}{n}\Large} +\setkomafont{subsection}{\usefont{T1}{fvs}{b}{n}} +\setkomafont{subsubsection}{\usefont{T1}{fvs}{b}{n}} +\setcounter{secnumdepth}{3} +%20180930 Fonts LX + +\usepackage{enumitem} + +% Prints the month name (e.g., January) and the year (e.g., 2008) +%\newcommand{\monthyear}{% +% \ifcase\month\or January\or February\or March\or April\or May\or June\or +% July\or August\or September\or October\or November\or +% December\fi\space\number\year +%} + +%wenn eps --> aus gnuplot +%\usepackage{graphicx} +%\usepackage{epstopdf} +%\epstopdfsetup{update} % only regenerate pdf files when eps file is newer + +% lua aus gnuplot +%\usepackage{gnuplot-lua-tikz} + +% Prints an epigraph and speaker in sans serif, all-caps type. +%\newcommand{\openepigraph}[2]{% +% %\sffamily\fontsize{14}{16}\selectfont +% \begin{fullwidth} +% \sffamily\large +% \begin{doublespace} +% \noindent\allcaps{#1}\\% epigraph +% \noindent\allcaps{#2}% author +% \end{doublespace} +% \end{fullwidth} +%} + +% Inserts a blank page +\newcommand{\blankpage}{\newpage\hbox{}\thispagestyle{empty}\newpage} + +\usepackage{units} + +% Typesets the font size, leading, and measure in the form of 10/12x26 pc. +%\newcommand{\measure}[3]{#1/#2$\times$\unit[#3]{pc}} +% +%% Macros for typesetting the documentation +%\newcommand{\hlred}[1]{\textcolor{Maroon}{#1}}% prints in red +%\newcommand{\hangleft}[1]{\makebox[0pt][r]{#1}} +%\newcommand{\hairsp}{\hspace{1pt}}% hair space +%\newcommand{\hquad}{\hskip0.5em\relax}% half quad space +%\newcommand{\TODO}{\textcolor{red}{\bf TODO!}\xspace} +%\newcommand{\ie}{\textit{i.\hairsp{}e.}\xspace} +%\newcommand{\eg}{\textit{e.\hairsp{}g.}\xspace} +%\newcommand{\na}{\quad--}% used in tables for N/A cells +%\providecommand{\XeLaTeX}{X\lower.5ex\hbox{\kern-0.15em\reflectbox{E}}\kern-0.1em\LaTeX} +%\newcommand{\tXeLaTeX}{\XeLaTeX\index{XeLaTeX@\protect\XeLaTeX}} +%% \index{\texttt{\textbackslash xyz}@\hangleft{\texttt{\textbackslash}}\texttt{xyz}} +%\newcommand{\tuftebs}{\symbol{'134}}% a backslash in tt type in OT1/T1 +%\newcommand{\doccmdnoindex}[2][]{\texttt{\tuftebs#2}}% command name -- adds backslash automatically (and doesn't add cmd to the index) +%\newcommand{\doccmddef}[2][]{% +% \hlred{\texttt{\tuftebs#2}}\label{cmd:#2}% +% \ifthenelse{\isempty{#1}}% +% {% add the command to the index +% \index{#2 command@\protect\hangleft{\texttt{\tuftebs}}\texttt{#2}}% command name +% }% +% {% add the command and package to the index +% \index{#2 command@\protect\hangleft{\texttt{\tuftebs}}\texttt{#2} (\texttt{#1} package)}% command name +% \index{#1 package@\texttt{#1} package}\index{packages!#1@\texttt{#1}}% package name +% }% +%}% command name -- adds backslash automatically +%\newcommand{\doccmd}[2][]{% +% \texttt{\tuftebs#2}% +% \ifthenelse{\isempty{#1}}% +% {% add the command to the index +% \index{#2 command@\protect\hangleft{\texttt{\tuftebs}}\texttt{#2}}% command name +% }% +% {% add the command and package to the index +% \index{#2 command@\protect\hangleft{\texttt{\tuftebs}}\texttt{#2} (\texttt{#1} package)}% command name +% \index{#1 package@\texttt{#1} package}\index{packages!#1@\texttt{#1}}% package name +% }% +%}% command name -- adds backslash automatically +%\newcommand{\docopt}[1]{\ensuremath{\langle}\textrm{\textit{#1}}\ensuremath{\rangle}}% optional command argument +%\newcommand{\docarg}[1]{\textrm{\textit{#1}}}% (required) command argument +%\newenvironment{docspec}{\begin{quotation}\ttfamily\parskip0pt\parindent0pt\ignorespaces}{\end{quotation}}% command specification environment +%\newcommand{\docenv}[1]{\texttt{#1}\index{#1 environment@\texttt{#1} environment}\index{environments!#1@\texttt{#1}}}% environment name +%\newcommand{\docenvdef}[1]{\hlred{\texttt{#1}}\label{env:#1}\index{#1 environment@\texttt{#1} environment}\index{environments!#1@\texttt{#1}}}% environment name +%\newcommand{\docpkg}[1]{\texttt{#1}\index{#1 package@\texttt{#1} package}\index{packages!#1@\texttt{#1}}}% package name +%\newcommand{\doccls}[1]{\texttt{#1}}% document class name +%\newcommand{\docclsopt}[1]{\texttt{#1}\index{#1 class option@\texttt{#1} class option}\index{class options!#1@\texttt{#1}}}% document class option name +%\newcommand{\docclsoptdef}[1]{\hlred{\texttt{#1}}\label{clsopt:#1}\index{#1 class option@\texttt{#1} class option}\index{class options!#1@\texttt{#1}}}% document class option name defined +%\newcommand{\docmsg}[2]{\bigskip\begin{fullwidth}\noindent\ttfamily#1\end{fullwidth}\medskip\par\noindent#2} +%\newcommand{\docfilehook}[2]{\texttt{#1}\index{file hooks!#2}\index{#1@\texttt{#1}}} +%\newcommand{\doccounter}[1]{\texttt{#1}\index{#1 counter@\texttt{#1} counter}} +%\usepackage{gnuplottex} +\usepackage{cancel} +\usepackage{pgf,tikz,pgfplots} +\usetikzlibrary{fadings,shapes.arrows,shadows,patterns} +\usetikzlibrary{arrows.meta} +%\usepackage{mathrsfs} + +\usepackage{tabu} + +\usepackage{textcomp} +\usetikzlibrary{arrows,shapes,calc,decorations.pathreplacing,fit} + + +\usepackage{subfigure} + +\newcommand{\tikztab}[1]{\tikz[na]{ + \node[anchor=base] () + {$#1$};}} + + +\newcommand{\tikztaboverlay}[2]{\tikz[na]{ + \node[anchor=base] (#2) + {$#1$};}} + +\newcommand{\tikztabtext}[1]{\tikz[na]{ + \node[anchor=base] () + {#1};}} + + +%Tables +\usepackage{booktabs} +\usepackage{xcolor,colortbl} + +% Generates the index +\usepackage{makeidx} + +\usepackage{caption} % GLEITUMGEBUNG UND TIKZPICTURE +\makeindex + +%\usepackage{gnuplottex} + +\usepackage{longtable} +\usepackage{amssymb} +\usepackage{amsmath} + + +\newcommand{\bracemark}[1]{\tikz[remember picture] \node[inner sep=0pt] (#1) {\vphantom{X}};} + + +%%Defintion bcancelto +%% #1, #2 offset of label #6 extra width to clear arrowhead +%% #3, #4 vector direction #7 superscript label style +%% #5 vector width #8 superscript label +%\def\cantox@vector#1#2#3#4#5#6#7#8{% +% \dimen@.5\p@ +% \setbox\z@\vbox{\boxmaxdepth.5\p@ +% \hbox{\kern-1.2\p@\kern#1\dimen@$#7{#8}\m@th$}}% +% \ifx\canto@fil\hidewidth \wd\z@\z@ \else \kern-#6\unitlength \fi +% \ooalign{% +% \canto@fil$\m@th \CancelColor +% \vcenter{\hbox{\dimen@#6\unitlength \kern\dimen@ +% \multiply\dimen@#4\divide\dimen@#3 \vrule\@depth\dimen@\@width\z@ +% \vector(#3,-#4){#5}% +% }}_{\raise-#2\dimen@\copy\z@\kern-\scriptspace}$% +% \canto@fil \cr +% \hfil \box\@tempboxa \kern\wd\z@ \hfil \cr}} +%\def\bcancelto#1#2{\let\canto@vector\cantox@vector\cancelto{#1}{#2}} +%\makeatother +%%Defintion bcancelto + +\tikzset{ +main node/.style={inner sep=0,outer sep=0}, +label node/.style={inner sep=0,outer ysep=.2em,outer xsep=.4em,font=\scriptsize,overlay}, +strike out/.style={shorten <=-.2em,shorten >=-.5em,overlay} +} +\newcommand{\cccancelto}[3][]{\tikz[baseline=(N.base)]{ + \node[main node](N){$#2$}; + \node[label node,#1, anchor=south west] at (N.north east){$#3$}; + \draw[strike out,#1] (N.south west) -- (N.north east); +}} +\newcommand{\ccancelto}[3][]{\tikz[baseline=(N.base)]{ + \node[main node](N){$#2$}; + \node[label node,#1, anchor=south west] at (N.north east){$#3$}; + \draw[strike out,-latex,#1] (N.south west) -- (N.north east); +}} +\newcommand{\bcancelto}[3][]{\tikz[baseline=(N.base)]{ + \node[main node](N){$#2$}; + \node[label node,#1, anchor=north west] at (N.south east){$#3$}; + \draw[strike out,-latex,#1] (N.north west) -- (N.south east); +}} +\newcommand{\bccancelto}[3][]{\tikz[baseline=(N.base)]{ + \node[main node](N){$#2$}; + \node[label node,#1, anchor=north west] at (N.south east){$#3$}; + \draw[strike out,#1] (N.north west) -- (N.south east); +}} + + +\newcommand{\inlineFormel}[1] +{\(\displaystyle #1\)} + +\newcommand{\outlineFormel}[1]{ +\begin{equation*} +\displaystyle #1 +\end{equation*}} + +% Zeichnet einen gelben Kasten mit rotem Rahmen +%\usepackage{framed} +\usepackage[framemethod=tikz]{mdframed} + +\usetikzlibrary{shadows} + +\newmdenv[tikzsetting={fill=yellow!20,drop shadow},roundcorner=10pt ]{myshadowbox} + +\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} + +\usepackage{minitoc} + +\dominitoc +\setcounter{minitocdepth}{4} +\mtcsettitle{minitoc}{Inhalt des Kapitels} % minitoc-title + + +\newcommand*{\changefont}[3]{% +\fontfamily{#1}\fontseries{#2}\fontshape{#3}\selectfont} + + +\usepackage{url} % Setzen von URLs. In Verbindung mit hyperref sind diese auch aktive Links. + + +\everymath{\displaystyle} + +\setlength{\mathindent}{0pt} %Einrücken in Mathe verhindern (nur mit Dokumentenklasse fleqn) b + +\setlength{\parindent}{0em} %Einrücken verhindern +\tikzstyle{na} = [baseline=-3pt] + +\tikzstyle{myboxblue} = [draw=blue, fill=blue!20, very thick, +rectangle, rounded corners, inner sep=10pt, inner ysep=20pt] +\tikzstyle{fancytitle} =[fill=blue!80, text=white] + +\newcommand{\fancybox}[2][Title of the box]{% + \begin{tikzpicture} + \node [myboxblue] (box){% + \begin{minipage}{0.9\textwidth} + #2 + \end{minipage} + }; + \node[fancytitle, right=10pt] at (box.north west) {#1}; + %\node[fancytitle, rounded corners] at (box.east) {$\clubsuit$}; + \end{tikzpicture}% +} + + + +%\usepackage{tabularx} + +%\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} +%\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} +%\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} + + +\usepackage[thinlines]{easytable} diff --git a/folgen01.tex b/folgen01.tex new file mode 100644 index 0000000..ee77aa2 --- /dev/null +++ b/folgen01.tex @@ -0,0 +1,124 @@ +%!TEX root=main.tex +\section{Folgen} + +\paragraph*{Beispiel 1:} + +Monatlicher Umsatz eines Shops: \\ +\begin{center} + \begin{tabular}{|l|cccccc|} + \hline + \rule{0pt}{12pt}{\cellcolor[rgb]{1,0.647,0}}Monat &1 & 2 & 3 & 4 & 5 & 6 \\ + \hline + \rule{0pt}{12pt}{\cellcolor[rgb]{1,0.647,0}}Umsatz in T\texteuro& 1 & 2 & 3 & 4 & 5 & 6 \\ + \hline + \end{tabular} + +\end{center} + + +\begin{center} +\begin{tikzpicture}[scale=1.25] +\definecolor{orange1}{rgb}{1,0.647,0} +\begin{axis}[% +xlabel={Monat}, +ylabel={Umsatz [T\texteuro]}, +%clickable coords={(xy): \thisrow{label}},% +scatter/classes={% + a={mark=square*,orange1}}] +\addplot[scatter,only marks,% +scatter src=explicit symbolic]% +table[meta=label] { + x y label + 1 1 a + 2 2 a + 3 3 a + 4 4 a + 5 5 a + 6 6 a +}; +\end{axis} +\end{tikzpicture} +\end{center} + +\paragraph*{Beispiel 2:} + +Rückzahlung eines Kredites (monatlich 200 \texteuro): \\ +\begin{center} + \begin{tabular}{|l|cccccc|} + \hline + \rule{0pt}{12pt}{\cellcolor[rgb]{0.98,0.1,0}}Monat &1 & 2 & 3 & 4 & 5 & 6 \\ + \hline + \rule{0pt}{12pt}{\cellcolor[rgb]{0.98,0.1,0}}Schuld in T\texteuro& 7,0 & 6,8 & 6,6 & 6,4 & 6,2 & 6,0 \\ + \hline + \end{tabular} + +\end{center} + + +\begin{center} + \begin{tikzpicture}[scale=1.25] + \definecolor{red1}{rgb}{0.98,0.1,0} + \begin{axis}[% + xlabel={Monat}, + ylabel={Schuld [T\texteuro]}, + %clickable coords={(xy): \thisrow{label}},% + scatter/classes={% + a={mark=square*,red1}}] + \addplot[scatter,only marks,% + scatter src=explicit symbolic]% + table[meta=label] { + x y label + 1 7.0 a + 2 6.8 a + 3 6.6 a + 4 6.4 a + 5 6.2 a + 6 6.0 a + }; + \end{axis} + \end{tikzpicture} +\end{center} + +\fancybox[Definition \glqq undendliche Folge\grqq]{Eine unendliche Folge is eine Abbildung, die jeder natürlichen Zahl $n$ (also $n \in \mathbb{ N}$ bzw. $n \in \mathbb{N}_0$) eine reelle Zahl $a_n$ zuordnet. + + 1 - 4:52 weiter +} + + + +\vfill + + + +x-Achse = Abzisse +y-Achse = Ordinate + + + + +%\def\hcenter#1{\hfil#1\hfil} +%\begin{table}[] +% \begin{tabu}{ +% >{\columncolor[HTML]{9A0000}}X[l]|X[c]|X[c]|X[c]|X[c]|X[c]|X[c]|} +% {\color[HTML]{FFFFFF} \textbf{Monat}} & {\color[HTML]{9A0000} \textbf{1}} & {\color[HTML]{9A0000} \textbf{2}} & {\color[HTML]{9A0000} \textbf{3}} & {\color[HTML]{9A0000} \textbf{4}} & {\color[HTML]{9A0000} \textbf{5}} & {\color[HTML]{9A0000} \textbf{6}}\\ +% \rule{10pt}{20pt}{\color[HTML]{FFFFFF} \textbf{Umsatz in T\texteuro}} & \textbf{1} & \textbf{2} & \textbf{3} & \textbf{4} & \textbf{5} & \textbf{6} +% \end{tabu} +%\end{table} + + +% Muster +%\begin{tabular}{|>{\columncolor{blue!40}}r|rrrrr|} +% \hline +% \rowcolor[gray]{.8} \textbf{No.} & {\bf 134} & {\bf 135} & {\bf 136} & {\bf 137} & {\bf 138} \\ +% \hline +% \textbf{Milch } & 0.00 & 0.05 & 0.00 & 0.04 & 0.00 \\ +% \textbf{Käse } & 49.57 & 49.15 & 49.80 & 49.68 & 50.18 \\ +% \textbf{Zucker } & 0.01 & 0.00 & 0.00 & 0.00 & 0.00 \\ +% {\bf Apfel } & 0.00 & 0.06 & 0.00 & 0.01 & 0.01 \\ +% {\bf Wurst } & 46.14 & 46.56 & 46.32 & 46.48 & 46.31\\\hline +% {\bf Total } & {\bf 97.13} & {\bf 97.23} & {\bf 97.53} & {\bf 97.65} & {\bf 98.04} \\\hline +%\end{tabular} + + + +\newpage \ No newline at end of file diff --git a/gnuplot01.gp b/gnuplot01.gp new file mode 100644 index 0000000..72afec9 --- /dev/null +++ b/gnuplot01.gp @@ -0,0 +1,24 @@ +set terminal png + set output "gnuplot01.png" + set grid + set samples 100000 + unset border + set lmargin at screen 0 + set rmargin at screen 1 + set bmargin at screen 0 + set tmargin at screen 1 + set yrange [-7:10] + set xrange [-8:8] + set size 10./10. + set key center top reverse Left + set xzeroaxis + set yzeroaxis + set ytics axis + set xtics axis + #set object circle at 3,3 size 0.2 + set label "(2,0.33)" at 2.1,0.77 tc rgb "#FF0000" + plot 1/(x**2 -1) lt rgb "#006300" lw 2 notitle, '-' w p pt 7 ps 1.5 lc rgb "#FF0000" notitle + 2.0 0.33 + e + + #"=latex}, +yticklabel style = {font=\footnotesize,xshift=0.5ex}, +xticklabel style = {font=\footnotesize,yshift=0.5ex}, +% grid=both, +% grid style={line width=.1pt, draw=gray!10}, +% major grid style={line width=.2pt,draw=gray!50}, +ymax=5.5] +\addplot [mark=none,domain=-3.8:3.8, color=NewBlue, line width=0.75mm,smooth] {x^2}; +\end{axis} + +\draw[-{Triangle[scale=3,length=5,width=6]}, color=NewBlue, line width=3mm, fill=white] (2,1.5) to (0.8,1.5); +%http://latexcolor.com + + +\draw[-{Triangle[scale=3,length=5,width=6]}, color=NewBlue, line width=3mm] (4.8,1.5) to (6,1.5); + + +\draw[draw=NewBlue, fill=white, line width=0.75mm] (-1,1.2) rectangle (0.5,1.8) node[pos=.5] {\textbf{\textcolor{black}{$-\infty$}}}; + + +\draw[draw=NewBlue, fill=white, line width=0.75mm] (6.3,1.2) rectangle (7.8,1.8) node[pos=.5] {\textbf{\textcolor{black}{$+\infty$}}}; +%\tikzfancyarrow[3cm]{} arrow + +\end{tikzpicture} \ No newline at end of file diff --git a/limit01.pgf b/limit01.pgf new file mode 100644 index 0000000..e680b7c --- /dev/null +++ b/limit01.pgf @@ -0,0 +1,53 @@ +\begin{tikzpicture}[scale=0.8] + +\pgfplotsset{compat=1.11} + +\definecolor{FireBrick}{rgb}{0.7, 0.13, 0.13} + +\definecolor{NewBlue}{rgb}{0.27, 0.45, 0.76} + +\tikzfading[name=arrowfading, top color=transparent!0, bottom color=transparent!95] +\tikzset{arrowfill/.style={#1,general shadow={fill=black, shadow yshift=-0.8ex, path fading=arrowfading}}} +\tikzset{arrowstyle/.style n args={3}{draw=#2,arrowfill={#3}, single arrow,minimum height=#1, single arrow, +single arrow head extend=.3cm,}} + +%\NewDocumentCommand{\tikzfancyarrow}{O{2cm} O{FireBrick} O{top color=orange!20!red, bottom color=red} m}{ +%\tikz[baseline=-0.5ex]\node [arrowstyle={#1}{#2}{#3}] {#4}; +%} + + +%\node [ +% fill=blue!50, draw, +% single arrow, single arrow head indent=0ex, +% rotate=0, +% font=\sffamily +%] at (1,1.5) +%{\rotatebox{0}{ \qquad}}; + + +%\draw[color=gray!10,step=2mm,help lines] (-0.7,0) grid (72mm,58mm); +%\draw[color=gray!70,step=10mm,xshift=4mm,yshift=-1mm] (-0.5,0) grid (70mm,60mm); +\begin{axis}[ +x=1cm,y=1cm, +axis x line=center, +axis y line=center, +%axis lines=middle, +ymajorgrids=true, +xmajorgrids=true, +xmin=-5, +xmax=5, +ymin=-6, +ymax=6, +xtick={-5,-4,...,5}, +ytick={-5,-4,...,6},] +\addplot [mark=none,domain=-4.8:-1.05, color=NewBlue, line width=0.5mm,step=10000, smooth, tension=0.2] {1/(x^2-1)}; +\addplot [mark=none,domain=-0.95:0.95, color=NewBlue, line width=0.5mm,step=10000] {1/(x^2-1)}; +\addplot [mark=none,domain=1.05:4.8, color=NewBlue, line width=0.5mm,step=10000] {1/(x^2-1)}; + +%\clip(-17.083986586441775,-20.54798056618339) rectangle (4.103328404466779,7.349328615703948); +\end{axis} +\filldraw[red](7,6.33) circle (0.75mm) node[above,right, yshift=4]{(2,0.33)}; + +%\node[] (A) at ( 1,3) {\textbf{$y^2=x^2$}}; + +\end{tikzpicture} \ No newline at end of file diff --git a/limit01.tex b/limit01.tex new file mode 100644 index 0000000..0bfb558 --- /dev/null +++ b/limit01.tex @@ -0,0 +1,715 @@ +%!TEX root=main.tex +\section{Grenzwerte} + +\subsection{Der Limes ~\cite{studimup.de}} +Mit dem Limes können Grenzwerte angegeben werden. Der Limes beschreibt, was passiert, wenn man für eine Variable Werte einsetzt, die einem bestimmten Wert immer näherkommen. Dabei steht unter dem „lim“ die Variable und gegen welche Zahl sie geht (also welchem Wert die Variable immer näher kommt). Nach dem „lim“ steht dann die Funktion, worin dann die Werte für x eingesetzt werden, zum Beispiel: +$\lim _ { x \rightarrow \infty } \frac { 1 } { x }$ + +Diese Schreibweise bedeutet, dass man für $x$ in die Funktion $1/x$ Werte einsetzt, die immer näher an unendlich herankommen. Man kann ja keinen unendlichen Wert einsetzen, aber man kann mit dem Limes „gucken“ was für unendlich herauskommen würde. Man spricht dann „Limes gegen unendlich“. Das geht natürlich auch mit allen anderen Werten, nicht nur für unendlich. + +\subsection{Grenzwerte im Unendlichen} +Grenzwerte im Unendlichen beschreiben, was mit der Funktion passiert, also an welchen Wert sich die Funktion immer mehr annähert, wenn $x$ gegen unendlich läuft (das heißt, wenn $x$ immer größer wird bis unendlich). Dabei kann $x$ gegen $+\infty$ und $-\infty$ laufen, also immer kleiner oder größer werden. Es sieht dann in mathematischer Schreibweise folgendermaßen aus: + +$\lim _ { x \rightarrow \infty } f ( x ) \quad$ und $\quad \lim _ { x \rightarrow - \infty } f ( x )$ + +\begin{center} +\input{limit001.pgf} +\end{center} + + + +\subsection{Merkblatt}\label{lbl:MerkblattGrenzwert} + +\subsubsection{Wichtige Grenzwerte} + +% \setlength\extrarowheight{10pt} +%\begin{tabular}{|C{2cm}|C{2cm}|} +% \hline +% & \\ +% \hline +% $\frac { 1 } { \infty }$ & $0$ \\ +% \hline +% $\frac { 1 } { \pm 0 }$ & $\pm \infty$\\ +% \hline +% & \\ +% \hline +% & \\ +% \hline +% & \\ +% \hline +% & \\ +% \hline +% & \\ +% \hline +%\end{tabular} +%\begin{tabular}{l} + +\begin{TAB}(r,7mm,8mm)[10pt]{|c|l|}{|c|c|c|c|c|c|}% (rows,min,max)[tabcolsep]{columns}{rows} + $\frac { 1 } { \infty }$ & $0$ \\ + $\frac { 1 } { \pm 0 }$ & $\pm \infty$ \\ + $\mathrm { e } ^ { \infty }$ & $\infty$\\ + $q ^ { \infty }$ & $\text {falls } | q | < 1$\\ + $\ln ( \infty )$&$\infty$\\ + $\ln \left( 0 ^ { + } \right) $&$ - \infty$ +\end{TAB} + + + + +\begin{longtable}{|l|l|l|} + $\left[ \frac { 0 } { 0 } \right] , \left[ \frac { \infty } { \infty } \right]$ & \textbf{Zähler} und \textbf{Nenner} einzeln \textbf{ableiten}. & $\lim _ { x \rightarrow 0 } \frac { \sin ( x ) } { x } \frac { \left[ \frac { 0 } { 0 } \right] } { = } \lim _ { x \rightarrow 0 } \frac { \cos ( x ) } { 1 } = 1$\\\hline + & & $\lim _ { x \rightarrow \infty } \frac { 3 x } { e ^ { 2 x } } \stackrel { \left[ \frac { \infty } { \infty } \right] } { = } \lim _ { x \rightarrow \infty } \frac { 3 } { 2 e ^ { 2 x } } = 0$ \\ + \\ +$[ 0 \cdot \infty ]$ & \textbf{Umformen zu} $\left[ \frac { 0 } { 0 } \right]$ \textbf{oder} $\left[ \frac { \infty } { \infty } \right]$: & \\ + +& \textbf{Bruch vorhanden?}: Bruch \glqq zusammensetzen\grqq\ & $\lim _ { x \rightarrow \infty } \frac { 1 } { x } \cdot \ln ( x ) \stackrel { [ 0 \cdot \infty ] } { = }$ \\ + +& & $\lim _ { x \to \infty } \frac { \ln ( x ) } { x } \stackrel { \left[ \frac { \infty } { \infty } \right] } { = } \ldots$ \\ \\ + & \textbf{Sonst}: Bruch \glqq erzeugen\grqq mit $a \cdot b = \frac { a } { 1 / b } = \frac { b } { 1 / a }$& $\lim _ { x \rightarrow 0 ^ +} x \cdot \ln ( x ) \mathop =\limits^{\left[ 0 \cdot \infty \right]} $\\ + & & $\lim _ { x \rightarrow 0 ^ { + } } \frac { \ln ( x ) } { 1 / x } \mathop = \limits^{\left[ \frac{\infty }{\infty } \right]}\ldots$\\ \\ +$ \left[ 0 ^ 0 \right] , \left[ 1 ^ \infty \right],$ & \textbf{Umformen zu} $\left[ 0 \cdot \infty \right] : \quad a ^ b = e ^ { b \cdot \ln ( a ) }$ & $\lim _ { x \rightarrow 0 ^ { + } + } ( 1 - x ) ^ { \frac { 1 } { x } } \stackrel { \left[ 1 ^ { \infty } \right] } { = }$\\ + $\left[ \infty ^ 0 \right]$& & $\lim _ { x \rightarrow 0 ^ { + } } e ^ { \frac { 1 } { x } \cdot \ln ( 1 - x ) } \stackrel { [ 0 \cdot \infty ] } { = } \ldots$\\ +$[ \infty - \infty ]$ & \textbf{Umformen}: &\\ +&\textbf{Bruch vorhanden?}: Hauptnenner bilden & $\lim _ { x \rightarrow 0 ^ { + } } \frac { 1 } { x } - \frac { 1 } { \ln ( 1 + x ) } \stackrel { [ \infty - \infty ] } { = }$\\ +& & $\stackrel { [ \infty - \infty ] } { = }\lim _ { x \rightarrow 0 ^ { + } } \frac { \ln ( 1 + x ) - x } { x \cdot \ln ( 1 + x ) } \stackrel { \left[ \frac { 0 } { 0 } \right] } { = } \ldots$\\ +& \textbf{Quadratwurzel vorhanden?:} $a - b = \frac { a ^ { 2 } - b ^ { 2 } } { a + b }$ & $\lim _ { x \rightarrow \infty } x - \sqrt { x ^ { 2 } + 1 } \stackrel { [ \infty - \infty ] } { = }$\\ + +\end{longtable} + +\vfill +\pagebreak + + +\subsection{Wichtige Grenzwerte} +Empfehlung: Die Zahl die gegen das $x$ läuft in die Funktion einsetzen. Im einfachsten Fall kommt sofort das Endergebnis heraus. +\begin{enumerate} + \item Einfach + z.B. $\mathop {\lim }\limits_{x \to - 3} {x^2} = 9$ +\item $\mathop {\lim }\limits_{x \to \infty } \frac{1}{x} = 0$ +\item $\mathop {\lim }\limits_{x \to {2^ + }} \frac{{\ln \left( {x - 1} \right)}}{{x - 2}} = 1$ +\end{enumerate} + +\textbf{Beispiel}: Funktion $\mathop {\lim }\limits_{x \to - 2} \frac{1}{{{x^2} - 1}}$ + + +\begin{figure}[h] +% \pgfplotsset{compat=1.13} +% \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1cm,y=1cm,scale=0.6] +% \definecolor{ffqqqq}{rgb}{1,0,0} +% \definecolor{qqwuqq}{rgb}{0,0.39215686274509803,0} +% \begin{axis}[ +% x=1cm,y=1cm, +% axis lines=middle, +% ymajorgrids=true, +% xmajorgrids=true, +% xmin=-7.72, +% xmax=7.7, +% ymin=-5.5, +% ymax=5.5, +% xtick={-7,-6,...,7}, +% ytick={-5,-4,...,5},] +% \clip(-7.72,-5.48) rectangle (7.72,5.48); +% \draw[line width=0.75pt,color=qqwuqq,smooth,samples=400,domain=-7.72:7.719999999999998] plot(\x,{1/((\x)^(2)-1)}); +% \begin{scriptsize} +% %\draw[color=qqwuqq] (-7.54,-0.05) node {$f$}; +% \draw [fill=ffqqqq] (2,0.3333333333333333) circle (2.5pt); +% \draw[color=ffqqqq] (2.8,0.77) node {$(2, 0.33)$}; +% \end{scriptsize} +% \end{axis} +% \end{tikzpicture} +\centering +%\includegraphics[scale=.7]{gnuplot01.png} +\input{limit01.pgf} +\end{figure} + + +%\begin{figure}[h] +%\pgfplotsset{compat=1.15} +%\begin{tikzpicture}[>=stealth, baseline=0,scale=0.75,x=1cm,y=1cm] +%\definecolor{ffqqqq}{rgb}{1,0,0} +%\definecolor{qqwuqq}{rgb}{0,0.39215686274509803,0} +%\begin{axis}[ +% x=1cm,y=1cm, +% axis lines=middle, +% ymajorgrids=true, +% xmajorgrids=true, +% xmin=-7.72, +% xmax=7.7, +% ymin=-5.5, +% ymax=5.8, +% xtick={-7,-6,...,7}, +% ytick={-5,-4,...,5}, +% restrict y to domain=-5.5:5.8, +% restrict y to domain=-7.72:7.7] +% \clip(-7.72,-5.48) rectangle (7.72,5.48); +% \draw[line width=0.8pt,color=qqwuqq,smooth,samples=500,domain=-7:7] plot(\x,{1/((\x)^(2)-1)}); +% \begin{scriptsize} +% \draw [fill=ffqqqq] (2,0.3333333333333333) circle (2.5pt); +% \draw[color=ffqqqq] (2.8,0.77) node {$(2, 0.33)$}; +% \end{scriptsize} +%\end{axis} +%\end{tikzpicture} +%\end{figure} + +\marginpar{bekommt man allgemein bei dieser Methode ein eindeutiges Ergebnis, so ist die Aufgabe gelöst}Hier kann man auch erst alle $x$ mit dem Grenzwert füllen und berechnen. Hier in diesem Fall ergibt sich ein eindeutiges Ergebnis: $\mathop {\lim }\limits_{x \to - 2} \frac{1}{{{x^2} - 1}} = \frac{1}{3}$ + +Schaut man sich die Funktion an der Stelle $-1$ an, so kann man hier von zwei Seiten diesen Wert untersuchen. Wenn man von links kommt so schreibt man $\mathop {\lim }\limits_{x \to {1^ - }} \frac{1}{{{x^2} - 1}}$. Hier geht Funktion gegen $+\infty$. Von rechts $\mathop {\lim }\limits_{x \to {1^ + }} \frac{1}{{{x^2} - 1}}$ geht die Funktion gegen $-\infty$. + +\definecolor{ffqqqq}{rgb}{1,0,0} +\definecolor{qqwuqq}{rgb}{0,0.39215686274509803,0} + +%%%%%%%%%%%%%%Test%%%%%%%%%%%%%% +%\begin{figure}[htb] +% \centering +% \begin{minipage}[t]{.45\linewidth} +% \centering +% \pgfplotsset{compat=1.13} +% \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1cm,y=1cm,scale=0.5] +% \definecolor{ffqqqq}{rgb}{1,0,0} +% \definecolor{qqwuqq}{rgb}{0,0.39215686274509803,0} +% \definecolor{ffzzqq}{rgb}{1,0.2,0} +% \begin{axis}[ +% x=1cm,y=1cm, +% axis lines=middle, +% ymajorgrids=true, +% xmajorgrids=true, +% xmin=-7.72, +% xmax=7.7, +% ymin=-5.5, +% ymax=5.5, +% xtick={-7,-6,...,7}, +% ytick={-5,-4,...,5},] +% \clip(-7.72,-5.48) rectangle (7.72,5.48); +% \draw[line width=0.75pt,color=qqwuqq,smooth,samples=400,domain=-7.72:7.719999999999998] plot(\x,{1/((\x)^(2)-1)}); +% \begin{scriptsize} +% %\draw[color=qqwuqq] (-7.54,-0.05) node {$f$}; +% \draw [->,line width=2pt,color=ffzzqq] (-5,4) -- (-1.32,4); +% %\draw [fill=ffqqqq] (2,0.3333333333333333) circle (2.5pt); +% %\draw[color=ffqqqq] (2.8,0.77) node {$(2, 0.33)$}; +% \draw[color=ffzzqq] (-3.211316965163661,4.440165320759923) node {von links}; +% \end{scriptsize} +% \end{axis} +% \end{tikzpicture} +% \end{minipage}% +% \hfill% +% \begin{minipage}[t]{.45\linewidth} +% \centering +% \pgfplotsset{compat=1.13} +% \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1cm,y=1cm,scale=0.5] +% \definecolor{ffqqqq}{rgb}{1,0,0} +% \definecolor{qqwuqq}{rgb}{0,0.39215686274509803,0} +% \definecolor{ffzzqq}{rgb}{1,0.2,0} +% \begin{axis}[ +% x=1cm,y=1cm, +% axis lines=middle, +% ymajorgrids=true, +% xmajorgrids=true, +% xmin=-7.72, +% xmax=7.7, +% ymin=-5.5, +% ymax=5.5, +% xtick={-7,-6,...,7}, +% ytick={-5,-4,...,5},] +% \clip(-7.72,-5.48) rectangle (7.72,5.48); +% \draw[line width=0.75pt,color=qqwuqq,smooth,samples=400,domain=-7.72:7.719999999999998] plot(\x,{1/((\x)^(2)-1)}); +% \draw [<-,line width=2pt,color=ffzzqq] (-0.7673053253313482,-5.056552230598019) -- (2.9126946746686526,-5.056552230598019); +% \begin{scriptsize} +% \draw[color=ffzzqq] (1.5,-4.6911412980822496) node {von rechts}; +% \end{scriptsize} +% \end{axis} +% \end{tikzpicture} +% \end{minipage} +%% \caption{Bildtitel} +%\end{figure} +\begin{figure}[htb] + \centering + \begin{minipage}[t]{.45\linewidth} + \centering + \input{limit01a.pgf} + \caption*{An der Stelle $-2 \rightarrow 2^+$} + \end{minipage}% + \hfill% + \begin{minipage}[t]{.45\linewidth} + \centering + \includegraphics[scale=0.45]{gnuplot01b.png} + \caption*{An der Stelle $-2 \rightarrow 2^-$} + \end{minipage}% + \end{figure} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagebreak + + +\begin{itemize} + \item $\frac{1}{{ \pm 0}} \to \pm \infty $ hiermit ist gemeint, je mehr der Nenner gegen $0$ geht, da eine Division durch Null nicht möglich ist. + \item $\frac{1}{\pm \infty} \to 0$ +\end{itemize} + +\begin{figure}[h] + \centering + %\resizebox{!}{.15\paperheight}{\input{gnuplot02.gp}} + %\resizebox{!}{.15\paperheight}{\includegraphics{gnuplot01a.png}} + \includegraphics[scale=0.5]{gnuplot02a.png} + \caption*{$\frac{1}{x}$} +\end{figure} + + +\begin{itemize} + \item $e^{\infty} \to \infty $ + \item $e^{- \infty} \to 0$ +\end{itemize} + +\begin{figure}[h] +\centering +%TODO +%\resizebox{!}{.15\paperheight}{\input{gnuplot03a.gp}} + \includegraphics[scale=0.5]{gnuplot03a.png} + \caption*{$e^x$} +\end{figure} +\pagebreak + +%http://tutorial.math.lamar.edu/Classes/CalcI/InverseFunctions.aspx +\marginpar{die Logarithmus-Funktion ist nur im positiven Bereich. Man kann sich nur von rechts der $0$ annähern.} +\begin{itemize} + \item $\ln (\infty) \to \infty $ + \item $\ln (0^+) \to -\infty$ +\end{itemize} +\begin{figure}[ht] +\centering +%\resizebox{!}{.15\paperheight}{\input{gnuplot03.gp}} +\includegraphics[scale=0.5]{gnuplot04a.png} +\caption*{$\ln x$}% +\end{figure} + +\begin{itemize} + \item $q^\infty = 0$, falls $\left|q\right|<1$ + \item $\ln (0^+) \to -\infty$ +\end{itemize} + +\vfill + +\pagebreak +\subsection{Regeln von L'Hospital} +Wenn man Grenzwerte wie $\lim _ { x \rightarrow x _ { 0 } } f ( x )$ bestimmen soll, schaut man zuerst einmal, was man denn erhalten würde, wenn man $x_0$ einfach einsetzt. + + + +Kommt bei der Berechnung von Grenzwerten einer der nachfolgenden Sonderfälle heraus, so kann man diese gegebenenfalls mit der Regeln von L'Hospital lösen. +\begin{description} +\item [1.]\tikz[na]\node [coordinate] (n1) {}; $\frac{0}{0}$ +\item [2.]\tikz[na]\node [coordinate] (n2) {}; $\frac{\infty}{\infty}$ +\end{description} +Diese beiden Punkte können mit der Regel von L'Hospital gelöst werden. +\textbf{Beispiel:} $\mathop {\lim }\limits_{x \to 2} {\frac{x^2+x-6}{x^2-3x+2}}$ wird hier nun die $2$ eingesetzt, so ergibt sich: + +$\mathop {\lim }\limits_{x \to 2} {\frac{2^2+2-6}{2^2-3\cdot 2+2}} = \mathop {\lim }\limits_{x \to 2} {\frac{4+2-6}{4-6+2}} = \frac{0}{0}$. Da das Ergebnis $\frac{0}{0}$ beträgt wird nun die Regel von L'Hospital angewandt. Hierzu werden der Zähler und der Nenner separat differenziert. Somit ergibt sich $\mathop {\lim }\limits_{x \to 2} {\frac{2x+1}{2x-3}}=\frac{5}{1}=5$. + +\begin{description} +\item [3.]\tikz[na]\node [coordinate] (n3) {}; $0\cdot \infty$ \qquad \tikz[na]\node [coordinate] (n31){}; Bruch vorhanden: $\mathop {\lim }\limits_{x \to \infty } \frac{1}{x}\ln \left( x \right)=\mathop {\lim }\limits_{x \to \infty } \frac{\ln \left( x \right)}{x}$ + + +\hspace{1.35cm} \tikz[na]\node [coordinate] (n32){}; sonst: $\mathop {\lim }\limits_{x \to {0^ + }} x \cdot \ln \left( x \right)=\mathop {\lim }\limits_{x \to {0^ + }} \frac{\ln \left( x \right)}{\frac{1}{x}}$ +%\begin{description} + %\item[] + +% \item[] +%\end{description} +\end{description} + + +\begin{description} + \item [4.]\tikz[na]\node [coordinate] (n41) {};$0^0$\tikz[na]\node [coordinate] (n4) {}; + \item [5.]\tikz[na]\node [coordinate] (n51) {};$\infty^0$\tikz[na]\node [coordinate] (n5) {}; + + + %$\mathop {\lim }\limits_{x \to {0^ + }} x \cdot \ln \left( x \right)=\mathop {\lim }\limits_{x \to {0^ + }} \frac{\ln \left( x \right)}{\frac{1}{x}}$ + \item [6.]\tikz[na]\node [coordinate] (n61) {};$1^\infty$\tikz[na]\node [coordinate] (n6) {}; + \item [7.]\tikz[na]\node [coordinate] (n7){};$\infty-\infty$ Bruch vorhanden: Hauptnenner bilden + + $\sqrt[2]{\ldots} a-b=\frac{a^2-b^2}{a+b} $ + + $\sqrt[3]{\ldots} a-b =\frac{a^3-b^3}{a^2+ab+b^2}$ +\end{description} + + +\begin{tikzpicture}[overlay] +%\node [xshift=0cm,yshift=0cm] at (current page.south west) +%{ +\path[-latex, color=blue!40, line width=0.5mm, opacity=0.5] (n3) edge [bend left=70] (n1); +\path[-latex, color=red!40, line width=0.5mm, opacity=0.5] (n3) edge [bend left=60] (n2); + +\path[-latex, color=green!40!black, line width=0.25mm, opacity=0.5] (n3) edge [bend right=20] (n31); + +\path[-latex, color=green!80!black, line width=0.25mm, opacity=0.5] (n3) edge [bend left=20] (n32); + +\path[-latex, color=red!80!black, line width=0.25mm, opacity=0.5] (n41) edge [bend left=70] (n3); + +\path[-latex, color=red!60!black, line width=0.25mm, opacity=0.5] (n51) edge [bend left=70] (n3); + +\path[-latex, color=red!40!black, line width=0.25mm, opacity=0.5] (n61) edge [bend left=70] (n3); +%\path (n6) -| node[coordinate] (n4) {} (n1); +%\draw[thick,decorate,decoration={brace,amplitude=5pt}] +%(n1) -- (n3); +%\node[right=4pt] at ($(n1)!0.5!(n3)$) {One and two are cool}; + +\node [inner sep=3pt, fit=(n4) (n5) (n6) ] (bracemarks) {}; +\draw[thick,decorate,decoration={brace,amplitude=5pt}] +(bracemarks.north east) -- (bracemarks.south east) node[midway, right=6pt] {$a^b=e^{b\cdot\ln(a)} \Rightarrow \mathop {\lim }\limits_{x \to {0^ + }} {x^{\tikz\node[draw,shape=circle,anchor=base, color=red] {$2x$} ;}} = \mathop {\lim }\limits_{x \to {0^ + }} {e^{2x \cdot \ln \left( x \right)}}$}; +%} +\end{tikzpicture} + +\pagebreak +\subsubsection{Beispiele zu $\frac{0}{0}$ und $\frac{\infty}{\infty}$} + + +\begin{enumerate} +\item $\mathop {\lim }\limits_{x \to 2} {\frac{x^3-6x^2+12x-8}{x^2-4x+4}}=\frac{0}{0}$ Anwenden der Regel von L'Hospital. + +$\mathop {\lim }\limits_{x \to 2} {\frac{3x^2-12x+12}{2x-4}}=\frac{0}{0}$ somit muss hier die L'Hospitalsche Regel noch einmal angewandt werden + +$\mathop {\lim }\limits_{x \to 2} {\frac{6x-12}{2}}=\frac{0}{2} = \underline{\underline{0}}$ + +\item $\mathop {\lim }\limits_{x \to \infty}\frac{-2x^3+3x-1}{4\sqrt{5}+x^2+1}$ +\marginpar{In der Unendlichkeit überleben immer nur die stärksten Terme} + +Ausklammern der höchsten (des am stärksten wachsenden Term) Potenz in Nenner und Zähler. Die beiden höchsten Potenzen sind hier $x^3$ und $x^{\frac{5}{2}}$. Die am stärksten wachsende ist in diesem Fall $x^3$. + +Somit $\mathop {\lim }\limits_{x \to \infty}\frac{x^3\left(-2+\frac{3}{x^2}-\frac{1}{x^3}\right)}{{x^3}\left( {4{x^{ - \frac{1}{2}}} + \frac{1}{x} + \frac{1}{{{x^3}}}} \right)}=\mathop {\lim }\limits_{x \to \infty}\frac{x^3\left(-2+\frac{3}{x^2}-\frac{1}{x^3}\right)}{{x^3}\left( {{\frac{4}{{{x^{\frac{1}{2}}}}}} + \frac{1}{x} + \frac{1}{{{x^3}}}} \right)} $\marginpar{$\frac{a^m}{a^n}=a^{m-n}$} +Alle Terme in der eine Konstante durch $x$ geteilt wird gehen nach $0$. Somit +$\mathop {\lim }\limits_{x \to \infty}\frac{x^3\left(-2+\cccancelto[red]{\frac{3}{x^2}}{0}-\cccancelto[red]{\frac{1}{x^3}}{0}\right)}{{x^3}\left( \bccancelto[orange]{\frac{ 4 }{x^{\frac{1}{2}}}}{0} + \bccancelto[orange]{\frac{1}{x}}{0} + \bccancelto[orange]{\frac{1}{x^3}}{0} \right)}$ + +Als Ergebnis erhält man hier $\frac{-2}{0}$ was in diesem Fall bedeutet das das Ergebnis nach unendlich geht, hier ist es $-\infty$ + +\item $\mathop {\lim }\limits_{x \to 0} \frac{{1 - \cos \left( {{x^3}} \right)}}{{4{x^6}}}$ wird die $0$ eingesetzt so ergibt sich ein $\frac{0}{0}$ Ergebnis: + + +$\mathop {\lim }\limits_{x \to 0} \frac{{1 - \cos \left( {{0^3}} \right)}}{{4 \cdot {0^6}}} = \frac{{1 - 1}}{0} = \frac{0}{0}$ + +Anwendung von L'Hospital: \marginpar{Kettenregel: + +$f\left( x \right) = g\left( {h\left( x \right)} \right) \to f'\left( x \right) = g'\left(h\left( x \right) \right) \cdot h'\left( x \right)$ } + +$\mathop {\lim }\limits_{x \to 0} \frac{{\sin \left( {{x^3}} \right) \cdot \cccancelto[blue]{3}{}{\cccancelto[red]{x^2}{}}}}{\bccancelto[blue]{24}{8} \cdot {x^{\bccancelto[red]{5}{3}}}} = \mathop {\lim }\limits_{x \to 0} \frac{{\sin \left( {{x^3}} \right)}}{{8{x^3}}}$ + +Dies ergibt wieder $\frac{0}{0} \rightarrow \sin(0) = 0$ und $8\cdot 0^3 = 0$ somit wird wieder differenziert: + +$\mathop {\lim }\limits_{x \to 0} \frac{\cos \left( x^3 \right) \cdot \cccancelto[green!50!black]{3}{}\cccancelto[orange]{x^2}{}}{\bccancelto[green!50!black]{24}{8}\bccancelto[orange]{x^2}{}}=\frac{1}{8}$ + +\item \marginpar{\[\frac{0}{{\sqrt {16} - 4}} = \frac{0}{0}\]}$\lim \limits_{x \to 4^-}\frac{\sqrt{4-x}}{\sqrt{12+x}-4} = \lim \limits_{x \to 4^-} \frac{{{{\left( {4 - x} \right)}^{\frac{1}{2}}}}}{{{{\left( {12 + x} \right)}^{\frac{1}{2}}} - 4}}$ + +Nach dieser Umstellung kann man die L'Hospitalsche Regel anwenden: + +Somit: $\mathop {\lim }\limits_{x \to 4^-}\frac{{\frac{1}{2}{{\left( {4 - x} \right)}^{ - \frac{1}{2}}} \cdot - 1}}{{\frac{1}{2}{{\left( {12 + x} \right)}^{ - \frac{1}{2}}}}} = \mathop {\lim }\limits_{x \to 4^-}\frac{{ - \frac{1}{2}{{\left( {4 - x} \right)}^{ - \frac{1}{2}}}}}{{\frac{1}{2}{{\left( {12 + x} \right)}^{ - \frac{1}{2}}}}} = \mathop {\lim }\limits_{x \to 4^-}\frac{{\frac{1}{2}{{\left( {12 + x} \right)}^{\frac{1}{2}}}}}{{ - \frac{1}{2}{{\left( {4 - x} \right)}^{\frac{1}{2}}}}} = \mathop {\lim }\limits_{x \to 4^-}\frac{{\cccancelto[black]{\frac{1}{2}}{}{{\left( {12 + x} \right)}^{\frac{1}{2}}}}}{{ - \bccancelto[black]{\frac{1}{2}}{}{{\left( {4 - x} \right)}^{\frac{1}{2}}}}}$ + + +$ = - \frac{{{{\left( {12 + x} \right)}^{\frac{1}{2}}}}}{{{{\left( {4 - x} \right)}^{\frac{1}{2}}}}} = \frac{-4}{0}$ + +Die Division durch $0$ bedeutet in diesem Fall das das Ergebnis gegen unendlich geht, hier $-\infty$. + +\item $\mathop {\lim }\limits_{x \to 0}\frac{e^x-2x-e^{-x}}{x-\sin{x}}$ + +\marginpar{Man kann die Regel solange anwenden, solange sich Änderungen ergeben, wen nicht sollte man ausklammern etc... ausprobieren}Einsetzen der $0$ ergibt +$\frac{{{e^0} - 2 \cdot 0 - {e^{ - 0}}}}{{0 - 0}} = \frac{0}{0}$ +Somit muss wieder L'Hospital angewandt werden: + +Ableiten von Nenner und Zähler: $\mathop {\lim }\limits_{x \to 0}\frac{e^x-2+e^{-x}}{1-\cos{x}}$ + +Einsetzen von $0$ ergibt: $\frac{{{e^0} - 2 + {e^{ - 0}}}}{{1 - \cos (0)}} = \frac{{1 - 2 + 1}}{{1 - 1}} = \frac{0}{0}$ + +Da noch immer keine Lösung erhalten wurde, wird nun wieder differenziert: + +$\mathop {\lim }\limits_{x \to 0}\frac{e^x-2+e^{-x}}{1-\cos{x}}=\mathop{\lim }\limits_{x \to 0}\frac{e^x - e^{ - x}}{\sin (x)}$ + +Und wieder: + +$\mathop {\lim }\limits_{x \to 0} \frac{{{e^x} + {e^{ - x}}}}{{\cos (x)}} = \frac{2}{1} = 2$ + +\item $\mathop {\lim }\limits_{x \to \infty } \frac{{{2^x} - {2^{ - x}}}}{{{2^x} + {2^{ - x}}}}$ + +Hier wird ist nun ein Fall bei der die Regel von L'Hospital zwar zur Anwendung kommen kann, jedoch nichts bewirkt. + +$\mathop {\lim }\limits_{x \to \infty } \frac{2^x - 2^{ - x}}{2^x + 2^{ - x}}=\mathop { \lim }\limits_{ x\to \infty }\frac { 2^{ x }\ln { ( } 2)-\left( -\ln { ( } 2)\cdot 2^{ -x } \right) }{ { 2 }^x\ln(2)-2^{-x}\ln(2) } =\mathop { \lim }\limits_{ x\to \infty }\frac { 2^{ x }\ln { \left(2\right)} +\ln { \left(2\right)}\cdot 2^{ -x } }{ { 2 }^{ x }\ln { \left(2\right)}-2^{ -x }\ln { \left(2\right)} } \\=\mathop {\lim }\limits_{ x\to \infty }\frac { \ln { \left( 2 \right) } \left( 2^{ x }+2^{ -x } \right) }{ \ln { \left( 2 \right) } \left( { 2 }^{ x }-2^{ -x } \right) } =\mathop {\lim }\limits_{ x\to \infty }\frac { \left( 2^{ x }+2^{ -x } \right) }{\left( { 2 }^{ x }-2^{ -x } \right) } $ + +Beim nächsten Differenzieren würde sich wiederum nur das Operationszeichen umkehren, also + wird wieder - etc. In diesem Fall wird ausgeklammert: + +$ = \mathop {\lim }\limits_{x \to \infty } \frac{{\cccancelto[red]{\ln (2)}{}\left( {{2^x} + {2^{ - x}}} \right)}}{{\bccancelto[red]{\ln (2)}{}\left( {{2^x} - {2^{ - x}}} \right)}} = \mathop {\lim }\limits_{x \to \infty } \frac{{\left( {{2^x} + {2^{ - x}}} \right)}}{{\left( {{2^x} - {2^{ - x}}} \right)}} $ + +Nun wird $2^x$ ausgeklammert. + + +Es gilt $\frac{{{a^m}}}{{{a^n}}} = {a^{m - n}} \Rightarrow \frac{{{2^{ - x}}}}{{{2^x}}} = {2^{ - x - x}} = {2^{ - 2x}}$ + +und somit: + +$ = \mathop {\lim }\limits_{x \to \infty } \frac{{{2^x}\left( {1 + {2^{ - 2x}}} \right)}}{{{2^x}\left( {1 - {2^{ - 2x}}} \right)}} = \mathop {\lim }\limits_{x \to \infty } \frac{1 + \cccancelto[blue]{2^{ - 2x}}{0}}{1 - \bccancelto[blue]{2^{ - 2x}}{0}}=\frac{1}{1}=1$ + +\end{enumerate} + +\pagebreak + + + + + + +%}\frac{\left(4-x\right)^{-\frac{1}{2}}}{\left(12+x\right)^{-\frac{1}{2}}}} = \lim \limits_{x \to 4^-}\frac{{{{\left( {12 + x} \right)}^{\frac{1}{2}}}}}{{{{\left( {4 - x} \right)}^{\frac{1}{2}}}}}$ \marginpar{wieder Anwendung der Kettenregel} +%fsdfsdfsdfsd +%\marginpar{ +%\begin{wrapfigure}{l}{} +%\centering +%\resizebox{!}{.99\marginparwidth}{\input{gnuplot04.gp}} +%\caption{$\frac{\sqrt{4-x}}{\sqrt{12+x}-4}$}% +%\end{wrapfigure} +%} + + + + + +%$\left\{ +%\begin{tabular}{p{.8\textwidth}} +%\begin{itemize} +%\item Second line +%\item Third line, which is quite long and seemingly tedious in the extreme +%\item Fourth line, which isn't as long as the third +%\end{itemize} +%\end{tabular} +%\right.$ + +%$\xlimes{ 2 }{ \frac{ x^2 }{ x } }$ + +\subsubsection{Beispiele zu $0\cdot\infty$} + +\begin{enumerate} +\item $\mathop {\lim }\limits_{x \to \infty } \frac{1}{x}\ln \left( {2x} \right)$ + +Hier tritt beim Einsetzen von $\infty$ geht $\frac{1}{\infty}$ gegen $0$ und $\ln\left(2x\right)$ gegen $\infty$. + +Umwandeln der Funktion zu einem Bruch, damit man den Fall $\frac{\infty}{\infty}$ bzw. $\frac{0}{0}$ erhält und somit die Regel von L'Hospital anwenden kann. Somit +\marginpar{$f(x)=\ln{x}$ + +$f'(x)=\frac{1}{x}$} +$\mathop {\lim }\limits_{x \to \infty } \frac{\ln \left( 2x\right)}{x}\Rightarrow \frac{\infty}{\infty}\Rightarrow \mathop {\lim }\limits_{x\to \infty }\frac { \frac { 1 }{ \cccancelto[red]{2}{}x } \cccancelto[red]{2}{} }{ 1 } = \mathop {\lim }\limits_{x \to \infty } \frac{1}{x} = 0 $ + + +\item $\mathop {\lim }\limits_{ x\to { 0 }^{ + } }x\cdot \ln { \left( 2x \right) } $ + +Hier ist $x=0$ und $\ln{\left(2\cdot 0^+\right)} = -\infty$ \marginpar{siehe wichtige Grenzwerte\ref{lbl:MerkblattGrenzwert}} + +$\mathop {\lim }\limits_{ x\to { 0 }^{ + } }\frac { \ln { \left( 2x \right) } }{ \frac { 1 }{ x } } = \frac{\infty}{\infty} \Rightarrow $\marginpar{$\frac{1}{x}=x^{-1}=-x^{-2}=-\frac{1}{x2}$} $\frac{\frac{1}{\cccancelto[red]{2}{}x}\cccancelto[red]{2}{}}{-\frac{1}{x^2}}=\frac{x^2}{-x}=x=0$ + +\marginpar{$\frac{1}{\frac{1}{x}}=\frac{1}{x^{-1}}$} +\item $\mathop {\lim }\limits_{x\to\infty}X^3\cdot e^{-2x}\Rightarrow $ \marginpar{$\infty^3=\infty$ und $e^{-2\infty}=0$} + + Da: $e^{-2x}=\frac{1}{e^{2x}}\Rightarrow \mathop {\lim }\limits_{x\to\infty}\frac{x^3}{e^{2x}}=\mathop {\lim }\limits_{x\to\infty}\frac{3x^2}{e^{2x}}\Rightarrow \frac{\infty}{\infty}\Rightarrow \mathop {\lim }\limits_{x\to\infty}\frac{6x}{2e^{2x}}= \mathop {\lim }\limits_{x\to\infty}\frac{6}{8e^{2x}}=0$ \marginpar{$\frac{6}{8e^{2\cdot\infty}}=0$} + + +\end{enumerate} + +\subsubsection{Beispiele zu $0^0$, $\infty^0$ und $1^\infty$} + +\begin{description} + +\item[1.] $\mathop {\lim }\limits_{x\to 0^{+}} \tikz[na]\node [coordinate, xshift=1mm,yshift=1mm] (n11){}; x^{-3 \tikz[na]\node [coordinate,yshift=1mm] (n21) {};x}=$ $0^{-3\cdot 0}\Rightarrow 0^0$ Umformen durch das Hinzufügen der Eulerschen Zahl $e$ als Basis, der alte Exponent hier $-\tikz[na]\node [coordinate, xshift=1mm,yshift=1mm] (n22) {}; 3x$ bleibt und wird um den natürlichen Logarithmus der eigentlichen Basis ($\tikz[na]\node [coordinate, xshift=1mm,yshift=1mm] (n12) {}; x$) erweitert: + + $\mathop {\lim }\limits_{x\to 0^+}e^{-\tikz[na]\node [coordinate, xshift=1mm,yshift=-1mm] (n23) {};3x\ln\left(\tikz[na]\node [coordinate,yshift=-1mm] (n13) {}; x\right)}$ + + Jetzt nur der Exponent betrachtet: + +\begin{equation*}\mathop{\lim }\limits_{ x\to 0^+ } x\cdot \left(\ln\left(\tikz[na]\node [coordinate,yshift=-2mm, xshift=-1mm] (n31) {};x\right)\right)\Rightarrow 0 \cdot \infty \Rightarrow \mathop{\lim }\limits_{ x\to 0^+ } \frac{\ln\left(x\right)}{\frac{1}{x}} \mathop \Rightarrow \limits^{\frac{\infty }{\infty }} \mathop = \limits^{L'H} \mathop{\lim }\limits_{ x\to 0^+ }\frac{\frac{1}{x}}{-\frac{1}{x^2}}=-\frac{x^{\cccancelto[red]{2}{}}}{\cccancelto[red]{x}{}}=x= {\color{red}\tikz[na]\node [coordinate, xshift=1mm,yshift=2mm] (n32) {};0} +\end{equation*}%\tikz[baseline, remember picture ]{\node[fill=blue!20,anchor=base] (t1) {$0$};} + + + \vspace{5mm} + + Nun wird dieses Ergebnis in die Ausgangs-Exponentialgleichung eingesetzt: + + \begin{equation*} + \mathop {\lim }\limits_{x \to {0^ + }} e^{-3 {\color{red}\ln\tikz[na]\node [coordinate, yshift=1.5mm] (n33) {};\left(x\right)}} = e^{-3 \cdot {\color{red}\tikz[na]\node [coordinate, yshift=1mm] (n34) {};0}} = e^0 = 1 +\end{equation*} + +\item[2.] $\mathop {\lim }\limits_{x \to 0 + } \sin {\left( x \right)^{\frac{1}{{\ln \left( x \right)}}}}\Rightarrow \sin + \left( + 0 + \right)=0 \text{ und } \frac{1}{\ln + \left( + 0^+ + \right)}=\frac{1}{-\infty}=0$ + +$\mathop {\lim }\limits_{x \to 0 + } e^{\frac{1}{\ln\left(x\right)}\cdot \ln\left(\sin\left(x\right)\right)}=\mathop {\lim }\limits_{x \to 0 + } e^{\frac{\ln + \left( + \sin + \left( + x + \right) + \right)}{\ln + \left( + x + \right)}}$ +\marginpar{Man kann einzelne Teile aus dem kritischen Fall $\frac{0}{0}$ rauslösen, wenn man erstens nichts verändert und man zweitens keinen neuen kritischen Fall erzeugt. Da hier der $\cos\left(0\right)=1$ ist, kann dieser rausgelöst werden. } + +\textbf{Nebenrechnung}: +$\mathop {\lim }\limits_{x \to 0 + }\frac{\ln + \left( + \sin + \left( + x + \right) + \right)}{\ln + \left( + x + \right)}=\mathop {\lim }\limits_{x \to 0 + }\frac{\frac{1}{\sin + \left( + x + \right)}\cdot\cos + \left( + x + \right)}{\frac{1}{x}}=\frac{\frac{\cos + \left( + x + \right)}{\sin + \left( + x + \right)}}{\frac{1}{x}}=\frac{x\cdot \cos\left(x\right)}{\sin\left(x\right)}$ + + +$\underbrace {\mathop {\lim }\limits_{x \to 0 + }\cos +\left( + x +\right)}_{=1}\cdot\mathop {\lim }\limits_{x \to 0 + }\frac{x}{\sin + \left( + x + \right)}\mathop = \limits^{\frac{0}{0}}=\mathop {\lim }\limits_{x \to 0 + }\frac{1}{\cos + \left( + x + \right)}=1$ + +Dieses Ergebnis wird nun wieder in die umgeformte Ausgangsgleichung eingesetzt: + +$\mathop {\lim }\limits_{x \to 0 + } e^{\frac{\ln + \left( + \sin + \left( + x + \right) + \right)}{\ln + \left( + x + \right)}}=e^1=\underline{\underline{e}}$ + + + +\end{description} + +\begin{tikzpicture}[overlay] +\path[-latex, color=blue!40, line width=0.5mm, opacity=0.5] (n11) edge [bend left=70] (n12); +\path[-latex, color=red!40, line width=0.5mm, opacity=0.5] (n21) edge [bend left=70] (n22); +\path[-latex, color=red!40, line width=0.5mm, opacity=0.5] (n22) edge [bend left=70] (n23); +\path[-latex, color=blue!40, line width=0.5mm, opacity=0.5] (n12) edge [bend left=70] (n13); + +\path[-latex, color=red!80, line width=0.2mm, opacity=0.5](n31) edge [bend right] (n33); +\path[-latex, color=red!80, line width=0.2mm, opacity=0.5] (n32) edge [bend angle =-45, bend left] (n34); +\end{tikzpicture} + +\newpage + +\begin{description} +\item[3.] $\mathop {\lim }\limits_{x \to 1} \sqrt[{1 - x}]{x}=\mathop {\lim }\limits_{x \to 1}x^{\frac{1}{1-x}}=\mathop {\lim }\limits_{x \to 1}e^{\frac{1}{1-x}\cdot \ln\left(x\right)}=e^{-\tikz[na]\node [coordinate, yshift=1mm] (n42) {};1}$ + + +\textbf{Nebenrechnung:} $\mathop {\lim }\limits_{x \to 1}\frac{\ln + \left( + x + \right)}{1-x}= \mathop = \limits^{\frac{\infty }{\infty }} = \mathop {\lim }\limits_{x \to 1} \frac{\frac{1}{x}}{-1}=-\tikz[na]\node [coordinate, yshift=1.5mm] (n41) {};1$ + +\item[4.]\marginpar{\raggedright{\color{red}$\frac{1}{x} = {x^{ - 1}} \left( {{x^{ - 1}}} \right)' = - {x^{ - 2}} = - \frac{1}{{{x^2}}}$ + + \color{blue}$1+\frac{a}{x}=\left(1+ax^{-1}\right)'=-ax^{-2}=-\frac{a}{x^2} $} + } + + $\mathop {\lim }\limits_{x \to \infty}\left(1+\frac{a}{x}\right)^x =\mathop {\lim }\limits_{x \to \infty}e^{x\cdot\ln\left(1+\frac{a}{x}\right)}=e^{\tikz[na]\node [coordinate, xshift=1mm, yshift=1mm] (n52){};a}$ + + \textbf{Nebenrechnung:} $\mathop {\lim }\limits_{x \to \infty}x\cdot\ln + \left( + 1+\frac{a}{x} + \right)=\mathop {\lim }\limits_{x \to \infty } \frac{{1 + \frac{a}{x}}}{{\frac{1}{x}}} = \mathop {\lim }\limits_{x \to \infty } \frac{{\frac{1}{{1 + \frac{a}{}}} \cdot \left( { - \frac{a}{{{x^2}}}} \right)}}{{ - \frac{1}{{{x^2}}}}} = \mathop {\lim }\limits_{x \to \infty } \frac{{ - \frac{a}{{{x^2} \cdot 1 + \frac{a}{x}}}}}{{ - \frac{1}{{{x^2}}}}} = \mathop {\lim }\limits_{x \to \infty } - \frac{a}{\cccancelto[red]{x^2}{} \cdot 1 + \frac{a}{x}} \cdot -\cccancelto[red]{x^2}{} = \mathop {\lim }\limits_{x \to \infty } \frac{a}{{1 + \frac{a}{x}}}$ Einsetzen von $\infty$ in $x$ $\frac{a}{{1 + \frac{a}{\infty }}} = \frac{a}{{1 + 0}} = \tikz[na]\node [coordinate, yshift=1.5mm,xshift=1mm] (n51){};a$ + +\item[5.] $\mathop {\lim }\limits_{x \to \infty } + \left(10+x\right)^{\frac{2}{x}}=\mathop {\lim }\limits_{x \to \infty } e^{\frac{2}{x}\cdot\ln\left(10+x\right)}=e^0=1$ + + \textbf{Nebenrechnung:} $\mathop {\lim }\limits_{x \to \infty }\frac{2\cdot + \ln\left( + 10+x + \right)}{x}=\frac{2\cdot\frac{1}{10+x}\cdot 1}{1}=\frac{\frac{2}{10+x}}{1}=\frac{2\cdot\frac{1}{\infty}}{1}=\frac{0}{1}=0$ + +\item[6.]$\mathop {\lim }\limits_{x \to \infty } \left( e^{5x}-4x \right)^{\frac{1}{x}}=\mathop {\lim }\limits_{x \to \infty }e^{\frac{1}{x}\ln\left(e^{5x}-4x\right)} = e^{\textbf{\textcolor{orange}{5}}}$ + + +Nebenrechnung: $\mathop {\lim }\limits_{x \to \infty }\frac{1}{x}\ln\left(e^{5x}-4x\right)=\mathop {\lim }\limits_{x \to \infty }\frac{\ln\left(e^{5x}-4x\right)}{x}=\mathop {\lim }\limits_{x \to \infty }\frac{1}{e^{5x}-4x}\cdot 5e^{5x}-4=\mathop {\lim }\limits_{x \to \infty}\frac{5e^{5x}-4}{e^{5x}-4x}=\mathop {\lim }\limits_{x \to \infty}{\frac{25e^{5x}}{5e^{5x}-4}}=\frac{125e^{5x}}{25e^{5x}}=\textbf{\textcolor{orange}{5}}$ + +\end{description} + + + +\begin{tikzpicture}[overlay] +\path[-latex, color=green!40!black, line width=0.5mm, opacity=0.5] (n41) edge [bend left=-70] (n42); +\path[-latex, color=yellow!40!black, line width=0.5mm, opacity=0.5] (n51) edge [bend left=-50] (n52); +\end{tikzpicture} + +\subsubsection{Beispiele zu $\infty - \infty$} + +\begin{enumerate} + \marginpar{Im ersten Term wird im Zähler die 0 postiv, da $1^+$ und somit geht der Term gegen $\infty$}\item $\mathop {\lim }\limits_{x \to 1^+}\frac{1}{x-1}-\frac{1}{\ln\left(x\right)}$ + + Bilden eines Hauptnenners: $\frac{\ln\left(x\right)-\left(x-1\right)}{\left(x-1\right)\ln\left(x\right)}$ Dadurch entsteht der Fall $\frac{0}{0}$ + + +\marginpar{$\left(u\cdot v\right)'=u'\cdot v+u\cdot v'$}$\mathop {\lim }\limits_{x \to 1^+}\frac{\ln\left(x\right)-\left(x-1\right)}{\left(x-1\right)\ln\left(x\right)}=\mathop {\lim }\limits_{x \to 1^+}\frac{\frac{1}{x}-1}{1\cdot\ln\left(x\right)+\left(x-1\right)\cdot\frac{1}{x}}=\mathop {\lim }\limits_{x \to 1^+}\frac{-\frac{1}{x^2}}{\frac{1}{x} + \left( { - \frac{1}{{{x^2}}}} \right)\left( {x - 1} \right) + \frac{1}{x}}$ + +Einsetzen der $1$ + +$\frac{-1}{1-1\cdot 0 +1}=-\frac{1}{2}$ + +\marginpar{Über dritte binomische Formel: $a-b=\frac{a^2-b^2}{a+b}$ also $\left(a-b\right)\left(a+b\right)=a^2-b^2$} +\item $\mathop {\lim }\limits_{x \to \infty} x-\sqrt{x^2+1}=\mathop {\lim }\limits_{x \to \infty}\underbrace x_{\textcolor{red}{a}} - \underbrace {\sqrt {{x^2} - 1} }_{\textcolor{red}{b}}=\mathop {\lim }\limits_{x \to \infty}\frac{x^2-\left(x^2+1\right)}{x+\sqrt{x^2+1}}=\mathop {\lim }\limits_{x \to \infty}\frac{x^2-\left(x^2+1\right)}{x+\sqrt{x^2-1}}=\mathop {\lim }\limits_{x \to \infty}\frac{-1}{x+\sqrt{x^2-1}}=-\frac{1}{\infty}=0$ + +\item \marginpar{Zum Auflösen der Wurzel $a - b = \frac{{{a^3} - {b^3}}}{{{a^2} + ab + {b^3}}}$}$\mathop {\lim }\limits_{x \to \infty } x - \sqrt[3]{{{x^3} - {x^2}}}=\mathop {\lim }\limits_{x \to \infty } \underbrace x_a - \underbrace {\sqrt[3]{{{x^3} - {x^2}}}}_b=\mathop {\lim }\limits_{x \to \infty }\frac{{{x^3} - {{\left( {\sqrt[3]{{{x^3} - {x^2}}}} \right)}^3}}}{{{x^2} + x\left( {\sqrt[3]{{{x^3} - {x^2}}}} \right) + {{\left( {\sqrt[3]{{{x^3} - {x^2}}}} \right)}^2}}} =\mathop {\lim }\limits_{x \to \infty }\frac{{{x^3} - \left( {{x^3} - {x^2}} \right)}}{{{x^2} + x\left( {\sqrt[3]{{{x^3} - {x^2}}}} \right) + {{\left( {\sqrt[3]{{{x^3} - {x^2}}}} \right)}^2}}}$ + +Hier muss nun der am stärksten wachsende Term gesucht werden: +Zweiter Term des Nenners: $x\left( \sqrt[3]{x^3 - x^2} \right)$ hier würde beim Einsetzen von $\infty$ der Term $x\left( \sqrt[3]{x^3} \right)$ übrig, welcher sich dann wiederum auf $x\cdot x$ also $x^2$ reduziert. + +Der dritte Term ${{{\left( {\sqrt[3]{{{x^3} - {x^2}}}} \right)}^2}}$ reduziert sich bei Betrachtung in der Unendlichkeit auf $\left( \sqrt[3]{x^3} \right)^2$. Da die dritte Wurzel aus $x^3 = x$ ist, bleibt $x^2$ übrig. Somit wachsen alle Terme im Nenner so schnell wie $x^2$. + +Im Zähler bleibt da $x^3 - \left( x^3 - x^2 \right)$ nur $-x^2$ übrig, so also auch hier wächst alles so schnell wie $x^2$. + +Das bedeutet das man jetzt den Faktor $x^2$ ausklammert: + +\begin{itemize} + \item Term 2 des Nenners: + $\frac{x\left(\sqrt[3]{x^3 - x^2} \right)}{x^2} = \frac{\sqrt[3]{x^3 - x^2}}{x}$ + + Um nun die Nenner $x$ in die Wurzel zu bekommen muss dieser hoch 3 genommen werden, somit ergibt sich $\frac{\sqrt[3]{x^3 - x^2}}{x^3} = \sqrt[3]{\frac{x^3 - x^2}{x^3}}$ + + Nebenrechnung: $\frac{x^3 - x^2}{x^3} = \frac{x^2\left( x - 1 \right)}{x^2 \cdot x} = \frac{x - 1}{x} = 1 - \frac{1}{x}$ + + $=\sqrt[3]{1 - \frac{1}{x}}$ + + \item Term 3 des Nenners: $\frac{\left( \sqrt[3]{x^3 - x^2} \right)^2}{x^2} = {\left( {\frac{{\sqrt[3]{{{x^3} - {x^2}}}}}{x}} \right)^2} = {\left( {\sqrt[3]{{\frac{{{x^3} - {x^2}}}{{{x^3}}}}}} \right)^2} = {\left( {\sqrt[3]{{1 - \frac{1}{x}}}} \right)^2}$ + +\end{itemize} + +Die nun in die Ausgangsfunktion eimsetzen: + +$\mathop {\lim }\limits_{x \to \infty} \frac{x^2}{x^2\left(1+\sqrt[3]{1+\frac{1}{x}}+\left(\sqrt[3]{1+\frac{1}{x}}\right)^2\right)}=\mathop {\lim }\limits_{x \to \infty} \frac{1}{1+\sqrt[3]{1-\frac{1}{x}}+\left(\sqrt[3]{1-\frac{1}{x}}\right)^2}$ + +Da sich im Zähler nun kein $x$ mehr befindet, wird jetzt im Nenner $\infty$ eingesetzt. Alle $\frac{1}{x}$ werden $0$. Somit $\frac{1}{1+1+1}=\frac{1}{3}$ + +\end{enumerate} + + %\includegraphics[scale=0.45]{gnuplot08a.png} + +%\begin{pycode} +%print ('Hello, \LaTeX') +%\end{pycode} + +%https://www.studimup.de/abitur/analysis/grenzwerte/ diff --git a/limit01a.pgf b/limit01a.pgf new file mode 100644 index 0000000..8d739fc --- /dev/null +++ b/limit01a.pgf @@ -0,0 +1,52 @@ +\begin{tikzpicture}[scale=0.7] + +\pgfplotsset{compat=1.11} + +\definecolor{FireBrick}{rgb}{0.7, 0.13, 0.13} + +\definecolor{NewBlue}{rgb}{0.27, 0.45, 0.76} + +\tikzfading[name=arrowfading, top color=transparent!0, bottom color=transparent!95] +\tikzset{arrowfill/.style={#1,general shadow={fill=black, shadow yshift=-0.8ex, path fading=arrowfading}}} +\tikzset{arrowstyle/.style n args={3}{draw=#2,arrowfill={#3}, single arrow,minimum height=#1, single arrow, + single arrow head extend=.3cm,}} + +%\NewDocumentCommand{\tikzfancyarrow}{O{2cm} O{FireBrick} O{top color=orange!20!red, bottom color=red} m}{ +%\tikz[baseline=-0.5ex]\node [arrowstyle={#1}{#2}{#3}] {#4}; +%} + + +%\node [ +% fill=blue!50, draw, +% single arrow, single arrow head indent=0ex, +% rotate=0, +% font=\sffamily +%] at (1,1.5) +%{\rotatebox{0}{ \qquad}}; + + +%\draw[color=gray!10,step=2mm,help lines] (-0.7,0) grid (72mm,58mm); +%\draw[color=gray!70,step=10mm,xshift=4mm,yshift=-1mm] (-0.5,0) grid (70mm,60mm); +\begin{axis}[ +x=1cm,y=1cm, +axis x line=center, +axis y line=center, +%axis lines=middle, +ymajorgrids=true, +xmajorgrids=true, +xmin=-5, +xmax=5, +ymin=-6, +ymax=5, +xtick={-4,-3,...,4}, +ytick={-5,-4,...,4},] +\addplot [mark=none,domain=-4.8:-1.05, color=NewBlue, line width=0.5mm,step=10000, smooth, tension=0.2] {1/(x^2-1)}; +\addplot [mark=none,domain=-0.95:0.95, color=NewBlue, line width=0.5mm,step=10000] {1/(x^2-1)}; +\addplot [mark=none,domain=1.05:4.8, color=NewBlue, line width=0.5mm,step=10000] {1/(x^2-1)}; + +%\clip(-17.083986586441775,-20.54798056618339) rectangle (4.103328404466779,7.349328615703948); +\end{axis} +\draw[-latex,red, line width=0.75mm](6.15,2.5) node[above, right, yshift=0.5mm] {von rechts} -- (4.15,2.5) ; +%\node[] (A) at ( 1,3) {\textbf{$y^2=x^2$}}; + +\end{tikzpicture} \ No newline at end of file diff --git a/limit01b.pgf b/limit01b.pgf new file mode 100644 index 0000000..cfe4228 --- /dev/null +++ b/limit01b.pgf @@ -0,0 +1,72 @@ +%!tikz editor 1.0 +\documentclass{article} +\usepackage{tikz} +\usepackage[graphics, active, tightpage]{preview} +\PreviewEnvironment{tikzpicture} + +%!tikz preamble begin +\usepackage{pgf,tikz,pgfplots} +\usetikzlibrary{fadings,shapes.arrows,shadows} +\usetikzlibrary{arrows.meta} +%!tikz preamble end + + +\begin{document} +%!tikz source begin +\begin{tikzpicture} +\begin{tikzpicture}[scale=0.7] + +\pgfplotsset{compat=1.11} + +\definecolor{FireBrick}{rgb}{0.7, 0.13, 0.13} + +\definecolor{NewBlue}{rgb}{0.27, 0.45, 0.76} + +\tikzfading[name=arrowfading, top color=transparent!0, bottom color=transparent!95] +\tikzset{arrowfill/.style={#1,general shadow={fill=black, shadow yshift=-0.8ex, path fading=arrowfading}}} +\tikzset{arrowstyle/.style n args={3}{draw=#2,arrowfill={#3}, single arrow,minimum height=#1, single arrow, + single arrow head extend=.3cm,}} + +%\NewDocumentCommand{\tikzfancyarrow}{O{2cm} O{FireBrick} O{top color=orange!20!red, bottom color=red} m}{ +%\tikz[baseline=-0.5ex]\node [arrowstyle={#1}{#2}{#3}] {#4}; +%} + + +%\node [ +% fill=blue!50, draw, +% single arrow, single arrow head indent=0ex, +% rotate=0, +% font=\sffamily +%] at (1,1.5) +%{\rotatebox{0}{ \qquad}}; + + +%\draw[color=gray!10,step=2mm,help lines] (-0.7,0) grid (72mm,58mm); +%\draw[color=gray!70,step=10mm,xshift=4mm,yshift=-1mm] (-0.5,0) grid (70mm,60mm); +\begin{axis}[ +x=1cm,y=1cm, +axis x line=center, +axis y line=center, +%axis lines=middle, +ymajorgrids=true, +xmajorgrids=true, +xmin=-5, +xmax=5, +ymin=-6, +ymax=5, +xtick={-4,-3,...,4}, +ytick={-5,-4,...,4},] +\addplot [mark=none,domain=-4.8:-1.05, color=NewBlue, line width=0.5mm,step=10000, smooth, tension=0.2] {1/(x^2-1)}; +\addplot [mark=none,domain=-0.95:0.95, color=NewBlue, line width=0.5mm,step=10000] {1/(x^2-1)}; +\addplot [mark=none,domain=1.05:4.8, color=NewBlue, line width=0.5mm,step=10000] {1/(x^2-1)}; + +%\clip(-17.083986586441775,-20.54798056618339) rectangle (4.103328404466779,7.349328615703948); +\end{axis} +\draw[-latex,red, line width=0.75mm](3.9,2.5) node[above, left, yshift=0.5mm] {von links} -- (5.9,2.5) ; +%\node[] (A) at ( 1,3) {\textbf{$y^2=x^2$}}; + +\end{tikzpicture} +\end{tikzpicture} +%!tikz source end + +\end{document} \ No newline at end of file diff --git a/main.tex b/main.tex new file mode 100644 index 0000000..bda171a --- /dev/null +++ b/main.tex @@ -0,0 +1,169 @@ + +%!TEX root=main.tex +%\documentclass{tufte-book} +\documentclass[fleqn, a4paper,12pt]{scrbook} + +%\hypersetup{colorlinks}% uncomment this line if you prefer colored hyperlinks (e.g., for onscreen viewing) + +%% +% Book metadata +\title{Formeln und Notizen} +%\author[]{} +%\publisher{Ich} + +%% +% If they're installed, use Bergamo and Chantilly from www.fontsite.com. +% They're clones of Bembo and Gill Sans, respectively. +%\IfFileExists{bergamo.sty}{\usepackage[osf]{bergamo}}{}% Bembo +%\IfFileExists{chantill.sty}{\usepackage{chantill}}{}% Gill Sans + +\input{definitions.tex} + + +%%% Local Variables: +%%% TeX-master: "master" +%%% End: + + +\begin{document} +\tikzstyle{every picture}+=[remember picture] +% % Front matter +% \frontmatter +% +% % r.1 blank page +% \blankpage +% +% % v.2 epigraphs +% +% +% % r.3 full title page +% \maketitle +% +% +% % v.4 copyright page +% \newpage +% \begin{fullwidth} +% ~\vfill +% \thispagestyle{empty} +% \setlength{\parindent}{0pt} +% \setlength{\parskip}{\baselineskip} +% Copyright \copyright\ \the\year\ \thanklessauthor +% +% \par\smallcaps{Published by \thanklesspublisher} +% +% \par\smallcaps{tufte-latex.googlecode.com} +% +% \par Licensed under the Apache License, Version 2.0 (the ``License''); you may not +% use this file except in compliance with the License. You may obtain a copy +% of the License at \url{http://www.apache.org/licenses/LICENSE-2.0}. Unless +% required by applicable law or agreed to in writing, software distributed +% under the License is distributed on an \smallcaps{``AS IS'' BASIS, WITHOUT +% WARRANTIES OR CONDITIONS OF ANY KIND}, either express or implied. See the +% License for the specific language governing permissions and limitations +% under the License.\index{license} +% +% \par\textit{First printing, \monthyear} +% \end{fullwidth} + + % r.5 contents + + +%\tableofcontents + +%\listoffigures + +% \listoftables + + % r.7 dedication + \cleardoublepage + %~\vfill + %\begin{doublespace} + %\noindent\fontsize{18}{22}\selectfont\itshape + %\nohyphenation + %Dedicated to those who appreciate \LaTeX{} + %and the work of \mbox{Edward R.~Tufte} + %and \mbox{Donald E.~Knuth}. + %\end{doublespace} + %\vfill + %\vfill + + + % r.9 introduction + \cleardoublepage + %\chapter*{Introduction} + % + % + % + %This sample book discusses the design of Edward Tufte's + %books\cite{Tufte2001,Tufte1990,Tufte1997,Tufte2006} + %and the use of the \doccls{tufte-book} and \doccls{tufte-handout} document classes. + % + % + %%% + %% Start the main matter (normal chapters) + \mainmatter + + +% \begin{asydef} +% // Global Asymptote definitions can be put here. +% import three; +% usepackage("bm"); + %texpreamble("\def\V#1{\bm{#1}}"); +% // One can globally override the default toolbar Settings here: +% // settings.toolbar=true; +% \end{asydef} + + + + +% \begin{figure} +% \begin{framebox} +% +% \begin{asy} +% label("Hallo Welt"); +% +% unitsize(3cm); +% size(4cm,4cm); +% import graph; +% +% real f(real x) { +% return sqrt(2*x - x^3); +% } +% draw((-4,0) -- (3,0), arrow=Arrow(HookHead)); +% draw((0,-.1) -- (0,2), arrow=Arrow(HookHead)); +% path g = graph(f, -3, 1.4142); +% draw(g); +% \end{asy} +% \end{framebox} +% \end{figure} + + \input{pearson_Funktionen_und_ihre_Graphen.tex} + + % \input{integral01.tex} + + %\input{calculus_one.tex} + + % \input{formeln.tex} + + %\input{FHTW.tex} + + %\section{Umrechnung rad - Degree und umgekehrt} + + + %\begin{marginfigure} + + %\input{trigon01.tikz.tex} + + %\end{marginfigure} + + \backmatter + +% \bibliography{sample-handout} +% \bibliographystyle{plainnat} + \bibliographystyle{plain} + \bibliography{formelbib} + + + \printindex + +\end{document} \ No newline at end of file diff --git a/pearson0201.pgf b/pearson0201.pgf new file mode 100644 index 0000000..942ae6f --- /dev/null +++ b/pearson0201.pgf @@ -0,0 +1,46 @@ +\begin{tikzpicture}[scale=0.75] +\pgfplotsset{compat=1.11} + +\definecolor{FireBrick}{rgb}{0.7, 0.13, 0.13} + +\definecolor{NewBlue}{rgb}{0.27, 0.45, 0.76} + +\tikzfading[name=arrowfading, top color=transparent!0, bottom color=transparent!95] +\tikzset{arrowfill/.style={#1,general shadow={fill=black, shadow yshift=-0.8ex, path fading=arrowfading}}} +\tikzset{arrowstyle/.style n args={3}{draw=#2,arrowfill={#3}, single arrow,minimum height=#1, single arrow, + single arrow head extend=.3cm,}} + +%\NewDocumentCommand{\tikzfancyarrow}{O{2cm} O{FireBrick} O{top color=orange!20!red, bottom color=red} m}{ +%\tikz[baseline=-0.5ex]\node [arrowstyle={#1}{#2}{#3}] {#4}; +%} + + +%\node [ +% fill=blue!50, draw, +% single arrow, single arrow head indent=0ex, +% rotate=0, +% font=\sffamily +%] at (1,1.5) +%{\rotatebox{0}{ \qquad}}; + + +%\draw[color=gray!10,step=2mm,help lines] (-0.7,0) grid (72mm,58mm); +%\draw[color=gray!70,step=10mm,xshift=4mm,yshift=-1mm] (-0.5,0) grid (70mm,60mm); +\begin{axis}[ +x=1cm,y=1cm, +axis lines=middle, +ymajorgrids=true, +xmajorgrids=true, +xmin=-5, +xmax=5, +ymin=-5, +ymax=5, +xtick={-5,-4,...,5}, +ytick={-5,-4,...,5},] +%\clip(-17.083986586441775,-20.54798056618339) rectangle (4.103328404466779,7.349328615703948); +\draw [line width=1pt,color=orange,domain=-5:5] plot(\x,{(-0--1*\x)/1}); +\draw [line width=1pt,color=orange,domain=-5:5] plot(\x,{(-0-1*\x)/1}); +\end{axis} + + \node[] (A) at ( 1,3) {\textbf{$y^2=x^2$}}; +\end{tikzpicture} \ No newline at end of file diff --git a/pearson_Funktionen_und_ihre_Graphen.tex b/pearson_Funktionen_und_ihre_Graphen.tex new file mode 100644 index 0000000..1a8a9c9 --- /dev/null +++ b/pearson_Funktionen_und_ihre_Graphen.tex @@ -0,0 +1,807 @@ +\chapter{Pearson Brückenkurs Mathematik} +\section{Beispiele zu Mengen} +\subsection{Mengenoperationen} + +\subsubsection{Vereinigung $A\cup B$} + +Die Vereinigungsmenge, ist die Menge aller Elemente, die sowohl zu $A$ oder zu $B$ oder zu beiden Mengen gehören. (Der gesamte Inhalt der Mengen $A$ und $B$) + +\begin{tikzpicture} + % Set the colors and patterns + \begin{scope} + % First circle (set A) + \fill[pattern=north west lines, pattern color=blue!50] (-1,0) circle (1.5); + % Second circle (set B) + \fill[pattern=north east lines, pattern color=red!50] (1,0) circle (1.5); + \end{scope} + + % Draw the circles' borders + \draw (-1,0) circle (1.5) node {$A$}; + \draw (1,0) circle (1.5) node {$B$}; + + % Add a label for the union + \node at (0,-2) {$A \cup B$}; +\end{tikzpicture} + +\subsubsection{Schnittmenge $A \cap B$} +Die Schnittmenge ist die Menge aller Elemente, die sowohl zu $A$ als auch zu $B$ gehören. (Gemeinsamkeiten) + +\begin{tikzpicture} + % Set the colors and patterns + \begin{scope} + % First circle (set A) - light color outside intersection + \fill[pattern=north west lines, pattern color=blue!30] (-1,0) circle (1.5); + % Second circle (set B) - light color outside intersection + \fill[pattern=north east lines, pattern color=red!30] (1,0) circle (1.5); + + % Intersection area color - darker to highlight the overlap + \begin{scope} + \clip (-1,0) circle (1.5); + \fill[blue!50, opacity=0.5] (1,0) circle (1.5); + \end{scope} + \begin{scope} + \clip (1,0) circle (1.5); + \fill[red!50, opacity=0.5] (-1,0) circle (1.5); + \end{scope} + \end{scope} + + % Draw the circles' borders and labels in the middle of each circle + \draw (-1,0) circle (1.5) node {$A$}; + \draw (1,0) circle (1.5) node {$B$}; + + % Add a label for the intersection + \node at (0,-2) {$A \cap B$}; +\end{tikzpicture} + + +\subsubsection{Differenzmenge $A\setminus B$} +\begin{tikzpicture} + % Set the colors and patterns + \begin{scope} + % First circle (set A) - lighter outside B + \fill[pattern=north west lines, pattern color=blue!50] (-1,0) circle (1.5); + + % Second circle (set B) - no fill to exclude it from A + \fill[pattern=north east lines, pattern color=red!30] (1,0) circle (1.5); + + % Exclude the intersection (make it white) + \begin{scope} + \clip (1,0) circle (1.5); + \fill[white] (-1,0) circle (1.5); + \end{scope} + \end{scope} + + % Draw the circles' borders and labels in the middle of each circle + \draw (-1,0) circle (1.5) node {$A$}; + \draw (1,0) circle (1.5) node {$B$}; + + % Add a label for the difference + \node at (0,-2) {$A \setminus B$}; +\end{tikzpicture} + +\paragraph{Beispiel 1}\mbox{}\\ + +Gegeben sind die Mengen $A:=[1,5), B:=\{2,3,4\}$ und $C:=\{z \in \mathbb{Z} \mid-1 \leq z<3\}$. + +Bestimme: +\begin{enumerate}[label=\alph*)] + \item $A \cup B$ + \item $A \cap C$ + \item $C \backslash B$ +\end{enumerate} + +\begin{enumerate}[label=\alph*)] +\item Das "'`$\cup$"' - Symbol steht für die Vereinigung der beiden Mengen $A$ und $B$. + + +Bei der Vereinigung nimmt man die Elemente, die in $A$ oder $B$ liegen - gewissermaßen also einfach alle Elemente aus beiden Mengen. + + +In $A \cup B$ liegen also alle Elemente aus $A$ und $B$...Wie schreibt man das ordentlich auf? Am besten wäre es ja, wenn wir Elemente nur einmal auflisten \ldots + +Das Ziel ist also $A \cup B$ so kompakt wie möglich aufzuschreiben. Man kann einfach + +$$ +A \cup B=[1,5) \cup\{2,3,4\} +$$ + +schreiben. + +Hier werden aber Elemente doppelt aufgezählt, weil die $3$ beispielsweise in $[1,5)$ und in $\{2,3,4\}$ auftauchen - und das ist nicht Sinn der Übung. + +Um keine Elemente doppelt aufzuzählen muss man zum Beispiel schauen, welche Elemente aus $B$ schon in $A$ liegen. Die kann man dann beim Aufschreiben weg lassen. +$A$ ist ein Intervall und enthält also alle reellen Zahlen zwischen $1$ und $5$ (welche selbst nicht mit drin liegt). $2$, $3$ und $4$ sind nun aber alles Zahlen die dort drin sind. + +Somit kommen durch $B$ gar keine neuen Elemente zu $A$ hinzu, da $B$ eine Teilmenge ist. Also ist die Vereinigung von $A$ und $B$ einfach wieder $$[1,5)$$. + +\textbf{Grafische Lösung} + + +\begin{tikzpicture} + % Draw the number line + \draw[->] (0,0) -- (6,0) node[anchor=north] {x}; % arrow at the end + + % Draw ticks and labels + \foreach \x in {0,1,2,3,4,5} + \draw (\x,0.1) -- (\x,-0.1) node[below] {\x}; + + % Highlight the interval [1,5) + \draw[thick] (1,0) -- (5,0); % draw the line between 1 and 5 + + % Solid circle at 1 (inclusive) + \filldraw (1,0) circle (2pt); + + % Open circle at 5 (exclusive) + \draw[thick] (5,0) circle (2pt); + + % Label the interval A + \node[above] at (3,0.3) {$A = [1,5)$}; +\end{tikzpicture} + + + +\begin{tikzpicture} + % Draw the number line + \draw[->] (0,0) -- (6,0) node[anchor=north] {x}; % arrow at the end + + % Draw ticks and labels + \foreach \x in {0,1,2,3,4,5} + \draw (\x,0.1) -- (\x,-0.1) node[below] {\x}; + + % Highlight the elements 2, 3, 4 + \filldraw (2,0) circle (2pt); % Solid circle at 2 + \filldraw (3,0) circle (2pt); % Solid circle at 3 + \filldraw (4,0) circle (2pt); % Solid circle at 4 + + % Label the set B + \node[above] at (3,0.3) {$B = \{2, 3, 4\}$}; + +\end{tikzpicture} + + +\begin{tikzpicture} + % Draw the number line + \draw[->] (0,0) -- (6,0) node[anchor=north] {x}; % arrow at the end + + % Draw ticks and labels + \foreach \x in {0,1,2,3,4,5} + \draw (\x,0.1) -- (\x,-0.1) node[below] {\x}; + + % Highlight the set A in blue + \draw[thick, blue] (1,0.7) -- (5,0.7); % Line for set A from 1 to 5 + \filldraw[blue] (1,0.7) circle (2pt); % Solid circle at 1 (A) + \draw[blue, thick] (5,0.7) circle (2pt); % Open circle at 5 (A) + \node[above, blue] at (3,0.8) {$A = [1, 5)$}; + + % Highlight the set B in red + \foreach \x in {2,3,4} + \filldraw[red] (\x,0) circle (2pt); % Solid circles for B + \node[above, red] at (3,0) {$B = \{2, 3, 4\}$}; + + % Highlight the union A ∪ B in green + \draw[thick, green] (1,-0.7) -- (5,-0.7); % Line for A ∪ B + \filldraw[green] (1,-0.7) circle (2pt); % Solid circle at 1 (A ∪ B) + \draw[green, thick] (5,-0.7) circle (2pt); % Open circle at 5 (A ∪ B) + \node[below, green] at (3,-0.9) {$A \cup B = [1, 5)$}; + +\end{tikzpicture} + +\item Gesucht sind die Elemente, die sowohl in $A$ als auch in $C$ enthalten sind. + +$$ +C=\{z \in \mathbb{Z} \mid-1 \leq z<3\} +$$ + +Die Menge $C$ ist einfach geschrieben $\{-1,0,1,2\}$. + +Welche Elemente davon liegen auch in $A=[1,5)$ ? + +Geht man mal die Reihe nach durch: +$$ +\begin{array}{rrll} + & \fcolorbox{red}{white}{-1}<1 & \text { also nicht in } A \\ + & \fcolorbox{red}{white}{0}<1 & \text { also nicht in } A \\ + 1 & \leq \fcolorbox{red}{white}{1}<5 & \text { also in } A \\ + 1 & \leq \fcolorbox{red}{white}{2}<5 & \text { also in } A +\end{array} +$$ + +Somit liegen nur 1 und 2 in beiden Mengen. Die Schnittmenge lautet: + +$$ +A \cap C=\{1,2\} +$$ + + +\textbf{Grafische Lösung} + +\begin{tikzpicture} + % Draw the number line + \draw[->] (-2,0) -- (6,0) node[anchor=north] {x}; % arrow at the end + + % Draw ticks and labels + \foreach \x in {-1,0,1,2,3,4,5} + \draw (\x,0.1) -- (\x,-0.1) node[below] {\x}; + + % Highlight the set A in blue + \draw[thick, blue] (1,0.7) -- (5,0.7); % Line for set A from 1 to 5 + \filldraw[blue] (1,0.7) circle (2pt); % Solid circle at 1 (A) + \draw[blue, thick] (5,0.7) circle (2pt); % Open circle at 5 (A) + \node[above, blue] at (3,0.9) {$A = [1, 5)$}; + + % Highlight the set C in red + \foreach \x in {-1,0,1,2} + \filldraw[red] (\x,0) circle (2pt); % Solid circles for C + \node[above, red] at (0.5,0) {$C = \{ z \in \mathbb{Z} \mid -1 \leq z < 3 \}$}; + + % Highlight the intersection A ∩ C in green + \foreach \x in {1,2} + \filldraw[green] (\x,-0.7) circle (2pt); % Solid circles for A ∩ C + \node[below, green] at (1.5,-0.8) {$A \cap C = \{1, 2\}$}; + +\end{tikzpicture} + + +\item $C \backslash B$ steht für den Ausdruck " $C$ ohne $B$ ". Bevor wir überlegen, welche Elemente hier wegfallen - kannst du $C$ noch vereinfacht darstellen? + +Einfach geschrieben ist $C$ nur $\{-1,0,1,2\}$. Für $C$ ohne $B$ müssen wir also aus $C$ alle Elemente entfernen, die auch in $B$ liegen was bleibt über? + +Da man die Elemente direkt vergleichen kann, sieht man, dass nur die 2 in beiden Mengen enthalten ist. Also müssen wir die aus $C$ rausnehmen und sind fertig: + +$$ +\begin{aligned} + C \backslash B & =\{-1,0,1,2\}\} \backslash\{2,3,4\} \\ + & =\{-1,0,1\} +\end{aligned} +$$ + + +\end{enumerate} + + +\begin{tikzpicture} + % Draw the number line + \draw[->] (-2,0) -- (5,0) node[anchor=north] {x}; % arrow at the end + + % Draw ticks and labels + \foreach \x in {-1,0,1,2,3} + \draw (\x,0.1) -- (\x,-0.1) node[below] {\x}; + + % Highlight the elements -1, 0, 1, 2 + \filldraw (-1,0) circle (2pt); % Solid circle at -1 + \filldraw (0,0) circle (2pt); % Solid circle at 0 + \filldraw (1,0) circle (2pt); % Solid circle at 1 + \filldraw (2,0) circle (2pt); % Solid circle at 2 + + % Open circle at 3 (exclusive) + \draw[thick] (3,0) circle (2pt); % Open circle at 3 + + % Label the set C + \node[above] at (1,0.3) {$C = \{ z \in \mathbb{Z} \mid -1 \leq z < 3 \}$}; + +\end{tikzpicture} + + +11111111111111111111111111111111111111111111111111 + + + + + + + + + + + +11111111111111111111111111111111111111111111111111 + + +\paragraph{1.}\mbox{}\\ +Gegeben sind die Mengen $M_1=\{26 ; 13 ; 5 ; 32\}, M_2=\{4 ; 5 ; 32 ; 35\}$ und $M_3=\{4 ; 1 ; 8 ; 19 ; 23 ; 5 ; 26\}$. + +Bestimmen Sie die Menge $\left(M_1 \cap M_2\right) \cup M_3$. + + +Man liest die Formel $\left(M_1 \cap M_2\right) \cup M_3$ von links nach rechts und bestimmt zuerst die Schnittmenge der Mengen $M_1$ und $M_2$: + +$$ +M_1 \cap M_2=\{26 ; 13 ; \mathbf{5} ; \mathbf{32}\} \cap\{4 ; \mathbf{5} ; \mathbf{32} ; 35\}=\{5 ; 32\} +$$ + +Nun vereinigt man die eben bestimmte Menge $M_1 \cap M_2$ mit der Menge $M_3=\{4 ; 1 ; 8 ; 19 ; 23 ; 5 ; 26\}$, um die gesuchte Menge zu erhalten: + +$$ +\left(M_1 \cap M_2\right) \cup M_3=\{\mathbf{5} ; \mathbf{32}\} \cup\{\mathbf{4} ; \mathbf{1} ; \mathbf{8} ; \mathbf{19} ; \mathbf{23} ; 5 ; \mathbf{26}\}=\{1 ; 4 ; 5 ; 8 ; 19 ; 23 ; 26 ; 32\} +$$ + +\paragraph{2.}\mbox{}\\ +Bestimmen Sie die Schnittmenge der Menge $M=\{8 ; 11 ; 14 ; 17 ; 20 ; \ldots\}$ und der Menge der ungeraden natürlichen Zahlen. + + +Man betrachtet zuerst die Menge $M$ . Sie enthält unendlich viele Zahlen, von denen die ersten fünf in aufzählender Mengenschreibweise angegeben sind. Da sich zwei aufeinanderfolgende Elemente immer um 3 unterscheiden, liegt ein Bildungsgesetz vor, mit dessen Hilfe man weitere Elemente der Menge M angeben kann. +$$ +M=\{8 ; \textcolor{red}{11} ; 14 ; \textcolor{red}{17} ; 20 ; \textcolor{red}{23} ; 26 ; \textcolor{red}{29} ; 32 ; \textcolor{red}{35}; \ldots\} +$$ + +Die Menge $\mathbb{N}=\{1 ; 2 ; 3 ; 4 ; \ldots\}$ der natürlichen Zahlen ist bekannt. +Die Menge der ungeraden natürlichen Zahlen besteht aus allen natürlichen Zahlen, die sich nicht durch 2 teilen lassen. +$$ +\text { \{ungerade natürliche Zahlen }\}=\{1 ; 3 ; 5 ; 7 ; 9 ; \textcolor{red}{11} ; 13 ; 15 ; \textcolor{red}{17} ; 19 ; \ldots\} +$$ + +Schließlich schneidet man die Menge M mit den ungeraden natürlichen Zahlen, d.h. man bestimmt alle Zahlen in M, die ungerade sind. Da diese Schnittmenge wieder unendlich groß ist, genügt es, die ersten Elemente in aufzählender Mengenschreibweise anzugeben. +$$ +M \cap\{\text { ungerade natürliche Zahlen }\}=\{11 ; 17 ; 23 ; 29 ; 35 ; \ldots\} +$$ + +\paragraph{3.}\mbox{}\\ +Schreiben Sie den folgenden Ausdruck als ein einziges Intervall. +$$ +(-\infty,-2) \cap[-6,7] +$$ + +Dieses Intervall stellt den Durchschnitt von zwei Intervallen dar. +Anstelle des Symbols $\cap$ kann das Verbindungswort 'und' benutzt werden. +Damit besteht der Durchschnitt aus allen Punkten, die in $(-\infty,-2)$ und auch in $[-6,7]$ liegen. +Es gibt keine Lücke zwischen diesen zwei Intervallen. +Das Intervall, das den Durchschnitt der gegebenen Intervalle bildet, hat zwei Endpunkte. +Sie sind -2 und -6 . +Das einzige Intervall, das $(-\infty,-2) \cap[-6,7]$ darstellt, ist $[-6,-2)$. + +\paragraph{4.}\mbox{}\\ +Schreiben Sie den folgenden Ausdruck als ein einziges Intervall. +$$ +(-\infty, 6) \cup[6,10) +$$ + +Dieses Intervall stellt die Vereinigung von zwei Intervallen dar. +Anstelle des Symbols $\cup$ kann das Verbindungswort 'oder' verwendet werden. +Damit besteht die Vereinigung aus allen Punkten, die in $(-\infty, 6)$ oder in $[6,10)$ liegen. +Es gibt keine Lücke zwischen diesen zwei Intervallen. + +Das Intervall, dass die Vereinigung der gegebenen Intervalle beschreibt, hat einen Endpunkt. Es ist $10$. + +Das einzelne Intervall, das $(-\infty, 6) \cup[6,10)$ darstellt, ist $(-\infty, 10)$. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpage + +\textbf{Schreiben} Sie den folgenden Ausdruck als ein einziges Intervall. +$$ +(-\infty, 6) \cup[6,10) +$$ + +Dieses Intervall stellt die Vereinigung von zwei Intervallen dar. +Anstelle des Symbols $\cup$ kann das Verbindungswort 'oder' verwendet werden. + +Damit besteht die Vereinigung aus allen Punkten, die in $(-\infty, 6)$ oder in $[6,10)$ liegen. + +Es gibt keine Lücke zwischen diesen zwei Intervallen. Das Intervall, dass die Vereinigung der gegebenen Intervalle beschreibt, hat einen Endpunkt. Es ist $10$ . + +Das einzelne Intervall, das $(-\infty, 6) \cup[6,10)$ darstellt, ist $(-\infty, 10)$. + +%\begin{figure}[h] +% \centering +%\begin{tikzpicture} +% \begin{axis}[ + % hide axis, + % xmin=-10, xmax=12, + % ymin=-1, ymax=1, + % width=15cm, + % height=3cm, + % axis x line=middle, + % xtick=\empty, + % ytick=\empty, + % enlargelimits + % ] + % % Das Intervall (-∞, 6) + % \addplot[domain=-10:5.9, samples=2, thick, blue] {0}; + % + % % Das Intervall [6, 10) + % \addplot[domain=6:9.9, samples=2, thick, red] {0}; + % + % % Offene Kreise bei x=6 und x=10 + % \node[draw, fill=white, circle, inner sep=1.5pt] at (axis cs: 6, 0) {}; + % \node[draw, circle, inner sep=1.5pt] at (axis cs: 10, 0) {}; + % + % % Punkt x=6 als geschlossener Kreis + % \node[fill, circle, inner sep=1.5pt] at (axis cs: 6, 0) {}; + % + % % Beschriftungen + % \node[below] at (axis cs: 0, 0) {0} + % \node[below] at (axis cs: 6, 0) {6}; + % \node[below] at (axis cs: 10, 0) {10}; + % + % % Pfeile am Ende des Intervalls + % \draw[thick,-latex] (axis cs: -10,0) -- (axis cs: -10.5,0); + % \draw[thick,-latex] (axis cs: 10,0) -- (axis cs: 10.5,0); + % \end{axis} +%\end{tikzpicture} +% %\caption{Caption} +% %\label{fig:enter-label} +%\end{figure} + + + + +\newpage + +3333 + +Schreiben Sie den folgenden Ausdruck als ein einziges Intervall. +$$ +(-\infty,-2) \cap[-6,7] +$$ + +Dieses Intervall stellt den Durchschnitt von zwei Intervallen dar. +Anstelle des Symbols $\cap$ kann das Verbindungswort 'und' benutzt werden. +Damit besteht der Durchschnitt aus allen Punkten, die in $(-\infty,-2)$ und auch in $[-6,7]$ liegen. Es gibt keine Luecke zwischen diesen zwei Intervallen. + +Das Intervall, das den Durchschnitt der gegebenen Intervalle bildet, hat zwei Endpunkte. +Sie sind -2 und -6 . +Das einzige Intervall, das $(-\infty,-2) \cap[-6,7]$ darstellt, ist $[-6,-2)$. + + + + +44444 + +Schreiben Sie den folgenden Ausdruck als ein einziges Intervall. +$$ +(-\infty,-2) \cap[-6,7] +$$ + +Dieses Intervall stellt den Durchschnitt von zwei Intervallen dar. +Anstelle des Symbols $\cap$ kann das Verbindungswort 'und' benutzt werden. +Damit besteht der Durchschnitt aus allen Punkten, die in $(-\infty,-2)$ und auch in $[-6,7]$ liegen. +Es gibt keine Luecke zwischen diesen zwei Intervallen. +Das Intervall, das den Durchschnitt der gegebenen Intervalle bildet, hat zwei Endpunkte. +Sie sind -2 und -6 . +Das einzige Intervall, das $(-\infty,-2) \cap[-6,7]$ darstellt, ist $[-6,-2)$. + + +55555 + + +Schreiben Sie den folgenden Ausdruck als ein einziges Intervall. +$$ +(-\infty, 6) \cup[6,10) +$$ + +Dieses Intervall stellt die Vereinigung von zwei Intervallen dar. +Anstelle des Symbols U kann das Verbindungswort 'oder' verwendet werden. +Damit besteht die Vereinigung aus allen Punkten, die in $(-\infty, 6)$ oder in $[6,10)$ liegen. Es gibt keine Luecke zwischen diesen zwei Intervallen. + +Das Intervall, dass die Vereinigung der gegebenen Intervalle beschreibt, hat einen Endpunkt. Es ist 10 . + +Das einzelne Intervall, das $(-\infty, 6) \cup[6,10)$ darstellt, ist $(-\infty, 10)$. + + +6666666 + + +Sei $\Omega=\{a, b, c, d, e, f, g, h, i, j, k\}$ +$$ +\begin{aligned} + & X=\{a, d, e, h, i, k\} \\ + & Y=\{a, c, f, h, i\} \\ + & Z=\{a, d, e, i, k\} +\end{aligned} +$$ + +Bestimmen Sie $\mathrm{X} \cup(\mathrm{Z} \cap \mathrm{Y})^{\prime}$. + +Um $\mathrm{X} \cup(\mathrm{Z} \cap \mathrm{Y})^{\prime}$ zu bestimmen, bestimmen Sie zuerst den Ausdruck innerhalb der Klammern. +Bestimmen Sie $Z \cap Y$. +Der Durchschnitt besteht aus allen Elementen, die in beiden Mengen $Z$ und $Y$ sind. +Die Elemente 'a' und 'i' sind in der Menge $\mathrm{Z}$ und auch in der Menge $\mathrm{Y}$. +Somit sind sie in $\mathrm{Z} \cap \mathrm{Y}$. +$$ +Z \cap Y=\{a, i\} +$$ + +Bestimmen Sie jetzt das Komplement von $\mathrm{Z} \cap \mathrm{Y}$, symbolisiert durch $(\mathrm{Z} \cap \mathrm{Y})^{\prime}$. +Diese Menge enthaelt alle Elemente aus $\boldsymbol{\Omega}$ die nicht $\mathbf{z u}\{\mathrm{a}, \mathrm{i}\}$ gehoeren. +Die Menge $\{k, j, h, g, f, e, b, c, d\}$ repraesentiert $(Z \cap Y)$ '. +Finden Sie jetzt die Vereinigung der Mengen $X$ und $\{k, j, h, g, f, e, b, c, d\}$. +Mit anderen Worten: Fuegen Sie zu der Liste der Elemente in $\{k, j, h, g, f, e, b, c, d\}$ diejenigen Elemente hinzu, die Sie noch nicht benannt haben und die in $X$ enthalten sind. Zum Beispiel ist, 'i' in der Menge $\mathrm{X}$, aber nicht in $(\mathrm{Z} \cap \mathrm{Y})$ '. +$$ +X \cup(Z \cap Y)^{\prime}=\{e, f, h, g, i, k, j, b, c, d, a\} \text {. } +$$ + +Dies ist die Menge $\Omega$. + + +8888888888 +Bestimmen Sie die Menge $\left(A^{\prime} \cup B^{\prime}\right) \cap C$, wenn folgendes gegeben ist. +$$ +\begin{aligned} + & \Omega=\{x \mid x \in \mathbb{N} \text { und } x<13\} \\ + & A=\{x \mid x \in \mathbb{N} \text { und } x \text { ist ungerade und } x<13\} \\ + & B=\{x \mid x \in \mathbb{N} \text { und } x \text { ist gerade und } x<13\} \\ + & C=\{x \mid x \in \mathbb{N} \text { und } x<8\} +\end{aligned} +$$ + +Um $\left(A^{\prime} \cup B^{\prime}\right) \cap C$ zu bestimmen, beginnen Sie damit die Menge innerhalb der Klammern, $\left(A^{\prime} \cup B^{\prime}\right)$, zu finden. +Zuerst muessen Sie A' bestimmen, das Komplement von A, das alle Elemente aus $\Omega$ enthaelt, die nicht in $\mathrm{A}$ sind. +$$ +A^{\prime}=\{2,4,6,8,10,12\} +$$ + +Als Naechstes muessen Sie $\mathrm{B}^{\prime}$ bestimmen, das Komplement von $\mathrm{B}$, das alle Elemente aus $\Omega$ enthaelt, die nicht in $\mathrm{B}$ sind. +$$ +B^{\prime}=\{1,3,5,7,9,11\} +$$ + +Identifizieren Sie jetzt die Elemente der Menge $\left(A^{\prime} \cup B^{\prime}\right.$ ) indem Sie alle Elemente in der Menge $A^{\prime}$ auflisten und dann die Elemente in der Menge $B^{\prime}$ hinzufuegen. +$$ +\begin{aligned} + \left(A^{\prime} \cup B^{\prime}\right) & =\{2,4,6,8,10,12\} \cup\{1,3,5,7,9,11\} \\ + & =\{1,2,3,4,5,6,7,8,9,10,11,12\} +\end{aligned} +$$ + +Beenden Sie jetzt das Problem, indem Sie $\left(A^{\prime} \cup B^{\prime}\right) \cap C$ bestimmen. +Der Durchschnitt ist diejenige Menge, die alle Elemente enthaelt, die den beiden Mengen $A^{\prime} \cup B^{\prime}$ und $C^{\prime}$ gemeinsam sind. +$$ +\begin{aligned} + \left(A^{\prime} \cup B^{\prime}\right) \cap C= & \{1,2,3,4,5,6,7,8,9,10,11,12\} \cap\{1,2,3,4,5,6,7\} \\ + & =\{1,2,3,4,5,6,7\} +\end{aligned} +$$ + + +999999999999 + +Bestimmen Sie die Menge $\left(A^{\prime} \cup B^{\prime}\right) \cap C$, wenn folgendes gegeben ist. +$$ +\begin{aligned} + & \Omega=\{x \mid x \in \mathbb{N} \text { und } x<13\} \\ + & A=\{x \mid x \in \mathbb{N} \text { und } x \text { ist ungerade und } x<13\} \\ + & B=\{x \mid x \in \mathbb{N} \text { und } x \text { ist gerade und } x<13\} \\ + & C=\{x \mid x \in \mathbb{N} \text { und } x<8\} +\end{aligned} +$$ + +Um $\left(A^{\prime} \cup B^{\prime}\right) \cap C$ zu bestimmen, beginnen Sie damit die Menge innerhalb der Klammern, ( $\left.A^{\prime} \cup B^{\prime}\right)$, zu finden. +Zuerst muessen Sie A' bestimmen, das Komplement von A, das alle Elemente aus $\Omega$ enthaelt, die nicht in A sind. +$$ +A^{\prime}=\{2,4,6,8,10,12\} +$$ + +Als Naechstes muessen Sie B' bestimmen, das Komplement von B, das alle Elemente aus $\Omega$ enthaelt, die nicht in B sind. +$$ +B^{\prime}=\{1,3,5,7,9,11\} +$$ + +Identifizieren Sie jetzt die Elemente der Menge ( $\mathrm{A}^{\prime} \cup \mathrm{B}^{\prime}$ ) indem Sie alle Elemente in der Menge $\mathrm{A}^{\prime}$ auflisten und dann die Elemente in der Menge $\mathrm{B}^{\prime}$ hinzufuegen. +$$ +\begin{aligned} + \left(A^{\prime} \cup B^{\prime}\right) & =\{2,4,6,8,10,12\} \cup\{1,3,5,7,9,11\} \\ + & =\{1,2,3,4,5,6,7,8,9,10,11,12\} +\end{aligned} +$$ + +Beenden Sie jetzt das Problem, indem Sie ( $\mathrm{A}^{\prime} \cup \mathrm{B}^{\prime}$ ) $\cap \mathrm{C}$ bestimmen. +Der Durchschnitt ist diejenige Menge, die alle Elemente enthaelt, die den beiden Mengen $\mathrm{A}^{\prime} \cup \mathrm{B}^{\prime}$ und $\mathrm{C}^{\prime}$ gemeinsam sind. +$$ +\begin{aligned} + \left(A^{\prime} \cup B^{\prime}\right) \cap C & =\{1,2,3,4,5,6,7,8,9,10,11,12\} \cap\{1,2,3,4,5,6,7\} \\ + & =\{1,2,3,4,5,6,7\} +\end{aligned} +$$ + +1010101010101010 + +Von den Achtklaesslern der Paxton-Schule spielten 16 Basketball, 9 Volleyball, 10 Fussball, 1 spielte nur Basketball und Fussball, 2 spielten nur Volleyball und Fussball, 1 spielte nur Basketball und Volleyball und 2 spielten Volleyball, Basketball und Fussball. + +Wieviele spielten eine oder mehrere der drei Sportarten? + +Zeichnen Sie ein leeres Diagramm, markieren Sie einen Kreis mit $B$ für Basketball, einen mit $F$ für Fussball und einen mit $V$ für Volleyball. +\begin{figure}[h] + \centering + \includegraphics[width=0.5\linewidth]{10_1.png} + %\caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + +\newpage + +Tragen Sie als erstes die Anzahl der Schueler in den Durchschnitt aller drei Kreise ein, die alle drei Sportarten betreiben. $2$ spielten alle drei Sportarten. + + +\begin{figure}[h] + \centering + \includegraphics[width=0.5\linewidth]{10_2.png} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + +\newpage + +Tragen Sie jetzt ein, wie viele Spieler zwei Sportarten betreiben. In der Aufgabe war gegeben, dass 2 nur Volleyball und Fussball spielen. +Diese Zahl muss in den Bereich geschrieben werden, der der Durchschnitt von V und F ist, aber nicht die 2 schon frueher Erwaehnten enthaelt. +Der Grund ist: Die Aufgabe spricht hier nur von Volleyball und Fussball, d.h. Basketball ist ausgeschlossen + +\begin{figure}[h] + \centering + \includegraphics[width=0.5\linewidth]{10_3.png} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + +Machen Sie dasselbe fuer die anderen Sportarten. 1 spielt nur Basketball und Fussball. +1 spielt nur Basketball und Volleyball. +Diese Werte muessen im Diagramm platziert werden + +\begin{figure}[h] + \centering + \includegraphics[width=0.5\linewidth]{10_4.png} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + +\newpage + +Die Aufgabe sagt, dass zehn Fussball spielen. +Es gibt bereits 5 in dem Fussball-Kreis. +Deshalb muss eine 5 dort in den Kreis mit F geschrieben werden, wo keine anderen Werte sind. + + +\begin{figure}[h] + \centering + \includegraphics[width=0.5\linewidth]{10_5.png} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + +Neun spielen Volleyball. 5 sind bereits im Diagramm. +Es bleiben 4 uebrig. +Eine 4 ist in dem Bereich platziert worden, der Nur-Volleyball repraesentiert. + + +\begin{figure}[h] + \centering + \includegraphics[width=0.5\linewidth]{10_6.png} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + + +Die Aufgabe besagt, dass 16 Basketball spielen. +Es sind bereits 4 Basketballspieler eingetragen. +Somit bleiben 16 - 4 oder 12 uebrig, die nur Basketball spielen. + +\newpage + +\begin{figure}[h] + \centering + \includegraphics[width=0.5\linewidth]{10_7..png} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + +Um zu bestimmen, wie viele der Achtklaessler eine oder mehrere der drei Sportarten spielen, addieren Sie alle Eintraege aus dem Diagramm. +Es sind insgesamt 27 Spieler. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\textbf{Frage 10} + +Sei $\Omega=\{0,1,2,3,4,5, \ldots\}, A=\{1,2,3,4, \ldots\}$ und $B=\{6,12,18,24, \ldots\}$. +Bestimmen Sie die Menge $\mathbf{A} \cup \mathbf{B}$. + +Die Vereinigung der Menge A und der Menge B, symbolisiert durch $\mathbf{A} \cup \mathbf{B}$, ist die Menge, die alle Elemente enthaelt, die Mitglieder von der Menge $\mathbf{A}$ oder der Menge $B$ (oder von beiden Mengen) sind. + +Beachten Sie , dass alle Mengen unendliche Mengen sind. +Die Menge A ist die Menge aller positiven ganzen Zahlen und die Menge B ist die Menge alle positiven ganzen Zahlen, die Vielfaches von 6 sind. +Da jedes positive ganzzahlige Vielfache von 6 auch eine positive ganze Zahl ist, ist jedes Element aus B auch ein Element aus der Menge A. +Daher ist die Vereinigung $\mathbf{A} \cup \mathbf{B}$ dasselbe wie die Menge $\mathbf{A}$, da alle Elemente aus $\mathbf{B}$ auch in der Menge $\mathbf{A}$ enthalten sind. +Daher ist $A \cup B=\{1,2,3,4, \ldots\}$. + +\begin{figure} + \centering + \includegraphics[width=0.5\linewidth]{Frage10_Vorlage.pdf} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\textbf{Frage 11} + +\begin{figure} + \centering + \includegraphics[width=0.5\linewidth]{Frage11.png} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + + +Nutzen Sie Venn-Diagramme, um zu bestimmen, ob die folgenden Mengen gleich sind fuer alle Mengen $A, B$ und $C$. +$A \cap(B \cup C)$ +$(A \cap B) \cup C^{\prime}$ + +Wenn Sie das Venn-Diagramm auf der rechten Seite als Referenz verwenden, so besteht die Menge $A \cap(B \cup C)$ aus den Regionen II, IV, V. +Wenn Sie das Venn-Diagramm auf der rechten Seite als Referenz verwenden, so besteht die Menge (A $\cap$ B) $\cup \mathrm{C}^{\prime}$ aus den Regionen I, II, III, V, VIII. +Daher sind die folgenden Mengen nicht fuer alle Mengen $\mathrm{A}, \mathrm{B}$ und C gleich. +$A \cap(B \cup C)$ +$(A \cap B) \cup C^{\prime}$ + + +\begin{figure} + \centering + \includegraphics[width=0.5\linewidth]{Frage12_Vorlage.pdf} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + + + +\textbf{Frage 13} + + +Verwenden Sie die Symbole A, B, $\cup, \cap$ und ', wenn noetig, um die schattierte Region zu beschreiben. + +Dieses Venn-Diagramm hat 4 verschiedene Regionen, die wie rechts bezeichnet sind. +Um eine Mengenbeschreibung fuer das gegebene Diagramm zu entwickeln, bestimmen Sie zunaechst, welche Regionen schattiert sind + +In dem gegebenen Venn-Diagramm ist Region 1 schattiert. + +Die Menge $A \cap B^{\prime}$ fuehrt zur Schattierung der Region 1, was die gegebene Abbildung produziert. +\begin{figure} + \centering + \includegraphics[width=0.5\linewidth]{Frage13_Vorlage.pdf} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\textbf{Frage 14} + + +Verwenden Sie die Symbole A, B, U, $\cap$ und ', wenn noetig, um die schattierte Region zu beschreiben. + +verschiedene Regionen, die wie rechts bezeichnet sind. +Um eine Mengenbeschreibung fuer das gegebene Diagramm zu entwickeln, bestimmen Sie zunaechst, welche Regionen schattiert sind. + +In dem gegebenen Venn-Diagramm sind die Regionen 2,3,4,5,6 schattiert. + +Daher fuehrt die Menge $(A \cap C) \cup B$ zur Schattierung der Regionen 2,3,4,5,6, die das gegebene Bild produziert. +\begin{figure} + \centering + \includegraphics[width=0.5\linewidth]{Frage14_Vorlage.pdf} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + +\begin{figure} + \centering + \includegraphics[width=1\linewidth]{Aufgabe15_Vorlage.pdf} + \caption{Enter Caption} + \label{fig:enter-label} +\end{figure} + +\textbf{Frage 15} +Ein Personalbuero moechte die Beschaeftigten nach Geschlecht, Alter und Ausbildung klassifizieren. +Menge $A=$ maennlich +Menge $B=$ sind aelter als 45 Jahre +Menge $C=$ haben ein MBA + + +Bestimmen Sie die Region des Diagramms, die die maennlichen Beschaeftigten enthaelt, die aelter sind als 45 Jahre und ein MBA haben. Beschreiben Sie die Region, indem Sie die Mengen $A$, $B$ und $C$ mit den Operationen Vereinigung, Durchschnitt und Komplement verwenden. Lokalisieren Sie auch die Region im Diagramm. + +Entscheiden Sie, wo jede Beschreibung der Beschaeftigten im \textbf{Venn-Diagramm} zu finden ist. +Die maennlichen Beschaeftigten gehoeren zur Menge $A$. +Beschaeftigte, die aelter sind als 45 Jahre, gehoeren zur Menge $B$. +Beschaeftigte, die ein MBA haben, gehoeren zur Menge $C$. +Daher gehoeren die maennlichen Beschaeftigten, die aelter sind als 45 Jahre und die ein MBA haben, $A \cap B \cap C$. +Die Regionen I, II, IV und V sind in $A$ enthalten. + +Region V repraesentiert den Durchschnitt aller oben aufgelisteten Regionen. $A\cap B \cap C$ ist in Region V platziert. \ No newline at end of file diff --git a/plot06a.py b/plot06a.py new file mode 100644 index 0000000..fc8a3b0 --- /dev/null +++ b/plot06a.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +#from __future__ import unicode_literals +#import matplotlib.pyplot as plt +#from sympy import symbols, sqrt +#from sympy.plotting import plot + +#http://www.scipy-lectures.org/intro/matplotlib/matplotlib.html + +import numpy as np +import matplotlib.pyplot as plt +#x,y = symbols('x,y') +#y = sqrt(64-x**2) + +#title="$y=\sqrt{64-x^2}$" +#graph = plot((y),(x,-10,10),(y,-1,12),ylabel='$y$',xlabel="$y=\sqrt{64-x^2}$", show=True) + +plt.rc('text', usetex=True) +plt.rc('font', family='serif') + +X = np.linspace(-8, 8, 512, endpoint=True) + +C, S = np.cos(X), np.sin(X) + +Y=np.sqrt(64-X**2) + +#plt.plot(X, C) + +#plt.figure(figsize=(5, 5), dpi=600) +plt.ylim(Y.min() * 1.1, Y.max() * 1.1) +plt.xlim(X.min() * 1.1, X.max() * 1.1) + +ax = plt.gca() # gca stands for 'get current axis' +ax.spines['right'].set_color('none') +ax.spines['top'].set_color('none') +ax.xaxis.set_ticks_position('bottom') +ax.spines['bottom'].set_position(('data',0)) +ax.yaxis.set_ticks_position('left') +ax.spines['left'].set_position(('data',0)) + +#x +plt.arrow(8.5, -0.003, 0.1, 0, head_width=0.1, head_length=0.25,clip_on=False) #width=0.015, color="k", clip_on=False, head_width=0.12, head_length=0.22) + +#y +plt.arrow(0.0, 8.7, 0, 0.1, clip_on=False, head_width=0.1, head_length=0.25) + + +plt.yticks([2,4,6,8]) +plt.xticks([-8,-6,-4,-2,0,2,4,6,8])#),rotation='vertical') + +plt.margins(0.2) + + +plt.plot(X, Y, color="slateblue") + +plt.title(r"$\displaystyle y=\sqrt{64-x^2}$" ,fontsize=12, color='slateblue',y=0.15,x=0.3) + +#plt.show() +#graph.save('plot06a.png') + +plt.savefig('plot06a.pdf', dpi=600) diff --git a/plot07a.py b/plot07a.py new file mode 100644 index 0000000..c850b97 --- /dev/null +++ b/plot07a.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +#from __future__ import unicode_literals +#import matplotlib.pyplot as plt +#from sympy import symbols, sqrt +#from sympy.plotting import plot + +#http://www.scipy-lectures.org/intro/matplotlib/matplotlib.html + +import numpy as np +import matplotlib.pyplot as plt + +plt.rc('text', usetex=True) +plt.rc('font', family='serif') + +x = np.linspace(-10, 30, 400, endpoint=True) + + +def f(x): + with np.errstate(divide='ignore', invalid='ignore'): + return np.divide(7,(9-x)) + +y=f(x) + +#plt.plot(X, C) + +plt.figure(figsize=(9, 6), dpi=600) +plt.ylim(-25, 25) +# plt.xlim(x.min() * 1.1, x.max() * 1.1) +# +ax = plt.gca() # gca stands for 'get current axis' +ax.spines['right'].set_color('none') +ax.spines['top'].set_color('none') +ax.xaxis.set_ticks_position('bottom') +ax.spines['bottom'].set_position(('data',0)) +ax.yaxis.set_ticks_position('left') +ax.spines['left'].set_position(('data',0)) +# +# #x +# plt.arrow(8.5, -0.003, 0.1, 0, head_width=0.1, head_length=0.25,clip_on=False) #width=0.015, color="k", clip_on=False, head_width=0.12, head_length=0.22) +# +# #y +# plt.arrow(0.0, 8.7, 0, 0.1, clip_on=False, head_width=0.1, head_length=0.25) +# +# +plt.yticks([2,4,6,8]) +plt.xticks([-10,-8,-6,-4,-2,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30])#),rotation='vertical') +# +# plt.margins(0.2) +# +# +plt.plot(x, y, color="slateblue") +# +# plt.title(r"$\displaystyle y=f\left(t\right)=\frac{7}{9-t}$" ,fontsize=12, color='slateblue',y=0.15,x=0.3) + +plt.savefig('plot07a.pdf', dpi=600) +#plt.show() +#graph.save('plot06a.png') + + diff --git a/uebungenlimit01.tex b/uebungenlimit01.tex new file mode 100644 index 0000000..72f8730 --- /dev/null +++ b/uebungenlimit01.tex @@ -0,0 +1,53 @@ +%!TEX root=main.tex +\newpage + +\section{Übungsaufgaben Grenzwerte} + +\subsection{Bestimme, wie sich die Funktion $f$ im Unendlichen verhält} + + +\subsubsection{Aufgabe 1} + +\begin{description} + +\item[Verhalten gegen $+{\infty}$ ] \marginpar{Es wird nur die höchste Potenz betrachtet}$\mathop {\lim }\limits_{x \to +\infty }x^4-x^3=\mathop {\lim }\limits_{x \to +\infty }x^4=\left(+\infty\right)^4={\infty}$ + +\item[Verhalten gegen $-{\infty}$] $\mathop {\lim }\limits_{x \to -\infty }x^4-x^3=\mathop {\lim }\limits_{x \to -\infty }x^4=\left(-\infty\right)^4={\infty}$ + +\end{description} + + +\subsubsection{Aufgabe 2} +%http://mathenexus.zum.de/html/analysis/grenzwerte/Grenzwertplusminusunend_Ueb.htm +\begin{description} +\item[Verhalten gegen $+{\infty}$ ] $\rightarrow $ für $x>0$ \newline\newline +$f ( x ) = \frac { 1 } { x } \cdot \sqrt { x ^ { 2 } + 1 } = \mathop {\lim }\limits_{x \to \infty}\frac { 1 } { x } \cdot \sqrt { x ^ { 2 } + 1 }=\mathop {\lim }\limits_{x \to \infty}$ + +\item[Verhalten gegen $-{\infty}$ ] +$f ( x ) = \frac { 1 } { x } \cdot \sqrt { x ^ { 2 } + 1 }$ + +\end{description} + +\paragraph{Grenzwerte in der Unendlichkeit mit Quadratwurzeln} + +Da sich obige Aufgabe im negativ Unendlichen nicht so recht erklärt hat hier noch ein paar Ausführungen dazu: + +\begin{itemize} +\item Wenn $ x $ positiv ist $ x=\sqrt{x^2} $ zum Beispiel, wenn $ x=3 $, dann $ x=3=\sqrt{9} $ + +\item Wenn $ x $ negativ ist $ x=-\sqrt{x^2} $ dem gegenüber ist also wenn $ x=-3 $ dann $ x=-3=-\sqrt{9} $ +\end{itemize} + + + + + + +\textbf{Wichtig}: Man muss sich merken, das wenn $x=-\sqrt{x^2}$ wenn $x \rightarrow -\infty$ ist, muss man automatisch auf die negativen Werte von $x$ schauen muss. + +\textbf{Beispiel 1}: $\mathop {\lim }\limits_{x \to \infty} \frac { \sqrt { 5 x ^ { 2 } + 2 x } } { x }$ +Da man hier $x \rightarrow \infty$ untersucht, sind nur positive Werte von $x$ interessant und man nutzt $x=\sqrt{x^2}$. + +$\lim _ { x \rightarrow \infty } \frac { \sqrt { 5 x ^ { 2 } + 2 } x } { x } = \lim _ { x \rightarrow \infty } \frac { \frac { \sqrt { 5 x ^ { 2 } + 2 } x } { \sqrt { x ^ { 2 } } } } { \frac { x } { x } } = \lim _ { x \rightarrow \infty } \frac { \sqrt { \frac { 5 x ^ { 2 } + 2 } { x ^ { 2 } } } } { 1 } = \lim _ { x \rightarrow \infty } \sqrt { 5 + \frac { 2 } { x } } = \lim _ { x \rightarrow \infty } \sqrt { 5 + 0 }=5$ + +\textbf{Beispiel 2}: $\mathop {\lim }\limits_{x \to \infty} \frac { \sqrt { 5 x ^ { 2 } + 2 x } } { x }$ \ No newline at end of file