📄 fglulookat.ps
字号:
%!PS-Adobe-1.0%%Creator: splat:n8 (Nate Robins,,,,,,,<engr>)%%Title: stdin (ditroff)%%CreationDate: Tue Jul 22 19:19:47 1997%%EndComments% Start of psdit.pro -- prolog for ditroff translator% Copyright (c) 1985,1987 Adobe Systems Incorporated. All Rights Reserved. % GOVERNMENT END USERS: See Notice file in TranScript library directory% -- probably /usr/lib/ps/Notice% $Revision: 1.2 $/$DITroff 140 dict def $DITroff begin/fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def/xi {0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F /pagesave save def}def/PB{save /psv exch def currentpoint translate resolution 72 div dup neg scale 0 0 moveto}def/PE{psv restore}def/m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def/tan{dup sin exch cos div}bind def/point{resolution 72 div mul}bind def/dround {transform round exch round exch itransform}bind def/xT{/devname exch def}def/xr{/mh exch def /my exch def /resolution exch def}def/xp{}def/xs{docsave restore end}def/xt{}def/xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not {fonts slotno fontname findfont put fontnames slotno fontname put}if}def/xH{/fontheight exch def F}bind def/xS{/fontslant exch def F}bind def/s{/fontsize exch def /fontheight fontsize def F}bind def/f{/fontnum exch def F}bind def/F{fontheight 0 le {/fontheight fontsize def}if fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if makefont setfont .04 fontsize point mul 0 dround pop setlinewidth}bind def/X{exch currentpoint exch pop moveto show}bind def/N{3 1 roll moveto show}bind def/Y{exch currentpoint pop exch moveto show}bind def/S /show load def/ditpush{}def/ditpop{}def/AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}bind def/AN{4 2 roll moveto 0 exch ashow}bind def/AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}bind def/AS{0 exch ashow}bind def/MX{currentpoint exch pop moveto}bind def/MY{currentpoint pop exch moveto}bind def/MXY /moveto load def/cb{pop}def % action on unknown char -- nothing for now/n{}def/w{}def/p{pop showpage pagesave restore /pagesave save def}def/abspoint{currentpoint exch pop add exch currentpoint pop add exch}def/dstroke{currentpoint stroke moveto}bind def/Dl{2 copy gsave rlineto stroke grestore rmoveto}bind def/arcellipse{oldmat currentmatrix pop currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def rad 0 rad -180 180 arc oldmat setmatrix}def/Dc{gsave dup /diamv exch def /diamh exch def arcellipse dstroke grestore diamh 0 rmoveto}def/De{gsave /diamv exch def /diamh exch def arcellipse dstroke grestore diamh 0 rmoveto}def/Da{currentpoint /by exch def /bx exch def /fy exch def /fx exch def /cy exch def /cx exch def /rad cx cx mul cy cy mul add sqrt def /ang1 cy neg cx neg atan def /ang2 fy fx atan def cx bx add cy by add 2 copy rad ang1 ang2 arcn stroke exch fx add exch fy add moveto}def/Barray 200 array def % 200 values in a wiggle/D~{mark}def/D~~{counttomark Barray exch 0 exch getinterval astore /Bcontrol exch def pop /Blen Bcontrol length def Blen 4 ge Blen 2 mod 0 eq and {Bcontrol 0 get Bcontrol 1 get abspoint /Ycont exch def /Xcont exch def Bcontrol 0 2 copy get 2 mul put Bcontrol 1 2 copy get 2 mul put Bcontrol Blen 2 sub 2 copy get 2 mul put Bcontrol Blen 1 sub 2 copy get 2 mul put /Ybi /Xbi currentpoint 3 1 roll def def 0 2 Blen 4 sub {/i exch def Bcontrol i get 3 div Bcontrol i 1 add get 3 div Bcontrol i get 3 mul Bcontrol i 2 add get add 6 div Bcontrol i 1 add get 3 mul Bcontrol i 3 add get add 6 div /Xbi Xcont Bcontrol i 2 add get 2 div add def /Ybi Ycont Bcontrol i 3 add get 2 div add def /Xcont Xcont Bcontrol i 2 add get add def /Ycont Ycont Bcontrol i 3 add get add def Xbi currentpoint pop sub Ybi currentpoint exch pop sub rcurveto }for dstroke}if}defend/ditstart{$DITroff begin /nfonts 60 def % NFONTS makedev/ditroff dependent! /fonts[nfonts{0}repeat]def /fontnames[nfonts{()}repeat]def/docsave save def}def% character outcalls/oc {/pswid exch def /cc exch def /name exch def /ditwid pswid fontsize mul resolution mul 72000 div def /ditsiz fontsize resolution mul 72 div def ocprocs name known{ocprocs name get exec}{name cb} ifelse}def/fractm [.65 0 0 .6 0 0] def/fraction {/fden exch def /fnum exch def gsave /cf currentfont def cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto fnum show rmoveto currentfont cf setfont(\244)show setfont fden show grestore ditwid 0 rmoveto} def/oce {grestore ditwid 0 rmoveto}def/dm {ditsiz mul}def/ocprocs 50 dict def ocprocs begin(14){(1)(4)fraction}def(12){(1)(2)fraction}def(34){(3)(4)fraction}def(13){(1)(3)fraction}def(23){(2)(3)fraction}def(18){(1)(8)fraction}def(38){(3)(8)fraction}def(58){(5)(8)fraction}def(78){(7)(8)fraction}def(sr){gsave .05 dm .16 dm rmoveto(\326)show oce}def(is){gsave 0 .15 dm rmoveto(\362)show oce}def(->){gsave 0 .02 dm rmoveto(\256)show oce}def(<-){gsave 0 .02 dm rmoveto(\254)show oce}def(==){gsave 0 .05 dm rmoveto(\272)show oce}defend% DIThacks fonts for some special chars50 dict dup begin/FontType 3 def/FontName /DIThacks def/FontMatrix [.001 0.0 0.0 .001 0.0 0.0] def/FontBBox [-220 -280 900 900] def% a lie but .../Encoding 256 array def0 1 255{Encoding exch /.notdef put}forEncoding dup 8#040/space put %space dup 8#110/rc put %right ceil dup 8#111/lt put %left top curl dup 8#112/bv put %bold vert dup 8#113/lk put %left mid curl dup 8#114/lb put %left bot curl dup 8#115/rt put %right top curl dup 8#116/rk put %right mid curl dup 8#117/rb put %right bot curl dup 8#120/rf put %right floor dup 8#121/lf put %left floor dup 8#122/lc put %left ceil dup 8#140/sq put %square dup 8#141/bx put %box dup 8#142/ci put %circle dup 8#143/br put %box rule dup 8#144/rn put %root extender dup 8#145/vr put %vertical rule dup 8#146/ob put %outline bullet dup 8#147/bu put %bullet dup 8#150/ru put %rule dup 8#151/ul put %underline pop/DITfd 100 dict def/BuildChar{0 begin /cc exch def /fd exch def /charname fd /Encoding get cc get def /charwid fd /Metrics get charname get def /charproc fd /CharProcs get charname get def charwid 0 fd /FontBBox get aload pop setcachedevice 40 setlinewidth newpath 0 0 moveto gsave charproc grestore end}def/BuildChar load 0 DITfd put%/UniqueID 5 def/CharProcs 50 dict defCharProcs begin/space{}def/.notdef{}def/ru{500 0 rls}def/rn{0 750 moveto 500 0 rls}def/vr{20 800 moveto 0 -770 rls}def/bv{20 800 moveto 0 -1000 rls}def/br{20 770 moveto 0 -1040 rls}def/ul{0 -250 moveto 500 0 rls}def/ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def/bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def/sq{80 0 rmoveto currentpoint dround newpath moveto 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def/bx{80 0 rmoveto currentpoint dround newpath moveto 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def/ci{355 333 rmoveto currentpoint newpath 333 0 360 arc 50 setlinewidth stroke}def/lt{20 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def/lb{20 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def/rt{20 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def/rb{20 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def/lk{20 800 moveto 20 300 -280 300 s4 arcto pop pop 1000 sub currentpoint stroke moveto 20 300 4 2 roll s4 a4p 20 -200 lineto stroke}def/rk{20 800 moveto 20 300 320 300 s4 arcto pop pop 1000 sub currentpoint stroke moveto 20 300 4 2 roll s4 a4p 20 -200 lineto stroke}def/lf{20 800 moveto 0 -1000 rlineto s4 0 rls}def/rf{20 800 moveto 0 -1000 rlineto s4 neg 0 rls}def/lc{20 -200 moveto 0 1000 rlineto s4 0 rls}def/rc{20 -200 moveto 0 1000 rlineto s4 neg 0 rls}defend/Metrics 50 dict def Metrics begin/.notdef 0 def/space 500 def/ru 500 def/br 0 def/lt 250 def/lb 250 def/rt 250 def/rb 250 def/lk 250 def/rk 250 def/rc 250 def/lc 250 def/rf 250 def/lf 250 def/bv 250 def/ob 350 def/bu 350 def/ci 750 def/bx 750 def/sq 750 def/rn 500 def/ul 500 def/vr 0 defendDITfd begin/s2 500 def /s4 250 def /s3 333 def/a4p{arcto pop pop pop pop}def/2cx{2 copy exch}def/rls{rlineto stroke}def/currx{currentpoint pop}def/dround{transform round exch round exch itransform} defendend/DIThacks exch definefont popditstart(psc)xT576 1 1 xr1(Times-Roman)xf 1 f2(Times-Italic)xf 2 f3(Times-Bold)xf 3 f4(Times-BoldItalic)xf 4 f5(Helvetica)xf 5 f6(Helvetica-Bold)xf 6 f7(Courier)xf 7 f8(Courier-Bold)xf 8 f9(Symbol)xf 9 f10(DIThacks)xf 10 f10 s1 fxi%%EndProlog%%Page: 1 110 s 0 xH 0 xS 1 f10 f96(h)Y24(hhh)X4176(h)X4200(hhh)X9 s1 f266 480(F)N268(FG)X310(GL)X364(LU)X410(UL)X464(LO)X510(OO)X564(OK)X618(KA)X672(AT)X726(T)X776(\()X778(\()X814(\))X816(\))X1885(U)X1887(UN)X1941(NI)X1995(IX)X2021(X)X2093(S)X2095(Sy)X2137(ys)X2175(st)X2205(te)X2227(em)X2261(m)X2337(V)X2339(V)X3436(F)X3438(FG)X3480(GL)X3534(LU)X3580(UL)X3634(LO)X3680(OO)X3734(OK)X3788(KA)X3842(AT)X3896(T)X3946(\()X3948(\()X3984(\))X3986(\))X266 864(N)N268(NA)X322(AM)X376(ME)X442(E)X3 f10 s554 960(fgluLookAt)N1 f9 f969(-)X1 f1033(de\256ne)X1249(a)X1305(viewing)X1583(transformation)X9 s266 1190(F)N268(FO)X310(OR)X364(RT)X414(TR)X460(RA)X510(AN)X564(N)X648(S)X650(SP)X692(PE)X734(EC)X780(CI)X830(IF)X856(FI)X898(IC)X924(CA)X974(AT)X1028(TI)X1074(IO)X1100(ON)X1154(N)X10 s554 1286(SUBROUTINE)N3 f1081(fgluLookAt)X1 f1476(\()X1523(REAL*8)X2 f1832(eyeX)X1 f1989(,)X1527 1382(REAL*8)N2 f1836(eyeY)X1 f1988(,)X1527 1478(REAL*8)N2 f1836(eyeZ)X1 f1988(,)X1527 1574(REAL*8)N2 f1836(centerX)X1 f2086(,)X1527 1670(REAL*8)N2 f1836(centerY)X1 f2081(,)X1527 1766(REAL*8)N2 f1836(centerZ)X1 f2081(,)X1527 1862(REAL*8)N2 f1836(upX)X1 f1965(,)X1527 1958(REAL*8)N2 f1836(upY)X1 f1960(,)X1527 2054(REAL*8)N2 f1836(upZ)X1 f1980(\))X554 2246(delim)N756($$)X9 s266 2380(P)N268(PA)X310(AR)X364(RA)X414(AM)X468(ME)X534(ET)X580(TE)X626(ER)X672(RS)X722(S)X2 f10 s554 2476(eyeX)N1 f711(,)X2 f751(eyeY)X1 f903(,)X2 f943(eyeZ)X1 f1095 2572(Speci\256es)N1404(the)X1522(position)X1799(of)X1886(the)X2004(eye)X2136(point.)X2 f554 2706(centerX)N1 f804(,)X2 f844(centerY)X1 f1089(,)X2 f1129(centerZ)X1 f1095 2802(Speci\256es)N1404(the)X1522(position)X1799(of)X1886(the)X2004 0.4531(reference)AX2325(point.)X2 f554 2936(upX)N1 f683(,)X2 f723(upY)X1 f847(,)X2 f887(upZ)X1 f1095(Speci\256es)X1404(the)X1522(direction)X1827(of)X1914(the)X2 f2032(up)X1 f2132(vector.)X9 s266 3070(D)N268(DE)X322(ES)X368(SC)X410(CR)X460(RI)X510(IP)X536(PT)X578(TI)X624(IO)X650(ON)X704(N)X3 f10 s554 3166(fgluLookAt)N1 f972(creates)X1219(a)X1279(viewing)X1561(matrix)X1794(derived)X2059(from)X2239(an)X2339(eye)X2475(point,)X2683(a)X2743 0.4531(reference)AX3068(point)X3256(indicating)X3600(the)X3722(center)X3943(of)X554 3262(the)N672(scene,)X891(and)X1027(an)X2 f1123(UP)X1 f1250(vector.)X554 3396(The)N702(matrix)X934(maps)X1126(the)X1247 0.4531(reference)AX1571(point)X1758(to)X1843(the)X1964(negative)X2 f2259(z)X1 f2314(axis)X2467(and)X2607(the)X2729(eye)X2865(point)X3053(to)X3139(the)X3261(origin.)X3516(When)X3732(a)X3792(typical)X554 3492(projection)N905(matrix)X1140(is)X1219(used,)X1412(the)X1536(center)X1759(of)X1852(the)X1976(scene)X2181(therefore)X2498(maps)X2693(to)X2781(the)X2905(center)X3128(of)X3220(the)X3343(viewport.)X3693(Similarly,)X554 3588(the)N675(direction)X983(described)X1314(by)X1417(the)X2 f1538(UP)X1 f1668(vector)X1892(projected)X2214(onto)X2379(the)X2501(viewing)X2783(plane)X2981(is)X3058(mapped)X3336(to)X3422(the)X3544(positive)X2 f3821(y)X1 f3881(axis)X554 3684(so)N651(that)X797(it)X867(points)X1088(upward)X1355(in)X1443(the)X1567(viewport.)X1918(The)X2 f2069(UP)X1 f2202(vector)X2429(must)X2610(not)X2737(be)X2838(parallel)X3104(to)X3191(the)X3314(line)X3459(of)X3551(sight)X3731(from)X3912(the)X554 3780(eye)N686(point)X870(to)X952(the)X1070 0.4531(reference)AX1391(point.)X554 3914(Let)N554 4106(F)N618(\304=\304)X737(left)X864(\()X931(down)X1129(20)X1229({)X1287(\304)X1334(matrix)X1563({)X614 4202(ccol)N768({"centerX")X1147(above)X1359("centerY")X1700(above)X1912("centerZ"})X614 4298(ccol)N768({)X826(\304-\304)X927(above)X1139(\304-\304)X1240(above)X1452(\304-\304})X614 4394(ccol)N768({"eyeX")X1062(above)X1274("eyeY")X1530(above)X1742("eyeZ"})X2027(})X2085(})X2143(\304\304)X2217(right)X2388(\))X554 4778(Let)N2 f681(UP)X1 f808(be)X904(the)X1022(vector)X1243($\("upX",)X1554("upY",)X1798("upZ"\)$.)X554 4912(Then)N739(normalize)X1080(as)X1167(follows:)X1449(f)X1496(\304=\304)X1615(F)X1679(over)X1842({)X9 f1880(||)X1 f1932(F)X9 f1996(||)X1 f(})S554 5046(UP)N676(sup)X807(prime)X1014(\304=\304)X1133(UP)X1255(over)X1418({)X9 f1456(||)X1 f1508(UP)X9 f1630(||)X1 f(})S554 5276(Finally,)N820(let)X920($s)X1011(\304=\304)X1130(f)X1177(\304times\304)X1424(UP)X1546(sup)X1677(prime$,)X1944(and)X2080($u)X2180(\304=\304)X2299(s)X2350(\304times\304)X2597(f$.)X554 5410(M)N645(is)X718(then)X876(constructed)X1266(as)X1353(follows:)X1655(M)X1746(\304=\304)X1865(left)X1992(\()X2059(matrix)X2288({)X614 5506(ccol)N768({)X826(\304s[0])X998(above)X1210(\304u[0])X1391(above)X1603(-f[0])X1771(above)X1983(0)X2043(})X614 5602(ccol)N768({)X826(\304s[1])X998(above)X1210(\304u[1])X1391(above)X1603(-f[1])X1771(above)X1983(0)X2043(})X614 5698(ccol)N768({)X826(\304s[2])X998(above)X1210(\304u[2])X1391(above)X1603(-f[2])X1771(above)X1983(0)X2043(})X614 5794(ccol)N768({)X826(0)X886(above)X1098(0)X1158(above)X1370(0)X1450(above)X1662(1)X1722(})X1780(})X1838(\304\304right)X2063(\))X266 6144(Page)N442(1)X3577(July)X3730(22,)X3850(1997)X2 p%%Page: 2 210 s 0 xH 0 xS 1 f10 f0 96(h)N24(hhh)X4176(h)X4200(hhh)X9 s1 f266 480(F)N268(FG)X310(GL)X364(LU)X410(UL)X464(LO)X510(OO)X564(OK)X618(KA)X672(AT)X726(T)X776(\()X778(\()X814(\))X816(\))X1885(U)X1887(UN)X1941(NI)X1995(IX)X2021(X)X2093(S)X2095(Sy)X2137(ys)X2175(st)X2205(te)X2227(em)X2261(m)X2337(V)X2339(V)X3436(F)X3438(FG)X3480(GL)X3534(LU)X3580(UL)X3634(LO)X3680(OO)X3734(OK)X3788(KA)X3842(AT)X3896(T)X3946(\()X3948(\()X3984(\))X3986(\))X10 s554 864(and)N3 f690(fgluLookAt)X1 f1105(is)X1178(equivalent)X1532(to)X1614(glMultMatrixf\(M\);)X2243(glTranslated)X2664(\(-eyex,)X2910(-eyey,)X3129(-eyez\);)X9 s266 998(S)N268(SE)X310(EE)X356(E)X432(A)X434(AL)X488(LS)X534(SO)X576(O)X3 f10 s554 1094(glFrustum)N1 f(,)S3 f954(fgluPerspective)X1 f266 6144(July)N419(22,)X539(1997)X3794(Page)X3970(2)X10 f0 6428(h)N24(hhh)X4176(h)X4200(hhh)X2 p%%Trailerxtxs
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -