%!PS % Real Time Acrobat Animation: A 3-Phase Power Simulation #47 % ====================================================================== % by Don Lancaster /ggnum 47 store % Copyright c 2003 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (928) 428-4073 Email: don@tinaja.com Website: http://www.tinaja.com % Consulting services available http://www.tinaja.com/info01.html % Linking welcome. Reposting expressly forbidden. % All commercial rights and all electronic media rights ~fully~ reserved. % Linking usually welcome. Reposting expressly forbidden. Version 1.1 % Tutorial on PIC Programming Guidelines for Magic Sinewave Development. % IMPORTANT NOTE: Don Lancaster's file gonzo.ps is required for this program. % After obvious location mods, uncomment ONE of the following two lines: (C:\\Documents and Settings\\don\\Desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % NOTE THAT ALL PS FILENAME STRINGS !!!DEMAND!!! DOUBLE REVERSE SLASHES. % GONZO20A Guru Gonzo PostScript power tools (Interim release) % Includes gonzo justification and layout utilities. % Copyright c 1990, 1996, 2001 by Don Lancaster and Synergetics, Box 809, % Thatcher Arizona, 5552 (928) 428-4073 don@tinaja.com support % via http://www.tinaja.com All commercial rights and all electronic % media rights **FULLY** reserved. Reposting is expressly forbidden. %%%%%%%%%%% links menu directory %%%%%%%%%%%% % This code locks pdfmark commands out of a PostScript printer. /pdfmark where {pop}{userdict /pdfmark /cleartomark load put} ifelse % /surl "start url" marks the beginning of a text sequence to be urled. % It also paints the text blue... /surl {mark /blue cvx 0.33 /setgray cvx % change text to blue /currentpoint cvx % remember box start /urly /exch cvx /store cvx /urlx /exch cvx /store cvx ] cvx % complete deferred command printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def % /eurl "end url" unmarks the end of a text sequence and sets up % the pdfmark needed to define the Acrobat web link. /eurl {mark % start deferred proc exch % position url string % /black cvx 0 /setgray cvx % turn blue marker off % maintextcolor /setrgbcolor cvx % reset to main text color??? /aqua cvx /black cvx /makeurl cvx % defer call of url builder ] cvx % complete deferred proc printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } def % /makeurl generates the pdfmark, receiving a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /urlover 0.2 def % fraction of hot area over bounds /makeurl { /cururlname exch store % save the url string mark % start pdfmark currentfont /ScaleMatrix get 3 get /fsize exch store % guess height /Rect [ urlx fsize urlover mul sub % set box left x urly fsize urlover mul sub % set box left y currentpoint exch fsize urlover mul add exch fsize add ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def % /makeurlx generates the box specific pdfmark, receiving % a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /makeurlx { /cururlnamex exch store % save the url string mark % start pdfmark /Rect [ xpos % set box left x ypos 0.9 sub % set box left y xpos 2.8 add % box right x ypos 0.9 sub 2.8 add % box right y ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def /maintextcolor {0 0 0 } def % text link specific data -- use dictionary instead below { /cubic01 {(http://www.tinaja.com/cubic01.asp) eurl} def /hack62 {(http://www.tinaja.com/glib/hack62.pdf) eurl} def /increment {(http://www.tinaja.com/text/bezgen3.html) eurl} def /interpolate {(http://members.bellatlantic.net/~vze2vrva/design.html) eurl } def /bezmath {(http://www.tinaja.com/text/bezmath.html) eurl } def /table {(http://www.tinaja.com/psutils/imtable.psl) eurl } def } pop % dictionary method << % zzzzzzzzzzzzzzzzzz /adobejava (http://partners.adobe.com/public/developer/pdf/topic_js.html) /p3anim01.pdf (http://www.tinaja.com/glib/p3anim01.pdf) /xpdf (http://www.foolabs.com/xpdf/) /heapsort.pdf (http://www.tinaja.com/glib/heapsort.pdf) /strconv.pdf (http://www.tinaja.com/glib/strconv.pdf) /pdfrefman (http://partners.adobe.com/public/developer/pdf/index_reference.html) /uncompresspdf.api (http://www.tinaja.com/plugins/uncompressPDF.api) /adobeebooks (http://www.adobe.com/epaper/ebooks/main.html) /viewpdf1.psl (http://www.tinaja.com/psutils/viewpdf1.psl) /adobeacrobatsdk (http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html) /adobejavascriptguide (http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html#js) /wordfreq.pdf (http://www.tinaja.com/glib/wordfreq.pdf) /azauct01.pdf (http://www.tinaja.com/glib/azauct01.pdf) /startsdk.pdf (http://www.tinaja.com/glib/startsdk.pdf) /flatevue.pdf (http://www.tinaja.com/glib/flatvue.pdf) /wordfrq1.psl (http://www.tinaja.com/psutils/wordfrq1.psl) /otherwf (http://www.mytranslate.com/wordfrequency.htm) /homonyms (http://www.cooper.com/alan/homonym_list.html) /wrightauct (http://www.wrightbrosauctioneers.com/) /a1auct (http://www.a1auctionz.com/) /auctbroke (http://www.auctionbrokers.us/) /ronbrunk (http://www.brunksauction.com/) /americawest (http://www.yellowpages-ads.com/01231827) /azauctioneers (http://www.arizonaauctioneers.com/) /dickerson (http://www.cfdauction.com/) /wsmauct (http://www.westernsalesmanagement.com/) /asustore (http://property.asu.edu/) /uaauct (http://pacs.web.arizona.edu/pacs_home.html) /schoolauct (http://web.archive.org/web/20040229230404/http://www.dist.maricopa.edu/surplus/other.html) /haynieauct (http://www.chuckhaynieauctions.com/pages/1/index.htm) /crawfordauct (http://www.tumbleweedauction.com/) /mangold (http://www.azauctioneers.org/members/8402_OCMangold.asp) /tingle (http://brucetingleauctioneering.com/) /countass (http://www.soldyourway.com/) /southwestliq (http://www.swliquidators.com/) /maricopacoll (http://www.dist.maricopa.edu/surplus/) /sierraauct (http://www.sierraauction.com/) /cunninghamauct (http://www.auctionaz.com/) /auctappr (http://www.auctionandappraise.com/) /azauctionassn (http://www.azauctioneers.org/home.asp) /natauctionassn (http://www.auctioneers.org/) /azclassifieds (http://www.arizclassified.com/classifieds/index.inn) /azrepublic (http://www.azcentral.com/class/merch/) /tudailystar (http://classified.tucson.com/index.php?site_name=citizen) /enhebay1.pdf (http://www.tinaja.com/glib/enhebay1.pdf) /busonly.psl (http://www.tinaja.com/psutils/busonly.psl) /rebound1.psl (http://www.tinaja.com/glib/rebound1.pdf) /rebound1.pdf (http://www.tinaja.com/glib/rebound1.psl) /funfield.pdf (http://www.tinaja.com/glib/funfield.pdf) /psar2img.pdf (http://www.tinaja.com/glib/psar2img.pdf) /dovebid (http://www.dovebid.com) /michaelfox (http://www.michaelfox.com) /mjauctions (http://www.mjauctions.com) /ucc (http://www.law.cornell.edu/ucc/) /arizlaw (http://www.azleg.state.az.us/ArizonaRevisedStatutes.asp) /vickrey (http://www.vanderbilt.edu/econ/reiley/papers/VickreyHistory.pdf) /whtnu04 (http://www.tinaja.com/whtnu04.asp) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /nutilt01.psl (http://www.tinaja.com/psutils/nutilt01.psl) /nubkg01.psl (http://www.tinaja.com/psutils/nubkg01.psl) /dodbur01.psl (http://www.tinaja.com/psutils/dodbur01.psl) /ebayphen.pdf (http://www.tinaja.com/glib/ebayphen.pdf) /gallery.pdf (http://www.tinaja.com/glib/gallery.pdf) /histolog (http://www.tinaja.com/glib/histolog.pdf) /bmfonts (http://www.tinaja.com/glib/bmfonts.pdf) /dodbur (http://www.tinaja.com/glib/dodgebur.pdf) /ebayphoto (http://www.tinaja.com/glib/ebayfoto.pdf) /auctscne (http://www.tinaja.com/glib/auctscne.pdf) /auctscne.pdf (http://www.tinaja.com/glib/auctscne.pdf) /stepprep (http://www.tinaja.com/glib/stepprep.pdf) /phonenums (http://www.switchboard.com/bin/cgiqa.dll?MG=) /reversephone (http://www.reversephonedirectory.com/) /scholar (http://www.scholar.google.com/) /shieldsup (https://grc.com/x/ne.dll?bh0bkyd2) /sotofamilia (http://cgi6.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=ViewListedItems&userid=sotofamilia&include=0&since=7&sort=3&rows=100) /topozone (http://www.topozone.com/) /thomasreg (http://www.thomasregister.com/) /uhaul (http://www.uhaul.com/) /ups (http://www.ups.com/) /usps (http://www.usps.com/) /vrane (http://www.vrane.com) /wayback (http://web.archive.org/) /whois (http://www.networksolutions.com/cgi-bin/whois/whois) /grainger (http://www.grainger.com/) /zipcodes (http://www.usps.com/ncsc/lookups/lookup_zip+4.html) /mcmaster (http://www.mcmaster.com/) /mscsupply (http://www.mscdirect.com/) /natauctioneers (http://www.auctioneers.org/) /newspapers (http://www.usnpl.com/) /norfolk (http://www.norfolkandwaay.com) /quickphrase (http://www.typingmaster.com/index.asp?go=quickphrase) /myebays (http://www.tinaja.com/glib/myebays.pdf) /myebays.pdf (http://www.tinaja.com/glib/myebays.pdf) /moreebay (http://www.tinaja.com/glib/moreebay.pdf) /moreebay.pdf (http://www.tinaja.com/glib/moreebay.pdf) /mapsonus (http://www6.mapsonus.com/) /aafont01 (http://www.tinaja.com/aafont01.asp) /froogle (http://www.froogle.com) /govliquidation (http://www.govliquidation.com) /intershipper (http://www.intershipper.com) /kelly (http://www.kbb.com) /paypal (https://www.paypal.com/refer/pal=don%40tinaja.com) /ebaysell (http://www.tinaja.com/glib/ebaysell.pdf) /ebaybuy (http://www.tinaja.com/glib/ebaybuy.pdf) /deja (http://groups.google.com/googlegroups/deja_announcement.html) /drhtml (http://www2.imagiware.com/RxHTML/) /fedex (http://www.fedex.com/us/) /currency (http://www.xe.net/ucc/) /terraserver (http://terraserver-usa.com/) /areacode (http://decoder.americom.com/cgi-bin/decoder.cgi) /asiansources (http://www.asia.globalsources.com/HOMEPAGES/ASOL/HOME) /ebaystore (http://stores.ebay.com/synergeticsabeja) /amazon (http://www.amazon.com/exec/obidos/redirect-home/donlancastersgur/) /aucres01 (http://www.tinaja.com/aucres01.asp) /auctlinks (http://www.tinaja.com/auct01.asp#links) /wayback (http://www.archive.org/web/web.php) /agilent (http://www.agilent.com) /fields01.psl (http://www.tinaja.com/glib/fields01.psl) /fields01.pdf (http://www.tinaja.com/glib/fields01.pdf) /maxwells (http://hyperphysics.phy-astr.gsu.edu/hbase/electric/maxeq.html#c3) /muse121 (http://www.tinaja.com/glib/muse121.pdf) /maxwellbook (http://www.amazon.com/exec/obidos/ISBN=0486606368/donlancastersgurA) /transtronics (http://www.transtronics.com) /sigview.pdf (http://www.tinaja.com/glib/sigview.pdf) /mscal28nd.asp (http://www.tinaja.com/mscal28nd.asp) /microchip (http://www.microchip.com) /numschip.pdf (http://www.tinaja.com/glib/numschip.pdf) /numschip.psl (http://www.tinaja.com/glib/numschip.psl) /msd28a.asm (http://www.tinaja.com/glib/msd28a.asm) /lineartechnology (http://www.lineartechnology.com) /bmtypewr (http://www.tinaja/com/psutils/bmtypewr.psl) /distlang.pdf (http://www.tinaja.com/glib/distlang.pdf) /muse141 (http://www.tinaja.com/glib/muse141.pdf) /screenthief (http://www.keyscreen.com/KeyScreen(s)5/scrnthf.htm) /giffont (http://www.tinaja.com/bmfonts/giffont1.bmp) /f507bg.txt (http://www.tinaja.com/bmfonts/f507bg.txt) /f507bg.psl (http://www.tinaja.com/bmfonts/f507bg.psl) /f507bg.pdf (http://www.tinaja.com/bmfonts/f507bg.pdf) /f607bg.txt (http://www.tinaja.com/bmfonts/f607bg.txt) /f707bg.txt (http://www.tinaja.com/bmfonts/f707bg.txt) /imgwrds1.psl (http://www.tinaja.com/psutils/imgwrds1.psl) /bmfont01 (http://www.tinaja.com/bmfont01.asp) /expbmp.psl (http://www.tinaja.com/glib/expbmp.pdf) /kikisu (http://www.tinaja.com/images/bargs/ki710101.jpg) /hp3336a (http://www.tinaja.com/images/bargs/hp333601.jpg) /bmtransfer (http://www.tinaja.com/bmfonts/lettex01.bmp) /histolog.pdf (http://www.tinaja.com/glib/histolog.pdf) /histolog.psl (http://www.tinaja.com/glib/histolog.psl) /site01 (http://www.tinaja.com/site01.asp) /dayproc1.psl (http://www.tinaja.com/psutils/dayproc1.psl) /trail30.psl (http://www.tinaja.com/psutils/trail30.psl) /logrptm1.psl (http://www.tinaja.com/psutils/logrptm1.psl) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /powerfit (http://www.tinaja.com/glib/powerfit.pdf) /pssort (http://www.tinaja.com/glib/pssort.pdf) /heapsort (http://www.tinaja.com/glib/heapsort.pdf) /bashpseu (http://www.tinaja.com/glib/bashpseu.pdf) /pseudo01 (http://www.tinaja.com/pseudo01.asp) /muse112 (http://www.tinaja.com/glib/muse112.pdf) /muse113 (http://www.tinaja.com/glib/muse113.pdf) /muse89 (http://www.tinaja.com/glib/muse89.pdf) /muse151 (http://www.tinaja.com/glib/muse151.pdf) /pssecrets (http://www.tinaja.com/glib/pssecrets.pdf) /bouncy (http://www.tinaja.com/glib/bouncy.pdf) /vectstep (http://www.tinaja.com/glib/vectstep.pdf) /muse102 (http://www.tinaja.com/glib/muse102.pdf) /onesword (http://www.tinaja.com/text/onesword.html) /emergop2 (http://www.tinaja.com/glib/emergop2.pdf) /wave01 (http://www.tinaja.com/wave01.asp) /chaincode (http://www.tinaja.com/text/chain01.html) /muse152 (http://www.tinaja.com/glib/muse152.pdf) /atg1 (http://www.tinaja.com/glib/atg1.pdf) /hack62 (http://www.tinaja.com/glib/hack62.pdf) /psinscrt (http://www.tinaja.com/glib/psinscrt.pdf) /fern2img (http://www.tinaja.com/psutils/fern2img.psl) /thefern (http://www.tinaja.com/psutils/fern2img.pdf) /cmoscb (http://www.amazon.com/exec/obidos/ISBN%3D0750699434/donlancastersgurA/002-0496817-3688016) /activecb (http://www.amazon.com/exec/obidos/ISBN%3D075062986X/donlancastersgurA/002-0496817-3688016) /hack64 (http://www.tinaja.com/glib/hack64.pdf) /nss (http://www.caves.org) /sinquest (http://www.tinaja.com/glib/sinquest.pdf) /askguru (http://www.tinaja.com/glair01.asp) /assycb (http://www.amazon.com/exec/obidos/ISBN%3D0672223317/donlancastersgurA/002-3338585-9572047) /muse105 (http://www.tinaja.com/glib/muse105.pdf) /muse107 (http://www.tinaja.com/glib/muse107.pdf) /resbn90 (http://www.tinaja.com/glib/resbn90.pdf) /hackar3 (http://www.tinaja.com/glib/hackar3.pdf) /testdemo (http://www.tinaja.com/glib/FULL60-1.ASC) /mschips (http://www.tinaja.com/glib/mschips.pdf) /sigview (http://www.sigview.com) /ggsigview (http://www.tinaja.com/glib/sigview.pdf) /mock (http://www.technicalworks.com) /xtronics (http://www.xtronics.com/) /oshen (http://www.oshonsoft.com/pic.html) /heapps01 (http://www.tinaja.com/psutils/heapps01.psl) /distlangpdf (http://www.tinaja.com/glib/distlang.pdf) /strconv (http://www.tinaja.com/glib/strconv.pdf) /fancysort (http://linux.wku.edu/~lamonml/algor/sort) /presort (http://www.tinaja.com/psutils/presort1.psl) /psnt (http://www.tinaja.com/glib/psnt.pdf) /insort (http://www.tinaja.com/psutils/insort.ps) /bublsort (http://www.tinaja.com/psutils/bublsort.ps) /oldstrconv (http://www.tinaja.com/psutils/strconv.html) /psdisk03 (http://www.tinaja.com/glib/psdisk03.pdf) /muse01 (http://www.tinaja.com/muse01.asp) /gonzopow (http://www.tinaja.com/glib/gonzopow.pdf) /gonzopow.pdf (http://www.tinaja.com/glib/gonzopow.pdf) /analogeb (http://www.tinaja.com/glib/analogeb.pdf) /psdisk03 (http://www.tinaja.com/glib/psdisk03.pdf) /flut01 (http://www.tinaja.com/flut01.asp) /clpng (news:///comp.lang.postscript) /ctpng (news:///comp.text.pdf) /yahoo (http://www.yahoo.com) /google (http://www.google.com) /scodes (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) /whois (http://www.networksolutions.com/en_US/whois/index.jhtml) /zekes (http://www.zekes.com) /logfileformat (http://www.microsoft.com/windows2000/en/server/iis/default.asp?url=/windows2000/en/server/iis/htm/core/iicnvlg.htm) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /logrpt01.log (http://www.tinaja.com/psutils/logrpt01.log) /ex031126 (http://www.tinaja.com/psutils/ex031126.log) /picup01 (http://www.tinaja.com/picup01.asp) /webwb01 (http://www.tinaja.com/webwb01.asp) /muse90 (http://www.tinaja.com/glib/muse90.pdf) /vismagsn (http://www.tinaja.com/glib/vismagsn.psl) /vismagsn.pdf (http://www.tinaja.com/glib/vismagsn.pdf) /msquant (http://www.tinaja.com/glib/msquant.psl) /optjit01 (http://www.tinaja.com/psutils/optjit01.psl) /optjit01demo (http://www.tinaja.com/psutils/optjit01.pdf) /qall01 (http://www.tinaja.com/psutils/qall01.psl) /deltapat (http://www.tinaja.com/psutils/deltapat.pdf) /deltapat.pdf (http://www.tinaja.com/psutils/deltapat.pdf) /deltapat.psl (http://www.tinaja.com/psutils/deltapat.psl) /mindist1 (http://www.tinaja.com/glib/mindist1.pdf) /deltams1 (http://www.tinaja.com/glib/deltams1.pdf) /grabjpg (http://www.tinaja.com/psutils/grabjpg.psl) /gallery (http://www.tinaja.com/glib/gallery.pdf) /nutour01 (http://wwww.tinaja.com/nutour01.pdf) /linkpdf1 (http://www.tinaja.com/glib/linkpdf1.html) /ebayfoto (http://www.tinaja.com/glib/ebayfoto.pdf) /jpeg2pdf.html (http://www.tinaja.com/text/jpeg2pdf.html) /pdf2bmp (http://www.tinaja.com/psutils/pdf2bmp.psl) /bitmfont (http://www.tinaja.com/psutils/bitmfont.txt) /antifontpsl (http://www.tinaja.com/psutils/antifont.psl) /antifonttxt (http://www.tinaja.com/psutils/antifont.txt) /histog01 (http://www.tinaja.com/psutils/histog01.psl) /swingtlt (http://www.tinaja.com/glib/swingtlt.pdf) /newsamoe (news:///alt.marketing/online.ebay) /webtrends (http://www.netiq.com/webtrends/default.asp) /stegan (http://63.140.207.28/books/bkwater.asp) /nodi (http://www.pages.ebay.com/help/community/notice-infringe2.pdf) /ebayvero (http://www.pages.ebay.com/help/community/vero-program.html) /aboutme (http://members.ebay.com/aboutme/abeja/) /magfill2 (http://www.tinaja.com/psutils/magfill2.psl) /bmprpt01 (http://www.tinaja.com/psutils/bmprpt01.psl) /waywere (http://www.tinaja.com/glib/waywere.pdf) /nikon (http://www.nikon.com) /bayer (http://www.coreco.com/Web/wbtools3.nsf/0/87fce126f109ea3a05256c7100591c9a?OpenDocument) /hewpack (http://www.hp.com) /auct01 (http://www.tinaja.com/auct01.asp) /blat01 (http://www.tinaja.com/auct01.asp) /moreebay (http://www.tinaja.com/glib/moreebay.pdf) /auctscne (http://www.tinaja.com/glib/auctscne.pdf) /autourl (http://www.tinaja.com/glib/autourl.pdf) /msintro1 (http://www.tinaja.com/glib/msintro1.pdf) /msintrosource (http://www.tinaja.com/glib/msintro1.psl) /knockout (http://www.tinaja.com/glib/knockout.bmp) /stepsynt (http://www.tinaja.com/glib/stepsynt.pdf) /msintro1 (http://www.tinaja.com/glib/msintro1.pdf) /msinprop (http://www.tinaja.com/glib/msinprop.pdf) /muse106 (http://www.tinaja.com/glib/muse106.pdf) /muse142 (http://www.tinaja.com/glib/muse142.pdf) /math01 (http://www.tinaja.com/math01.asp) /cubic01 (http://www.tinaja.com/cubic01.asp) /bez4pts (http://www.tinaja.com/glib/bez4pts.pdf) /muse145 (http://www.tinaja.com/glib/muse145.pdf) /muse148 (http://www.tinaja.com/glib/muse148.pdf) /curveft3 (http://www.tinaja.com/psutils/curveft3.psl) /fuzzybez (http://www.tinaja.com/glib/fuzzybez.pdf) /bmprpt01 (http://www.tinaja.com/psutils/bmprpt01.psl) /nowhit01 (http://www.tinaja.com/psutils/nowhit01.psl) /blender (http://www.tinaja.com/psutils/blender.psl) /speedup2 (http://www.tinaja.com/glib/speedup2.pdf) /histog01 (http://www.tinaja.com/psutils/histog01.psl) /imgviewer32 (http://www.arcatapet.net/imgv32.cfm) /basis (http://www.tinaja.com/glib/basis.pdf) /expbmp (http://www.tinaja.com/glib/expbmp.pdf) /dodbur01 (http://www.tinaja.com/psutils/dodbur01.psl) /dodgebur (http://www.tinaja.com/glib/dodgebur.pdf) /magfill1 (http://www.tinaja.com/psutils/magfill1.psl) /swingt01 (http://www.tinaja.com/psutils/swingt01.psl) /before01 (http://www.tinaja.com/images/bargs/marcon01.jpg) /during01 (http://www.tinaja.com/images/bargs/marcon01.bmp) /after01 (http://www.tinaja.com/images/bargs/marconz1.jpg) /repobmp (http://www.tinaja.com/glib/repobmp.pdf) /basis01 (http://www.tinaja.com/glib/basis.pdf) /arcata (http://www.arcatapet.net/imgv32.cfm) /comparebmp (http://www.designer-info.com/Writing/bmp_tiff_jpeg_gif.htm) /imagimag (http://www.tinaja.com/glib/imagimag.pdf) /myebays (http://www.tinaja.com/glib/myebays.pdf) /stepprep (http://www.tinaja.com/glib/stepprep.pdf) /aafont01 (http://www.tinaja.com/aafont01.asp) /here1 (http://village.infoweb.ne.jp/~fwhw1257/study/bmpform.htm) /here2 (http://www.daubnet.com/formats/BMP.html) /bittype (http://www.tinaja.com/psutils/pdf2bmp.psl) /photocombine (http://www.tinaja.com/psutils/blender.psl) /psl (http://www.tinaja.com/psutils/) % dummy temp /psl1 (http://www.tinaja.com/psutils/pdf2bmp.psl) /psl2 (http://www.tinaja.com/psutils/acatdata.psl) /psl3 (http://www.tinaja.com/psutils/catwords.psl) /psl4 (http://www.tinaja.com/psutils/graburls.psl) /psl5 (http://www.tinaja.com/psutils/blender.psl) /psl6 (http://www.tinaja.com/psutils/catools1.psl) /psl7 (http://www.tinaja.com/psutils/strconv.html) /psl8 (http://www.tinaja.com/psutils/bodcat.psl) /psl9 (http://www.tinaja.com/psutils/flatvue1.psl) /psl10 (http://www.tinaja.com/psutils/fern2img.psl) /psl11 (http://www.tinaja.com/psutils/flutools.psl) /psl12 (http://www.tinaja.com/psutils/mscal156q.psl) /psl13 (http://www.tinaja.com/psutils/weblogu2.psl) /psl14 (http://www.tinaja.com/psutils/pfa2pfb.psl) /psl15 (http://www.tinaja.com/psutils/pfb2pfa.psl) /psl16 (http://www.tinaja.com/glib/psdisk03.psl) /psl17 (http://www.tinaja.com/psutils/disktool.psl) /psl18 (http://www.tinaja.com/glib/psinscrt.psl) /psl19 (http://www.tinaja.com/glib/pssearch.psl) /psl20 (http://www.tinaja.com/text/refsum1.html) /psl21 (http://www.tinaja.com/text/reflog1.html) /psl22 (http://www.tinaja.com/psutils/reflog1.psl) /psl23 (http://www.tinaja.com/psutils/refsum1.psl) /psl24 (http://www.tinaja.com/psutils/searepl.psl) /psl25 (http://www.tinaja.com/psutils/weberru2.psl) /psl26 (http://www.tinaja.com/psutils/grabsrch.psl) /psl27 (http://www.tinaja.com/psutils/grabrefs.psl) /magsn01 (http://www.tinaja.com/magsn01.asp) /gonzoutils (http://www.tinaja.com/post01.asp#gonzo) /disktool (http://www.tinaja.com/psutils/disktool.ps) /elesimp (http://www.tinaja.com/glib/elesimp.pdf) /tn5603 (http://partners.adobe.com/asn/developer/pdfs/tn/TN5603.Filters.pdf) /fern2img (http://www.tinaja.com/psutils/fern2img.psl) /fern (http://www.tinaja.com/psutils/fern2img.pdf) /oldfern (http://www.tinaja.com/psutils/fernx1.pdf) /acrosdk (http://partners.adobe.com/asn/developer/acrosdk/main.html) /refman2 (http://partners.adobe.com/asn/developer/pdfs/tn/psrefman.pdf) /refman3 (http://partners.adobe.com/asn/developer/pdfs/tn/PLRM.pdf) /s3011 (http://partners.adobe.com/asn/developer/pdfs/tn/PS3010and3011.Supplement.pdf) /s2011 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2011.supplement.pdf) /s2012 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2012.supplement.pdf) /s2013 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2013.supplement.pdf) /s2014 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2014.supplement.pdf) /s2015 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2015.supplement.pdf) /s2016 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2016.supplement.pdf) /ghost (http://www.cs.wisc.edu/~ghost/) /distlang (http://www.tinaja.com/psutils/distlang.html) /adobepst (http://partners.adobe.com/asn/developer/technotes/) /maildon (mailto:don@tinaja.com) /tinaja (http://www.tinaja.com) /adobe (http://www.adobe.com) /adobesdk (http://partners.adobe.com/asn/developer/acrosdk/main.html) /pstrans (http://www.tinaja.com/glib/pstrans.pdf) /borland (http://www.borland.com/products/downloads/download_cbuilder.html) /ebay (http://cgi6.ebay.com/ws/eBayISAPI.dll?ViewSellersOtherItems&userid=abeja&completed=0&sort=2&since=-1&include=0&page=1&rows=100) /searepl (http://www.tinaja.com/psutils/searepl.psl) /aasdk (http://www.tinaja.com/plugins/AboutAcrobatSDK.api) /uncomp (http://www.tinaja.com/plugins/UncompressPDF.api) /addimage (http://www.tinaja.com/plugins/AddImage.api) /samplejpg (http://www.tinaja.com/plugins/sample.jpg) /transparency (http://www.tinaja.com/plugins/Transparency.api) /threerects (http://www.tinaja.com/plugins/threerects.pdf) /watermark (http://www.tinaja.com/plugins/Watermark.api) /verifyurls (http://www.tinaja.com/plugins/VerifyURLS.api) /flate (http://www.tinaja.com/glib/flatvue.pdf) /pstrans (http://www.tinaja.com/glib/pstrans.pdf) /advt01 (http://www.tinaja.com/advt01.asp) /amlink01 (http://www.tinaja.com/amlink01.asp) /ng1 (news:///comp.text.pdf) /ng2 (news:///comp.lang.postscript) /msc++ (http://msdn.microsoft.com/visualc/productinfo/default.asp) /degub (http://www.tinaja.com/glib/degub.pdf) /ghostscript (http://www.artifex.com/pressreleases/GS70.htm) /demox.psl (http://www.tinaja.com/glib/g9demox.psl) /demox.pdf (http://www.tinaja.com/glib/g9demox.pdf) /demo.pdf (http://www.tinaja.com/glib/g9demo.pdf) /flatvue (http://www.tinaja.com/glib/flatvue.psl) /pdfrefman (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /psrefman (http://partners.adobe.com/asn/developer/technotes/postscript.html) /pdfmrm (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /tipdf (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /asdk (http://partners.adobe.com/asn/developer/acrosdk) /mtcr (http://support.adobe.com/devsup/devsup.nsf/docs/51864.htm) /flatvue1 (http://www.tinaja.com/psutils/flatvue1.psl) /acrob01 (http://www.tinaja.com/acrob01.asp) /post01 (http://www.tinaja.com/post01.asp) /info01 (http://www.tinaja.com/info01.asp) /gurgrm01 (http://www.tinaja.com/gurgrm01.asp) /energfun (http://www.tinaja.com/glib/energfun.pdf) { /tilley (http://www.tilleyfoundation.com) /mnglobal (http://www.mnglobal.com/energy/pg2.htm) /keely (http://www.keelynet.com) /evolve (http://www.evolvedtechnology.com) /hack64 (http://www.tinaja.com/glib/hack64.pdf) /hackar3 (http://www.tinaja.com/glib/hackar3.pdf) /resbn58 (http://www.tinaja.com/glib/resbn58.pdf) /bppt (http://www.batterypoweronline.com) /muse112 (http://www.tinaja.com/glib/muse112.pdf) /muse113 (http://www.tinaja.com/glib/muse113.pdf) /energfun (http://www.tinaja.com/glib/energfun.pdf) /bashpseu (http://www.tinaja.com/glib/bashpseu.pdf) /adobe (http://www.adobe.com) /netscape (http://www.netscape.com) /gallypsl (http://www.tinaja.com/galley1.psl) /gallypdf (http://www.tinaja.com/galley1.pdf) /atn5150 (http://partners.adobe.com/asn/developer/acrosdk/docs/createpdfapi/pdfmarkReference.pdf) /nutour (http://www.tinaja.com/bargains/nutour02.pdf) /nutoursource (http://www.tinaja.com/bargains/nutour02.psl) /bwhistle (http://www.tinaja.com/glib/bwhistle.pdf) /gonzo1 (http://www.tinaja.com/post01.asp#gonzo) /barg01 (http://www.tinaja.com/barg01.asp) /weblib01 (http://www.tinaja.com/weblib01.asp) /gurgrm01 (http://www.tinaja.com/gurgrm01.asp) /z1 (http://www.tinaja.com/bargains/thumb/albradz2.jpg) /z2 (http://www.tinaja.com/bargains/sbtesteq.asp) /z3 (http://www.tinaja.com/images/bargs/albrad02.jpg) /z4 (http://www.tinaja.com/bargains/thumb/tutenaz2.jpg) /z5 (http://www.tinaja.com/bargains/sbphone.asp) /z6 (http://www.tinaja.com/images/bargs/tutena02.jpg) /sourceme (http://www.tinaja.com/glib/gallery.psl) /sourceme2 (http://www.tinaja.com/glib/autourl.psl) } pop >> {mark exch /eurl cvx ] cvx def} forall %%%%%%%%%%%%%%%% New colorizer patches %%%%%%%%%%%%%%%%%% /boxgrays 0.899 def /grayshade boxgrays def /mastergray boxgrays def /staytint {0.33 setgray} def /staytint1 {0.25 setgray} def /showadgrays true def /red {0 settint} def /Zmacro {staytint /ypos ypos 2 add def 72 300 div setlinewidth xpos ypos moveto txtwide 0 rlineto stroke /ypos ypos -2 add def tintoff} def % hair rule /amacro {(zy0) stringmacro /ypos ypos ypara add def 0.33 setgray } def % start drop cap /bmacro {(iFy1) stringmacro /ypos ypos ypara add def black} def % finish drop cap % Gonzo character colorizer /blueon {mark /blue cvx 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /blueoff {mark /beige cvx 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton {mark 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1 {mark 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark beige cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1p {mark /burple cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1r {mark /red cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark /beige cvx % try for beige after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tintoff {mark 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def %%%%%%%%%%%%%% COMPACT VERSION OF COLORIZER II %%%%%%%%%%%%%%%%%%%%%% /settint {dup /currenttint exch store 5.999 mul dup floor cvi /&cbar exch store dup floor sub /&cwt exch store [ {/setgray [ /dup cvx 0.3 &cwt 0.59 mul add /ge cvx [1 /exch cvx &cwt 0.59 mul 0.30 add /sub cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx ] cvx [ &cwt 0.59 mul 0.3 add /div cvx /dup cvx &cwt /mul cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub 0.3 mul add /ge cvx [1 &cwt sub 0.3 mul 0.59 add /sub cvx &cwt 0.3 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx /exch cvx 1 /exch cvx] cvx [1 &cwt sub 0.3 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 &cwt 0.11 mul add /ge cvx [&cwt 0.11 mul 0.59 add /sub cvx 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx 1 /exch cvx] cvx [0 /exch cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub mul 0.11 add /ge cvx [1 &cwt sub 0.59 mul 0.11 add /sub cvx &cwt 0.59 mul 0.30 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx 1] cvx [0 /exch cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.11 &cwt 0.30 mul add /ge cvx[&cwt 0.30 mul 0.11 add /sub cvx 1 &cwt sub 0.30 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx 1] cvx [ &cwt 0.30 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx /exch cvx 0 /exch cvx ] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} {/setgray [ /dup cvx 0.30 1 &cwt sub 0.11 mul add /ge cvx[ 1 /exch cvx 1 &cwt sub 0.11 mul 0.30 add /sub cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx ] cvx [ 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx 0 /exch cvx] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} ] &cbar get exec exec} bind def /beige {0.10 settint} def % examples of convenience operators /aqua {0.52 settint} def /blue {0.67 settint} def /lime {0.44 settint} def /burple {0.75 settint} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /guru { gonzo begin ps.util.1 begin printerror nuisance begin} def % guru % activate gonzo utilities 50 50 10 setgrid % create grid % 56 61 showgrid /setpagefonts { /cstretch 0.015 def /sstretch 0.015 def /font0 /StoneSans-Bold 1.6 gonzofont /font1 /StoneSans 0.95 gonzofont /font2 /StoneSans [0.95 0 0.25 0.95 0 0 ] gonzofont /font4 /StoneSans 0.85 gonzofont /font3 /StoneSans-Bold 0.85 gonzofont /font6 /StoneSans-Bold 0.85 gonzofont /font7 /StoneSans-Bold 1.05 gonzofont % subheaders /font8 /StoneSans-Bold [0.65 0 0 0.65 0 0.4] gonzofont /txtwide 36 store /yinc 1.2 store /kern 0.1 store /pm 1.5 store aqua 0.33 setgray font1 black /amacro { mark /aqua cvx 0.33 /setgray cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } def /bmacro { mark /black cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } def /shiftin {xpos /xposhold exch store /xpos xpos 3 add store} def /shiftout {/xpos xposhold store} def /texttop 51 store /textleft 3 store /cmacro {aqua 0.25 setgray (znhL7) stringmacro /xpos xpos 1.7 sub store /ypos ypos .1 sub def } def % left title /dmacro {black (pL1hz) stringmacro /xpos xpos 1.7 add store /ypos ypos .1 add def} def % normal text after centered title /fmacro % try and fake | {mark /gsave cvx /currentpoint cvx /moveto cvx 0.1 /setlinewidth cvx 0 0.65 /rlineto cvx /stroke cvx /grestore cvx ] cvx printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def } def setpagefonts % -2 50.5 (optional header here \274) cl %% Set document opening conventions. Note DOCVIEW limited. [/CropBox [0 0 520 620] % set the wierd size /PAGES pdfmark [ {Catalog} << /ViewerPreferences << /FitWindow true /CenterWindow true >> /PageLayout /OneColumn % continous /Pagemode /UseNone % no thumbs /View [/XYZ null null 1 ] % force 100% >> /PUT pdfmark %%%%%%%%%%%%%%%%% START DEMO ART (not in use) %%%%%%%%%%%%%%%% %%% Hand patching Info: % next available variable is /GS3 % transparency gstate is object 2 % contents stream is object 18 gets q /GS3 gs (xstuff) Q % be sure to q Q bracket to localize % resources stream is object 19 gets /GS3 2 0 R /transoverlay { % make a new graphics state [ /_objdef {newgsstate} /type /dict /OBJ pdfmark % fill the new overlay graphics state - See PDF manual for details [ {newgsstate} << /Type /ExtGState /ca 0.5 % fill transparency is 0.5 /CA 0.5 % stroke transparency is 0.5 /BM /Normal /AIS false /OP false /OPM 1 /op true >> /PUT pdfmark % start a Begin Picture graphics overlay subroutine... [ /BBox [0 0 1000 1000 ] /_objdef {overlaypix} /BP pdfmark % fill the Begin Picture graphics overlay Xobject subroutine... 0 0.5 1 setrgbcolor % on the aqua side of blue 4 4 6 6 rectfill % complete the Begin Picture graphics overlay Xobject... [ /EP pdfmark } def % Write a two squares program... /twosquares { gsave translate 1 0.5 0 setrgbcolor % red side of orange 2 2 6 6 rectfill % do background opaque box [ {overlaypix} /SP pdfmark % show foreground transparent box grestore} def % Distill the two squares program. Initially use a BARE Distiller Job % Options that has no compression, no embedded fonts, and little else save /snap1 exch store %%% transoverlay % create new objects %%% 14 17.5 twosquares snap1 restore %%%%%%%%%%%% END DEMO %%%%%%% %%%%%%%%%%%% PHOTO INSERTS %%%%%%%%%% % When photos are needed, they are inserted here. Comment out otherwise. %%%%%%%%% photo links %%%%%%%%% % combined autopos jpeg conversion and hotlink: /autofigure1 {save /af1 exch store xpos ypos yinc add translate 6 0.65 923 526 .025 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/flu84501.jpg) % url first (C:\\windows\\desktop\\aaraw_pix\\flu84501.jpg) jpegimageprocwithlink af1 restore} store /autofigure2 {save /af2 exch store xpos ypos yinc add translate 8.5 -2 790 672 .020 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/tek40841.jpg) % url first (C:\\windows\\desktop\\aaraw_pix\\tek40841.jpg) jpegimageprocwithlink af2 restore} store /autofigure3 {save /af3 exch store xpos ypos yinc add translate 12 0.6 530 816 .018 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/sencri01.jpg) % url first (C:\\windows\\desktop\\aaraw_pix\\sencri01.jpg) jpegimageprocwithlink af3 restore} store /autofigure4 {save /af4 exch store xpos ypos yinc add translate 12 -0.4 422 612 .024 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/abspar01.jpg) % url first (C:\\windows\\desktop\\aaraw_pix\\abspar01.jpg) jpegimageprocwithlink af4 restore} store /jpegimageprocwithlink { % hoffset voffset hres vres save /snap2 exch def /infilename exch store % grab passed pix file /inurllink exch store % grab link filename /photoscale exch store /vpixels exch store /hpixels exch store translate % adjust position for final figure ??? inurllink setareaurl % autolink sizing /DeviceRGB setcolorspace % pick color model 0 0 translate % set page position hpixels vpixels scale % magnify unit square photoscale dup scale /infile infilename (r) file def % establish input read file /Data {infile /DCTDecode filter} def % define a data source << % start image dicationary /ImageType 1 % always one /Width hpixels % JPEG width in pixels /Height vpixels % JPEG height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource Data % proc to get filtered JPEG /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image operator ypos snap2 restore /ypos exch def } def /setareaurl { % for auto include routine /cururlname exch store mark % start pdfmark /Rect [ 0 0 hpixels photoscale mul vpixels photoscale mul ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def %%%%%%%%%%% data for quantization figures %%%%%%% /raw [0.0198613 3.75812 0.0300583 0.968559 0.0400088 0.625545 0.0500071 0.473332 0.0598378 0.508493 0.0701048 0.618866 0.080067 0.574973 0.0900779 0.328987 0.0999211 0.358846 0.109939 0.13398 0.119912 0.183206 0.129936 0.374792 0.14006 0.286128 0.150091 0.206733 0.160075 0.190605 0.169949 0.196913 0.17999 0.136811 0.189984 0.223428 0.200178 0.130515 0.209919 0.279305 0.21986 0.179522 0.230087 0.167779 0.239816 0.127177 0.250051 0.18394 0.260079 0.22457 0.269779 0.120137 0.279989 0.142624 0.290027 0.124499 0.299737 0.111797 0.309994 0.123014 0.319982 0.268029 0.329976 0.207562 0.339971 0.0887317 0.349912 0.141557 0.359975 0.0943557 0.369923 0.0895733 0.379933 0.198241 0.389968 0.204985 0.399985 0.107935 0.409949 0.0945179 0.419974 0.125101 0.429965 0.0976423 0.440214 0.0904647 0.449999 0.108261 0.459981 0.0657491 0.470024 0.206909 0.479727 0.0390659 0.489996 0.0464662 0.50005 0.208427 0.509765 0.0436721 0.520046 0.0589122 0.53008 0.0933284 0.540058 0.122129 0.550131 0.108932 0.55981 0.0608129 0.570111 0.0552627 0.579854 0.0621947 0.590107 0.139442 0.59986 0.0498109 0.610232 0.103161 0.619883 0.129033 0.630016 0.0849617 0.640199 0.0601919 0.649749 0.0799222 0.660031 0.0541167 0.669983 0.113527 0.679712 0.0480973 0.690061 0.089419 0.700078 0.107595 0.709859 0.0710718 0.720131 0.041575 0.730196 0.123105 0.740089 0.0584097 0.749848 0.0861482 0.75993 0.0515622 0.769942 0.0761598 0.779974 0.118253 0.789996 0.0481484 0.799986 0.0874933 0.809957 0.0973124 0.820064 0.0534035 0.830362 0.025697 0.83973 0.0399598 0.850034 0.049165 0.859829 0.0851767 0.869827 0.0404494 0.880229 0.0435597 0.889938 0.0723645 0.899933 0.0190775 0.910168 0.0616833 0.919942 0.0725692 0.929991 0.0399983 0.940013 0.102806 0.950018 0.0518368 0.960034 0.0318331 0.970059 0.0823362 0.980036 0.0436783 0.989837 0.0463608 1.00013 0.0562829 ] def /ex54 [ 5.87906 19.9758 5.38078 23.2179 6.61461 22.45 6.48865 23.8991 7.79373 21.6975 7.66747 18.3412 7.16927 15.7147 7.0433 23.5588 7.89268 23.6885 6.44363 24.0582 6.31744 20.4902 5.81917 24.1383 7.16713 21.0382 6.66901 18.9723 6.54259 11.4618 6.04431 22.422 6.99837 23.9206 7.72186 17.6438 7.22366 19.559 7.0974 19.865 8.16101 21.0954 7.66296 21.6132 8.38593 23.3011 8.45734 21.8227 8.33099 20.4936 7.83295 23.6901 9.12148 21.6428 8.99521 24.1041 9.0123 22.5552 10.0761 24.016 9.94987 23.6423 9.4516 18.8 10.3011 18.3618 10.175 15.7533 9.67651 15.8403 10.7406 22.2248 11.2952 23.4363 8.38531 18.1067 9.44916 24.1021 8.95065 19.521 8.82462 16.3613 8.32649 22.8011 9.67415 22.9247 9.1758 23.1169 9.04961 18.7033 10.0041 21.3686 9.50554 20.3098 9.37965 23.1915 10.229 20.7535 9.73083 24.3928 10.7951 23.4553 10.6687 20.0753 10.1704 22.7069 10.9646 20.4496 10.8385 20.1683 11.4042 19.4907 12.0175 23.4256 11.5192 22.1005 12.5835 16.0818 12.4572 16.8864 11.9588 13.1062 12.809 19.7136 12.6826 18.5011 12.1842 20.9156 13.2483 19.5923 13.1218 24.0439 13.8034 21.8302 10.6676 23.761 10.8927 22.8588 11.957 21.8607 11.4587 19.2204 11.3322 17.3188 12.5117 19.7264 12.0132 20.9341 13.1763 23.3152 13.2472 20.7672 13.1206 23.1287 13.4724 23.3126 13.3461 23.9651 13.9117 18.537 13.8022 22.5502 14.2414 20.9416 14.4669 13.1742 13.1752 23.9257 13.6145 24.4108 13.8398 22.6699 ] store /ex54good [ 6.54259 11.4618 11.9588 13.1062 14.4669 13.1742 10.175 15.7533 9.67651 15.8403 10.0041 21.3686 ] store /ex54orig [ 9.88396 24.4257 ] store /ex54want [ 10 0 ] store /shook [ 0.00934937 1.51076 0.0210324 0.978672 0.0312886 0.477679 0.0406482 0.318167 0.0493669 0.337353 0.0617085 0.203131 0.0692016 0.259957 0.0798052 0.229666 0.0885358 0.271299 0.100559 0.1726 0.109939 0.13398 0.118677 0.119296 0.131049 0.187404 0.140698 0.134313 0.149444 0.129195 0.158846 0.106101 0.170589 0.0965049 0.179351 0.0914561 0.189653 0.129042 0.201417 0.0546426 0.210828 0.108576 0.218951 0.100261 0.230727 0.120773 0.241057 0.103841 0.24984 0.0973585 0.259094 0.114175 0.268537 0.0808775 0.281232 0.051974 0.289386 0.0641827 0.301193 0.0942731 0.310907 0.0954356 0.31907 0.0730116 0.330889 0.0677774 0.339699 0.0797174 0.350554 0.0727672 0.360616 0.0859002 0.369923 0.0895733 0.379679 0.0823565 0.391137 0.0758395 0.399965 0.0916116 0.411197 0.0716472 0.419389 0.052739 0.430883 0.0744991 0.441523 0.0643956 0.450642 0.0651337 0.461231 0.0500311 0.470357 0.0682797 0.479727 0.0390659 0.491163 0.0464662 0.500383 0.0701265 0.509765 0.0436721 0.520046 0.0589122 0.529436 0.0621049 0.540979 0.065531 0.549818 0.0659652 0.55981 0.0608129 0.570111 0.0552627 0.579854 0.0621947 0.589296 0.0497526 0.59986 0.0498109 0.610207 0.0454799 0.620493 0.0516502 0.630849 0.0588497 0.639051 0.034206 0.649639 0.0456603 0.660009 0.0522574 0.670628 0.0426991 0.679712 0.0480973 0.69034 0.0477716 0.699467 0.0308037 0.711012 0.0686215 0.720131 0.041575 0.729513 0.0498212 0.739846 0.0430787 0.750499 0.0405623 0.76086 0.0438831 0.770257 0.0497878 0.780553 0.0441616 0.789662 0.0457397 0.800267 0.0325654 0.809451 0.0440074 0.820078 0.0403837 0.830362 0.025697 0.840997 0.0332166 0.85014 0.0337785 0.860449 0.0360605 0.869889 0.015046 0.880467 0.0360463 0.890767 0.0317396 0.899933 0.0190775 0.910273 0.0316686 0.919661 0.0263476 0.929956 0.0388174 0.939357 0.032368 0.949701 0.027215 0.960034 0.0318331 0.970334 0.0351219 0.979745 0.0379512 0.990337 0.0386641 1.00065 0.0439439 ] store %%%%%%%%%%%%% ordinary tracking figures /figureoneauto { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate % /linestring 20000 string def figure1 snap2 restore /ypos ypos figadvance sub yinc sub % 7 add store % temp bug removal? } store /figure1aaa { save /snap1aaa exch store 11 32.6 translate % huh? % BIG GREEN A % ================================================================= % (C:\\windows\\desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % gonzo begin % ps.util.1 begin % nuisance begin gsave aqua 0.3 setgray font6 -3 5 (desired\ncharacter) cc 20.2 5 (best\npixel fit) cc grestore /font1 /Helvetica-Bold 60 gonzofont % 100 100 2 setgrid 0.12 dup scale 0 0 mt 80 pu 60 pr 80 pd closepath 0.75 1 0.75 setrgbcolor fill newpath 0 1 0 setrgbcolor 0 0 mt 80 pu 60 pr 80 pd closepath 0.8 setlinewidth stroke newpath line1 [{0 0 mt 80 u}10 6 ] xrpt [{0 0 mt 60 r}10 8 ] yrpt 0.4 dup dup setrgbcolor /font2 /Helvetica-Bold [90 0 0 112 0 0] gonzofont font2 30 0 (A) cc %%% second figure 85 0 translate % was 90 % character is 0.4 0.4 0.4 hardwired % background is 0.75 1 0.75 /adjgam { 4 mul floor cvi [0 0.33 0.66 1] exch get } store /makeshade { %adjgam /val exch store 1 val sub -0.35 mul 0.75 add 1 val sub -0.6 mul 1 add 1 val sub -0.35 mul 0.75 add setrgbcolor 0 0 mt 10 pu 10 pr 10 pd closepath fill 10 0 translate } store gsave 0 70 translate [ 0.999 0.999 0.100 0.100 0.999 0.999 ] { makeshade} forall -60 -10 translate [ 0.999 0.800 0.007 0.007 0.800 0.999 ] {makeshade} forall -60 -10 translate [ 0.999 0.559 0.189 0.189 0.559 0.999 ] {makeshade} forall -60 -10 translate [ 0.999 0.282 0.432 0.432 0.282 0.999 ]{makeshade} forall -60 -10 translate [ 0.969 0.037 0.632 0.632 0.037 0.969 ]{makeshade} forall -60 -10 translate [ 0.779 0.000 0.000 0.000 0.000 0.779 ]{makeshade} forall -60 -10 translate [ 0.464 0.144 0.649 0.649 0.144 0.464 ]{makeshade} forall -60 -10 translate [ 0.182 0.439 0.999 0.999 0.439 0.182 ]{makeshade} forall grestore 0 1 0 setrgbcolor 0 0 mt 80 pu 60 pr 80 pd closepath 0.8 setlinewidth stroke newpath line1 [{0 0 mt 80 u}10 6 ] xrpt [{0 0 mt 60 r}10 8 ] yrpt snap1aaa restore } store /figure1x { /circproc {gsave /arraynum exch store /circvalue exch store /circshade exch store translate newpath 0 0 0.8 0 360 arc /font1 /StoneSans-Bold 0.9 gonzofont /font2 /Helvetica-Bold 0.7 gonzofont gsave circshade setgray fill grestore line2 0.33 setgray stroke font1 0 -0.3 circvalue cc newpath black font2 0 -1.5 arraynum cc 0 0 ( ) cc % eliminate strange string reuse bug? grestore } store % 32 9 showgrid line1 [{0 0 mt 1 2 rlineto 1 -2 rlineto stroke} 4 8 ] xrpt [{1 2 mt 2 2 rlineto 2 -2 rlineto stroke} 8 4 ] xrpt [{3 4 mt 4 2 rlineto 4 -2 rlineto stroke} 16 2 ] xrpt 7 6 mt 8 2 rlineto 8 -2 rlineto stroke { [-null- (52) (51) (41) (50) (30) (31) (40) (21) (42) (10) (22) (02) (00) (20) (32) (01) (12) (11) (21)] } pop 0 8 0.85 ( ) (00) circproc 15 8 0.7 (52)(01) circproc 7 6 0.7 (51) (02) circproc 23 6 0.7 (41) (03) circproc 3 4 0.75 (50) (04) circproc 11 4 0.75 (30) (05) circproc 19 4 0.75 (31) (06) circproc 27 4 0.75 (40) (07) circproc 1 2 0.75 (21) (08) circproc 5 2 0.75 (42) (09) circproc 9 2 0.75 (10) (10) circproc 13 2 0.75 (22) (11) circproc 17 2 0.75 (02) (12) circproc 21 2 0.75 (00) (13) circproc 25 2 0.75 (20) (14) circproc 29 2 0.75 (32) (15) circproc 0 -.3 0.75 (01) (16) circproc 2 -.3 0.75 (12) (17) circproc 4 -.3 0.75 (11) (18) circproc 6 -.3 0.75 (21) (19) circproc 8 -.3 0.85 ( ) (20) circproc 10 -.3 0.85 ( ) (21) circproc 12 -.3 0.85 ( ) (22) circproc 14 -.3 0.85 ( ) (23) circproc 16 -.3 0.85 ( ) (24) circproc 18 -.3 0.85 ( ) (25) circproc 20 -.3 0.85 ( ) (26) circproc 22 -.3 0.85 ( ) (27) circproc 24 -.3 0.85 ( ) (28) circproc 26 -.3 0.85 ( ) (29) circproc 28 -.3 0.85 ( ) (30) circproc 30 -.3 0.85 ( ) (31) circproc font2 0 5.85 ((reserved)) cc 26.5 7.6 (xx = array address)cc 0 0 ( ) cc % get rid of string bug } store /figure1f { save /snap3 exch def /linestring 1000 string store 9 1 translate % position on page %%%%%%%%%%%%%%%%%%% /sdat [ 11.98 10.02 11.38 10.47 10.7 10.13 11.65 10.41 11.68 10.1 11.82 10.38 11.07 10.13 11.13 10.16 10.95 10.44 9.97 10.1 11.53 10.04 12.0 10.28 11.35 10.49 11.2 9.47 9.24 9.75 10.3 10.03 11.42 9.65 9.91 9.41 8.61 9.69 11.01 9.62 12.3 9.38 11.13 9.74 9.76 9.4 8.93 9.68 9.77 9.72 10.33 10.0 9.66 9.34 9.69 9.62 8.33 9.66 9.83 9.93 11.37 9.69 11.07 9.97 9.71 9.55 9.49 9.82 9.94 9.58 7.78 9.86 9.1 10.14 10.73 9.9 10.17 10.17 10.74 9.76 8.24 9.52 6.75 9.8 9.16 10.08 7.76 9.83 8.03 10.11 11.37 10.15 9.75 9.46 9.43 9.74 7.95 9.77 9.14 10.05 11.05 9.81 10.8 9.48 11.96 9.24 8.28 9.52 7.41 9.8 7.55 9.83 8.36 10.11 7.94 9.45 8.08 9.73 7.69 9.49 5.22 9.77 7.5 10.05 8.58 9.8 8.27 10.08 8.46 9.43 7.47 9.71 7.87 9.74 8.53 10.02 11.58 9.76 11.4 9.7 11.83 9.66 11.44 9.7 9.71 9.97 10.87 10.25 11.64 10.01 9.81 9.63 8.69 9.91 8.75 9.95 9.08 10.22 12.21 10.5 11.57 10.26 10.94 9.57 10.73 9.85 8.71 9.88 9.89 10.16 11.86 9.97 9.43 9.91 8.8 9.94 9.59 10.22 9.57 9.57 9.77 9.85 8.6 9.6 6.62 9.88 8.63 10.16 8.75 9.92 8.55 10.19 11.42 10.47 9.09 9.54 8.28 9.82 7.82 9.85 8.58 10.13 11.75 9.89 12.49 10.44 11.69 9.79 11.75 10.03 12.35 9.65 10.9 9.97 12.31 8.99 12.23 9.24 12.49 9.13 11.21 9.44 11.38 8.83 8.94 9.1 9.54 9.38 9.94 9.14 8.7 9.42 12.04 9.45 11.01 8.76 9.37 9.04 10.72 9.32 8.15 9.08 7.71 9.35 9.4 9.39 9.61 9.01 9.49 9.33 11.21 9.6 11.11 9.1 9.92 9.04 8.03 9.07 8.13 9.35 11.33 9.63 9.08 9.39 11.48 8.97 7.58 9.01 8.67 9.29 8.24 9.05 7.17 9.32 9.78 9.6 11.66 8.67 10.44 8.95 11.85 8.71 8.89 8.98 8.86 9.26 11.78 9.54 9.95 9.3 11.03 9.28 12.11 9.18 8.21 9.22 8.95 9.49 12.44 8.97 8.52 9.25 7.16 9.53 9.52 9.81 10.33 9.57 10.16 8.88 8.46 9.15 6.04 9.19 5.59 9.47 9.3 9.74 9.28 9.23 6.83 9.5 8.24 9.78 12.24 10.06 11.58 9.09 10.43 8.85 7.67 9.13 8.34 9.4 8.25 9.16 6.68 9.44 9.05 9.72 11.67 9.49 9.74 9.53 11.95 9.8 12.31 9.84 9.26 9.15 9.79 8.91 6.2 9.19 6.45 9.46 10.28 9.74 8.69 9.22 6.67 9.5 8.63 9.78 11.48 9.54 8.31 8.85 5.26 9.12 6.86 9.4 11.27 9.68 10.02 8.88 4.95 9.16 3.11 9.44 7.46 9.71 10.29 9.2 7.54 9.47 8.28 9.75 11.89 10.03 8.69 9.06 10.53 9.34 9.57 8.82 5.65 9.1 5.75 9.37 9.75 9.65 8.54 9.13 6.32 9.41 8.24 9.69 11.18 9.72 9.94 9.09 11.48 9.03 10.96 9.07 9.26 9.64 12.02 9.54 8.09 9.3 7.86 9.58 7.97 9.62 9.3 9.89 12.24 9.65 9.16 9.24 9.82 9.52 8.92 9.28 7.6 9.55 9.84 9.83 11.54 9.64 8.44 9.3 8.73 9.58 9.73 9.33 8.09 9.61 9.85 9.89 9.83 8.96 7.54 9.24 8.82 9.51 6.32 9.27 5.18 9.55 8.63 9.83 7.76 9.59 8.59 9.86 10.04 9.17 6.6 9.21 6.82 9.49 8.43 9.25 6.3 9.52 8.32 9.8 10.84 9.56 11.78 9.55 10.32 9.52 11.98 9.14 12.38 9.41 11.8 9.73 12.24 9.39 10.69 9.38 12.33 9.94 9.9 9.64 11.25 8.43 10.49 8.71 9.45 8.74 9.96 9.02 11.36 9.06 11.21 9.0 11.02 8.71 9.4 8.74 10.34 9.02 11.9 8.37 12.24 8.64 8.73 8.68 10.53 8.96 9.35 8.71 9.37 8.99 11.52 8.34 9.66 8.65 11.45 8.97 12.43 8.95 11.22 8.61 9.75 8.88 11.17 9.16 10.05 8.92 9.83 9.2 12.36 9.47 10.43 8.54 9.7 8.82 7.73 8.86 8.45 9.13 10.5 8.89 9.35 9.17 12.32 8.76 8.77 8.79 9.33 8.83 8.97 9.11 10.16 8.58 7.91 8.85 9.1 9.13 10.02 8.89 9.3 9.17 8.44 8.51 6.84 8.79 9.12 9.07 6.66 8.83 6.81 9.1 9.71 9.14 9.89 8.45 9.46 8.73 9.45 8.49 6.83 8.76 8.05 9.04 9.41 8.8 8.51 9.08 11.68 9.07 11.94 8.7 11.47 8.73 11.83 9.01 11.46 9.31 11.69 8.69 9.44 8.97 10.24 9.28 9.95 8.94 9.7 9.22 12.25 9.5 9.8 8.97 10.86 9.24 9.96 8.63 8.74 8.9 7.76 8.94 8.0 9.22 9.91 9.25 11.05 8.56 10.74 8.84 9.99 8.6 7.67 8.88 8.87 9.16 9.33 8.91 8.52 9.19 10.92 9.47 11.41 8.85 11.84 9.13 11.39 8.99 12.23 8.46 10.76 8.43 % patch dots follow 4.3 9.3 5 9.4 6.3 8.8 6.5 9.7 5.8 9.7 6 9.2 6 9.6 7.2 8.8 7.2 9 7.2 9.7 7.3 9.9 8 8.6 9 8.5 10.5 9.6 10.7 10 11 10.3 ] store % Actual dots plotted = 334 + patches. % 100 100 10 setgrid % only standalone 1.15 dup scale 10 10 showgrid 0.4 0.8 0.8 setrgbcolor 1 setlinecap 1 setlinejoin line3 0 0 mt 10 u 10 r 10 d 10 l 0.25 0.25 0.25 setrgbcolor gsave 0 0 mt 0 10 rlineto 10 0 rlineto 0 -10 rlineto closepath clip gsave -3.2 -0.8 translate 0.87 dup scale 0 2 sdat length 2 sub {/cposn exch store sdat cposn 1 add get sdat cposn get 1 0 0 setrgbcolor 0.2 setgray 0.9 settint 0.40 setgray mt dot } for grestore grestore /cstretch 0 store /sstretch 0.015 store black /font1 /Helvetica-Bold 0.9 gonzofont font1 5 -1.3 (amplitude) cc gsave -0.8 5 translate 90 rotate 0 0 (distortion) cc grestore ypos snap3 restore /ypos exch def } def %%%%%% /figure1dfhgd { /figadvance 10 store save /snap3 exch def /linestring 1000 string store %%%%%%%%%%%%%%%%%%% electronics begin bestgray -0.0 -2.6 translate % reposition on page % 0 0 10 setgrid already there % 33 14 showgrid /cstretch 0.02 def /sstretch 0.0 def /kern 0.1 def /yinc 1.0 def /red {0 settint} def /blue {0.67 settint} def /purple {0.75 settint} def /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] gonzofont /font0 /Helvetica-bold [1 0 0 0.8 0 0 ] gonzofont /font1 /Helvetica 0.75 gonzofont /font4 /Helvetica 0.6 gonzofont /font3 /Helvetica-Bold 0.75 gonzofont /font2 /Helvetica-Oblique 0.75 gonzofont /font5 /Helvetica-Bold 1.1 gonzofont /font6 /Helvetica [2 0 0 1.4 0 0] gonzofont /font7 /Helvetica-Oblique 0.75 gonzofont /font8 /Symbol 0.75 gonzofont /font9 /Helvetica [.6 0 0 .6 -.15 .4] gonzofont /font- /Helvetica-Bold [0.4 0 0 0.55 0 0] gonzofont /kern 0.15 def /tabs [16.5] def /txtwide 29 def font1 /tabs [17.5] def font1 /yinc 0.9 def line1 bestgray black 22 6 mt 3 d 5 rx circ1 26 3 mt rarrow 21 6 mt 1 d 6 rx circ1 26 5 mt rarrow 20 6 mt 1.5 d 4 rx 2 ux 3 r circ1 26 6.5 mt rarrow 19 6 mt 2 d 5.5 rx 4 ux 2.5 r circ1 26 8 mt rarrow 17 10 mt 1 u 5 l 8 d 4 l circ1 9.5 3 mt rarrow % low priority 18 6 mt 1.5 d ground 17 6 mt 2.5 d 7 lx 1 u 2 l circ1 9.5 4.5 mt rarrow 16 6 mt 2 d 5.5 lx 2 u 2.5 l circ1 9.5 6 mt rarrow 15 6 mt 1.5 d 4 lx 3 u 3 l circ1 9.5 7.5 mt rarrow 14 6 mt 1 d 2.5 lx 4 u 3.5 l circ1 9.5 9 mt rarrow 21 10 mt 2 ux 3 r 2 d 3 r circ1 26 13 mt rarrow 20 10 mt 2.5 u 4.5 r 1 d 2.5 r circ1 26 11.5 mt rarrow 19 10 mt 3 u 8 r circ1 26 10 mt rarrow 18 10 mt 1.5 u circ1 % +5v 16 10 mt 3 ux circ1 16 12.3 mt darrow 15 10 mt 2 ux 7 l circ1 9.5 12 mt rarrow 14 10 mt 1.5 ux 2.5 l 1 d 3.5 l circ1 9.5 10.5 mt rarrow beige 14 6 moveto 18 (MS28D-05X) (IN1 IN0 XIN IN6 +5V /DA /DB /DC NC) (IN2 IN3 IN4 IN5 GND DA DB DC SYNC) dipdraw font4 22 10.65 (NC) cc font1 18 12 (+5V) cc font1 /overstrikeht 0.55 store 27.7 13 0.3 sub (Delta "A" complement) cl 27.7 11.5 0.3 sub (Delta "B" complement) cl 27.7 10 0.3 sub (Delta "C" complement) cl 27.7 8 0.3 sub (Delta "A" true output) cl 27.7 6.5 0.3 sub (Delta "B" true output) cl 27.7 5 0.3 sub (Delta "C" true output) cl 27.7 3 0.3 sub (Zero degrees sync) cl 16 14.7 (10 MHz per 60 Hz) cc 16 13.8 (input clock ref) cc 7.3 2.7 (high ~|jOR|j~ 0-100 amp bit 6) cr 7.3 4.2 (high ~|jOR|j~ 0-100 amp bit 5) cr 7.3 5.7 (high ~|jOR|j~ 0-100 amp bit 4) cr 7.3 7.2 (slew up ~|jOR|j~ 0-100 amp bit 3) cr 7.3 8.7 (slew down ~|jOR|j~ 0-100 amp bit 2) cr 7.3 10.2 (step up ~|jOR|j~ 0-100 amp bit 1) cr 7.3 11.7 (step down ~|jOR|j~ 0-100 amp bit 0) cr end ypos snap3 restore /ypos exch def } def %%%%%%%%%%%%%% /figure2 { /figadvance 10 store save /snap3 exch def /linestring 1000 string store %%%%%%%%%%%%%%%%%%% electronics begin bestgray line1 0 -1 translate % reposition on page % 0 0 10 setgrid already there % 33 14 showgrid /onecoil { 0 0 mt 1 pr 8 hcoil 0.9 r} store /delta {gsave translate gsave onecoil grestore gsave 60 rotate onecoil grestore gsave 4 6.928 translate -60 rotate onecoil grestore 0 0 mt circ1 4 7 mt circ1 8 0 mt circ1 grestore } store /box35 {gsave /callout exch store translate 0 -1.5 mt 2.5 pl 3 pu 5 pr 3 pd closepath gsave 0.8 setgray fill grestore gsave 0.33 setgray line3 stroke grestore black 0 0.1 callout cc grestore} store /font1 /Helvetica 0.8 gonzofont /font2 /Helvetica-Bold 1 gonzofont /hbd {gsave translate 0 2.5 mt 5 d ground 0 2.5 mt circ1 /yinc 0.9 store 0 0 mt 3 l 6 r 0 0 (half bridge\ndriver) box35 grestore }store font1 2 3 mt 3 l circ1 1 3 mt rarrow 4 3 mt 5 r 2 d 13 r 2 u 6 7 mt 7 l circ1 1 7 mt rarrow 10 11 mt 11 l circ1 1 11 mt rarrow 14 11 mt 4 r 1 d 11 7 mt 1 r 4 d 2 r 14 3 delta 4.5 3 hbd 8 7 hbd 11.5 11 hbd font2 -2.3 2.6 (DC) cc -2.3 6.6 (DA) cc -2.3 10.6 (DB) cc 14.5 7 (a) cc 21.4 7 (b) cc 18 1.7 (c) cc 3.5 5.3 (+v) cc 6.8 9.3 (+v) cc 10.4 13.3 (+v) cc 13.5 1.7 (TA) cc 23.3 1.7 (TC) cc 18 11.5 (TB) cc end ypos snap3 restore /ypos exch def } def %%%%%%% core defs for magsin plots %%%%%%% core defs for magsin plots /coredefs { /shakendelta28 [ [ [868 0 0 1730 0 0 0 868] 0.000000 0.0000000 3472 ] % shortened [ [103 1242 151 63 211 1001 698 3] 0.0439439 1.000650 3472 ] ] def /aa mark shakendelta28 {0 get 0 get 2 mul} forall ] store % double a /bb mark shakendelta28 {0 get 1 get} forall ] store /cc mark shakendelta28 {0 get 2 get} forall ] store /dd mark shakendelta28 {0 get 3 get} forall ] store /ee mark shakendelta28 {0 get 4 get} forall ] store /ff mark shakendelta28 {0 get 5 get} forall ] store /gg mark shakendelta28 {0 get 6 get} forall ] store /hh mark shakendelta28 {0 get 7 get 2 mul } forall ] store % double h % aa == bb == cc == dd == ee == ff == gg == hh == /amplitude 53 store /delaypattern [ (aa)(bb)(cc)(dd)(ee)(ff)(gg) (hh)(gg)(ff)(ee)(dd)(cc)(bb) (aa)(bb)(cc)(dd)(ee)(ff)(gg) (hh)(gg)(ff)(ee)(dd)(cc)(bb) (aa)(bb)(cc)(dd)(ee)(ff)(gg) (hh)(gg)(ff)(ee)(dd)(cc)(bb) (aa)(bb)(cc)(dd)(ee)(ff)(gg) (hh)(gg)(ff)(ee)(dd)(cc)(bb) (aa)(bb)(cc)(dd)(ee)(ff)(gg) (hh)(gg)(ff)(ee)(dd)(cc)(bb) (aa)(bb)(cc)(dd)(ee)(ff)(gg) (hh)(gg)(ff)(ee)(dd)(cc)(bb) ] store /portpattern [ <2B> <07> <2B><2B> <2B> <2B> pop <07> <2B><69> <69><2B><69> <2B><69><2B> <07> <2B><69> <69><45> <07> <45><69><45> <69><45><69> <69><45> pop <07> <45> <45> <45><45> <07> <45> <64> <07> <86><86> <86> <86> pop <07> <86> <86> <86><86> <07> <86> ] store % 100 100 10 setgrid % 30 60 showgrid /hscale 30 3472 12 mul div store /vscale 4 store /phasea {gsave translate /port 0 store line1 0 0 mt 0 1 portpattern length 1 sub {/posn exch store portpattern posn get 0 get 2 12 string cvrs (10000000) exch mergestr 100 string cvs % dereference? dup length 1 sub port sub get 48 sub /state exch store delaypattern posn get cvn load amplitude get /stall exch store currentpoint exch pop cvi /nowat exch store nowat 0 eq state 0 ne and {0 vscale rlineto} if nowat 0 ne state 0 eq and {0 vscale neg rlineto} if stall hscale mul 0 rlineto } for stroke grestore} store %%%%%%%%% /phaseb {gsave translate /port 1 store /prev false store line1 0 0 mt 0 1 portpattern length 1 sub {/posn exch store portpattern posn get 0 get 2 12 string cvrs (00000000) exch mergestr dup length 1 sub port sub get 48 sub /state exch store delaypattern posn get cvn load amplitude get /stall exch store currentpoint exch pop cvi /nowat exch store nowat 0 eq state 0 ne and {0 vscale rlineto} if nowat 0 ne state 0 eq and {0 vscale neg rlineto} if stall hscale mul 0 rlineto } for stroke grestore} store %%%%%%%%% /phasec {gsave translate /port 2 store line1 0 0 mt 0 1 portpattern length 1 sub {/posn exch store portpattern posn get 0 get 2 12 string cvrs (00000000) exch mergestr dup length 1 sub port sub get 48 sub /state exch store delaypattern posn get cvn load amplitude get /stall exch store currentpoint exch pop cvi /nowat exch store nowat 0 eq state 0 ne and {0 vscale rlineto} if nowat 0 ne state 0 eq and {0 vscale neg rlineto} if stall hscale mul 0 rlineto } for stroke grestore} store /halfwave {gsave translate /port 3 store line1 1 0 0 setrgbcolor 0 0 mt 0 1 portpattern length 1 sub {/posn exch store portpattern posn get 0 get 2 12 string cvrs (00000000) exch mergestr dup length 1 sub port sub get 48 sub cvi /state exch store delaypattern posn get cvn load amplitude get /stall exch store currentpoint exch pop cvi /nowat exch store % state == % nowat == % stall == nowat 0 eq state 0 ne and {0 vscale rlineto} if nowat 0 ne state 0 eq and {0 vscale neg rlineto} if stall hscale mul 0 rlineto % currentpoint == == % (\n) print flush } for stroke grestore} store %%%%%%%%%%%% /AminusC {gsave translate /Cport 2 store /Aport 0 store line1 0 0 mt 0 1 portpattern length 1 sub {/posn exch store portpattern posn get 0 get 2 12 string cvrs (00000000) exch mergestr dup length 1 sub Cport sub get 48 sub cvi 2 div /Cstate exch store portpattern posn get 0 get 2 12 string cvrs (00000000) exch mergestr dup length 1 sub Aport sub get 48 sub cvi 2 div /Astate exch store /nustate Astate Cstate sub store delaypattern posn get cvn load amplitude get /stall exch store currentpoint pop nustate vscale mul lineto stall hscale mul 0 rlineto % currentpoint == == % (\n) print flush } for stroke grestore} store %%%%%%%%%%% /BminusA {gsave translate /Bport 1 store /Aport 0 store line1 0 0 mt 0 1 portpattern length 1 sub {/posn exch store portpattern posn get 0 get 2 12 string cvrs (00000000) exch mergestr dup length 1 sub Aport sub get 48 sub cvi 2 div /Astate exch store portpattern posn get 0 get 2 12 string cvrs (00000000) exch mergestr dup length 1 sub Bport sub get 48 sub cvi 2 div /Bstate exch store /nustate Bstate Astate sub store delaypattern posn get cvn load amplitude get /stall exch store currentpoint pop nustate vscale mul lineto stall hscale mul 0 rlineto % currentpoint == == % (\n) print flush } for stroke grestore} store %%%%%%%%%%% /CminusB {gsave translate /Cport 2 store /Bport 1 store line1 0 0 mt 0 1 portpattern length 1 sub {/posn exch store portpattern posn get 0 get 2 12 string cvrs (00000000) exch mergestr dup length 1 sub Bport sub get 48 sub cvi 2 div /Bstate exch store portpattern posn get 0 get 2 12 string cvrs (00000000) exch mergestr dup length 1 sub Cport sub get 48 sub cvi 2 div /Cstate exch store /nustate Cstate Bstate sub store delaypattern posn get cvn load amplitude get /stall exch store currentpoint pop nustate vscale mul lineto stall hscale mul 0 rlineto } for stroke grestore} store } def %%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%% /figure3hjlk {/figadvance 10 store save /snap3 exch def /linestring 1000 string store %%%%%%%%%%%%%%%%%%% electronics begin bestgray line1 coredefs -3.8 -1.8 translate % position on page % 30 12 showgrid /vscale 3 store 1 0 1 setrgbcolor 1 1 1 setrgbcolor % nasty bug dont know why dribbles down 0 10.3 phaseb 1 0 1 setrgbcolor 0 9 phasea 0 0 phaseb 0 4.5 phasec 30 0 mt 3 u % patch end black /font2 /Helvetica-Bold 1 gonzofont -1 1 (DC) cr % we have a cc conflict!!!! -1 5.5 (DB) cr -1 10 (DA) cr % halfwave % AminusC % BminusA % CminusB end ypos snap3 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%% /figure4 {/figadvance 15 store save /snap3 exch def /linestring 1000 string store %%%%%%%%%%%%%%%%%%% electronics begin bestgray line1 coredefs -3 -0.5 translate % position on page % 30 12 showgrid /vscale 4 store %0 9 phasea 1 0 0 setrgbcolor 30 0 mt 3 u % patch end %0 0 phaseb %0 4.5 phasec 1 0 1 setrgbcolor 0 9.2 2 add AminusC 0 0.2 BminusA 0 4.7 1 add CminusB black /font2 /Helvetica-Bold 1 gonzofont /overstrikeht 0.85 store -1 0 (DC - DA) cr % we have a cc conflict!!!! -1 4.5 1 add (DB - DC) cr -1 9 2 add (DA - DB) cr % halfwave % AminusC % BminusA % CminusB end ypos snap3 restore /ypos exch def } def /figure5 { save /snap3 exch def /linestring 1000 string store %%%%%%%%%%%%%%%%%%% electronics begin /circ1b {gsave currentpoint newpath 0.20 0 360 arc % whitefill gsave beige 0.88 setgray fill grestore black line1 stroke grestore} def %for circle bestgray line1 coredefs -4.5 -1 translate % position on page % 30 12 showgrid /font2 /Helvetica-Bold 1 gonzofont /overstrikeht 0.70 store /yinc 1.2 store /anet {gsave translate 0 6 mt 1.5 r 6 d 1.5 l circ1b 0 6 mt circ1b 1.5 1.5 vresistor 1.5 4.5 vresistor 1.5 3 mt dot 1.5 3 mt 1.5 r circ1b font2 -0.7 5.5 (DA) cr % no cc here! -0.7 -0.5 (D|oB|o) cr font1 3.8 3.5 (phase a\noutput) cl grestore } store /bnet {gsave translate 0 6 mt 1.5 r 6 d 1.5 l circ1b 0 6 mt circ1b 1.5 1.5 vresistor 1.5 4.5 vresistor 1.5 3 mt dot 1.5 3 mt 1.5 r circ1b font2 -0.7 5.5 (DB) cr % no cc here! -0.7 -0.5 (D|oC|o) cr font1 3.8 3.5 (phase b\noutput) cl grestore } store /cnet {gsave translate 0 6 mt 1.5 r 6 d 1.5 l circ1b 0 6 mt circ1b 1.5 1.5 vresistor 1.5 4.5 vresistor 1.5 3 mt dot 1.5 3 mt 1.5 r circ1b font2 -0.7 5.5 (DC) cr % no cc here! -0.7 -0.5 (D|oA|o) cr font1 3.8 3.5 (phase c\noutput) cl grestore } store -2 0 mt 10.7 pu 33.2 pr 10.7 pd closepath 0.88 setgray fill black 1.5 3 anet 12 3 bnet 22.5 3 cnet font1 9.5 0.8 (All resistors 2.2K.) cl end ypos snap3 restore /ypos exch def } def %%%%%%%% %%%%%%%% pc trace field routines %%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%% % /hue2rgb.psl %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Code to convert a hue value into a RGB triad of adjustable % saturation and brightness. %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Picks one of six color bars based upon dominant primary % service utils... /plotsat 0.8 store % color saturation 0-1 1 = full saturation /plotbrt 1.0 store % color brightness 0-1 1=full brightness /bkg {1 plotsat sub} store /upset { 1 bkg sub % the available total sat shift for this color &cwt mul % the desired shift bkg add % plus the background } store /downset { 1 bkg sub % the available total sat shift for this color 1 &cwt sub mul % the desired shift bkg add % plus the background } store % main hue to RGB routine... /huetorgb {dup /currenttint exch store % save currenttint 5.999 mul dup floor cvi /&cbar exch store % save case 0-5 &cbar floor sub /&cwt exch store % save posn into case [ % array of case cases { 1 upset bkg} % red dominant hue 0 to .166 { downset 1 bkg} % green dominant hue .166 to .333 { bkg 1 upset} % green dominant hue .333 to .500 { bkg downset 1} % blue dominant hue .500 to .666 { upset bkg 1} % blue dominant hue .666 to .833 { 1 bkg downset} % red dominant hue .833 to .999 ] &cbar get exec 255 mul plotbrt mul cvi /curblue exch store 255 mul plotbrt mul cvi /curgreen exch store 255 mul plotbrt mul cvi /curred exch store curred curgreen curblue } def %%%%%%%%%%%%%%%%%%%%%%%%%%%% % /makestring %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Converts an array of 0-255 integers into a string. % Used to get from array to string to image %%%%%%%%%%%%%%%%%%%%%%%%%%%% /makestring {dup length string dup /NullEncode filter 3 -1 roll {1 index exch write} forall pop} def %%%%%%%%%%%%%%%%%%%%%%%%%%%% % /field2image %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Converts a by-columns array of arrays into a series of % row strings as requested by an image proc. %%%%%%%%%%%%%%%%%%%%%%%%%%%% % requires initially zeroed /arraycount pointer /field2image { mark % start row array 0 1 field length 1 sub % get row voltage values {/fcol exch store field fcol get arraycount get} for ] % complete voltage row array /arraycount arraycount % advance pointer 1 add store mark % start scaled hue array exch {1000 sub abs 1667 div % 1000=red 0.000 0=blue 0.667 huetorgb } forall ] % and complete makestring } store % and convert to %%%%%%%%%%%%%%%%%%%%%%%%%%%% % /fieldasimage %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Converts a by-columns array of arrays into an image for % compact storage and fast display. %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Assumes a RGB color mode /imgwide {field length} store % find by-columns array width /imghi {field 0 get length} store % fomd bu-collumns array height /fieldasimage { << % begin RGB image dictionary /arraycount 0 store % new counter to deliver row strings /ImageType 1 % usual image stuff /Width imgwide /Height imghi /BitsPerComponent 8 /MultipleDataSources false /Interpolate false /Decode [ 0 1 0 1 0 1] /ImageMatrix [imghi 0 0 imghi 0 0] % work UP from bottom /DataSource {field2image} % MUST be deferred!!! proc >> image } store %%%%%%%%%%%%%%%%%%%%%%%%%%%% % /fieldplot %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Positions and draws a field image at a specified page location. %%%%%%%%%%%%%%%%%%%%%%%%%%%% % requires x and y position on stack top /plotsat 0.8 store % saturation 0-1 1=full saturation /plotbrt 1.0 store % brightness 0-1 1=full brightness /fieldplot { /DeviceRGB setcolorspace % set color mode gsave translate % position on page imghi dup scale % scale to size fieldasimage % place image grestore} store %%%%%%%%%%%%%%%%%%%%%%%%%%%% % /resetbound %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Resets a boundary for the field array mapped into a unit square. %%%%%%%%%%%%%%%%%%%%%%%%%%%% % requires {boundaryproc} boundaryvalue on stack. /resetbound { gsave /boundval exch store % save boundary value to be reset newpath { field length % map reset proc to array space field 0 get length dup scale} pop exec % execute unit square fill proc /fieldhi field 0 get % update field column count length store /fieldwd field % update field row count length store 0 1 fieldhi 1 sub { % scan each array element position /curvpos exch store 0 1 fieldwd 1 sub { % both x and y /curhpos exch store curvpos 0.5 add curhpos 0.5 add infill % does array location need update? { field curvpos get % yes, reset boundary value curhpos boundval put } if } for} for grestore} store %%%%%%%%%%%%%%%%%%%%%%%%%%%% % /initfield %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Initializes a field of column arrays %%%%%%%%%%%%%%%%%%%%%%%%%%%% % input with rows columns value on stack /initfield {/mtval exch store % save empty value /ccc exch store % save number of columns /rrr exch store % save number of rows mark % start array rrr { % for rrr arrays mark ccc {mtval} repeat % place ccc data values each ] } repeat ] /field exch store } store %%%%%%%%%%%%%%%%%%%%%%%%%%%% % /quadaverage %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Averages internal field points. Solves Laplacian when repeated. %%%%%%%%%%%%%%%%%%%%%%%%%%%% /quadaverage { 1 1 field length 2 sub { % for each column /hhh exch store 1 1 field 0 get length 2 sub { % for each row /vvv exch store field hhh get vvv 1 add get % two vertical points field hhh get vvv 1 sub get add field hhh 1 sub get vvv get % two horizontal points field hhh 1 add get vvv get add add 4 div % new average field hhh get exch vvv exch put % and replace } for } for % complete loops } bind def %%%%%%%%%%%%%%%%%%%%%%%%%%%% % A boundary proc library %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Example boundary values as unit square fill procs %%%%%%%%%%%%%%%%%%%%%%%%%%%% % areas /cencirc {newpath 0.5 0.5 0.126 0 360 arc} store % a centered circle of 25% volume /lowquart {newpath 0 0 mt 0.25 pu 1 pr 0.25 pd closepath} store % bottom quarter /hiquart {newpath 0 0.75 mt 0.25 pu 1 pr 0.25 pd closepath} store % top quarter % try full size /cencirc {newpath 100 100 25.3 0 360 arc} store % try full size /lowquart {newpath 0 0 mt 50 pu 200 pr 50 pd closepath} store % bottom quarter /hiquart {newpath 0 150 mt 50 pu 200 pr 50 pd closepath} store % top quarter /swcorner {newpath 0 0 mt 100 pu 100 pr 100 pd closepath} store % lines /edgeset1 {mark 50 {0} repeat 100 {dup 10 add} repeat 50 {1000} repeat ]} store %%% % create a 200 x 200 array of data value 500 % 200 200 500 initfield % temporary shading % create a boundary resetter for busbar hole /fixbounds { {lowquart} 0 resetbound % low quarter at blue zero {cencirc} 500 resetbound % mid circle at half amplitude {hiquart} 1000 resetbound % high quarter at red 1000 } store /busbarclip { newpath 100 100 25 0 360 arc 0 50 mt 200 pr 100 pu 200 pl 100 pd } store /pccornerclip {0 100 mt 100 pu 200 pr 200 pd 100 pl 100 pu 100 pl} store /fixbounds { % for printed circuit corner {lowquart} 0 resetbound % low quarter at blue zero {cencirc} 500 resetbound % mid circle at half amplitude {hiquart} 1000 resetbound % high quarter at red 1000 } store /fixbounds { {swcorner} 0 resetbound % zero southeast corner } store % fixbounds { % for busbar field 0 edgeset1 put field dup length 1 sub edgeset1 put } pop % for printed circuit corner /setleftedge1 { field 0 mark 100 {0} repeat 100 {dup 10 add} repeat ] put} store /settopedge1 {0 1 field length 1 sub { /cccc exch store field cccc get 199 1000 put } for } store /setrightedge1 {field 199 mark 200 {1000} repeat ] put } store /setbottomedge1 { /val 0 store 100 1 field length 1 sub {/ccccc exch store field ccccc get 0 val put /val val 10 add store } for } store /fixbounds { 0 1 100 {/rr exch store % right field rr get 100 0 put } for 0 1 100 {/cc exch store field 100 get cc 0 put} for } store /figure1 { -1 -6.5 translate 0.1 dup scale 200 200 500 initfield setleftedge1 settopedge1 setrightedge1 setbottomedge1 fixbounds fastart {10}{1000} ifelse % set print speed { fixbounds quadaverage ( ) print flush field 120 get 120 get == } repeat gsave % 100 100 translate pccornerclip closepath gsave eoclip gsave 0 0 fieldplot grestore grestore stroke grestore } store %%%%%%%%% % figure two and procs busbar /busbarclip { newpath 100 100 35 0 360 arc 0 50 mt 200 pr 100 pu 200 pl 100 pd } store /setleft {/val 0 store 50 1 150 {field 0 get exch val put /val val 10 add store} for} store /setright {/val 0 store 50 1 150 {field 199 get exch val put /val val 10 add store} for} store /settop {0 1 199 {field exch get 150 1000 put} for } store /setbot {0 1 199 {field exch get 50 0 put} for } store /cencirc {newpath 100 100 35 0 360 arc} store /figure2 { -1 -4.5 translate 0.1 dup scale 200 200 500 initfield % temporary shading setleft setright settop setbot {cencirc} 500 resetbound stopwatchon fastart {20}{2000} ifelse { settop setbot {cencirc} 500 resetbound quadaverage ( ) print flush field 100 get 140 get == } repeat stopwatchoff % field == gsave % 100 100 translate busbarclip closepath gsave eoclip gsave 0 0 fieldplot grestore grestore stroke grestore } store %%%%%%% % figure three and procs three phase /figure3 { -1 -0.0 translate 0.1 dup scale % begin threephase only code /threephaseclip { newpath 100 100 100 0 360 arc 130 150 moveto 100 150 30 0 360 arc 100 50 0.866 mul add 30 add 80 moveto 100 50 0.866 mul add 100 50 .5 mul sub 30 0 360 arc 100 50 0.866 mul sub 30 add 80 moveto 100 50 0.866 mul sub 100 50 .5 mul sub 30 0 360 arc } store /threephaseoutside {newpath 100 100 100 0 360 arc 0 0 mt 200 pu 200 pr 200 pd 200 pl } store /onehole {newpath 100 150 30 0 360 arc} store /twohole {newpath 100 50 0.866 mul add 100 50 .5 mul sub 30 0 360 arc} store /threehole {newpath 100 50 0.866 mul sub 100 50 .5 mul sub 30 0 360 arc} store gsave % 100 100 translate 200 200 600 initfield % temporary shading {threephaseoutside} 500 resetbound {onehole} 1000 resetbound {twohole} 150 resetbound {threehole} 150 resetbound stopwatchon fastart {10}{2000} ifelse { % fixbounds % settop % setbot % {cencirc} 500 resetbound {threephaseoutside} 500 resetbound {onehole} 1000 resetbound {twohole} 150 resetbound {threehole} 150 resetbound quadaverage ( ) print flush field 100 get 110 get == } repeat stopwatchoff % field == threephaseclip closepath gsave eoclip gsave 0 0 fieldplot grestore grestore stroke % 100 100 50 0 360 arc stroke grestore } store %%%%%%%%%%%% %%%%%%%%%%%% end pc trace field routines /figureoneauto { /figadvance 13.5 store save /snap1a exch store xpos 8 add ypos figadvance sub translate beige figure1 snap1a restore /ypos ypos figadvance sub yinc sub store } store /figuretwoauto { /figadvance 11 store save /snap2a exch store xpos 8 add ypos figadvance sub translate beige figure2 snap2a restore /ypos ypos figadvance sub yinc sub store } store /figurethreeauto { /figadvance 18 2 add store save /snap3a exch store xpos 8 add ypos figadvance sub translate beige figure3 snap3a restore /ypos ypos figadvance sub yinc sub store } store /figurethreeautox { save /snap3ax exch store beige 0 1000 translate figure3 snap3ax restore } store /figurefourauto { /figadvance 16 store save /snap4a exch store xpos 8 add ypos figadvance sub translate beige figure4 snap4a restore /ypos ypos figadvance sub yinc sub store } store /figurefiveauto { /figadvance 10 store save /snap5a exch store xpos 8 add ypos figadvance sub translate beige figure5 snap5a restore /ypos ypos figadvance sub yinc sub store } store /figure2x { 0.50 settint /font0 /StoneSans-Bold 6 gonzofont font0 0 1 1 setrgbcolor 10 3 (54) cc 20 25 showgrid line3 0 1 1 setrgbcolor [{-0.5 0 mt 20.5 r} 10 3] yrpt [{0 -0.5 mt 25.5 u} 10 3] xrpt 0 25 mt 20 r black 0 0 0 setrgbcolor 0 2 ex54 length 2 sub {/posn2 exch store ex54 posn2 get ex54 posn2 1 add get moveto dot} for 1 0 1 setrgbcolor 0 2 ex54good length 2 sub {/posn2 exch store ex54good posn2 get ex54good posn2 1 add get moveto dot} for 1 0.5 0 setrgbcolor ex54want 0 get ex54want 1 get mt dot 1 0 0 setrgbcolor ex54orig 0 get ex54orig 1 get mt dot /font1 /StoneSans-Bold 0.9 gonzofont font1 0.3 0.3 0.3 setrgbcolor 0 -1.5 (0.535) cc 10 -1.5 (0.540) cc 20 -1.5 (0.545) cc -0.9 0 0.3 sub (0.00%) cr -0.9 10 0.3 sub(0.05%) cr -0.9 20 0.3 sub (0.10%) cr % 11.55 18.2 (= raw quant) cl % 11.55 17.2 (= best neighbor) cl /font2 /StoneSans-Bold 1.1 gonzofont font1 10 -2.7 (Amplitude) cc gsave -5.2 10 translate 90 rotate 0 0 (Unfiltered THD 2|j-|j22)cc grestore /yinc 1.2 store 24.3 11.5 (Nearby\nquantized\nAmplitude 54\noptions) cc } store %%%%%%%%% figures for fun with fields %%%%% /emptyfield {save /mtsnap exch store gsave translate showblank { 0 0 mt fieldhi pu fieldwi pr fieldhi pd closepath aqua 0.85 setgray fill} if black 0.3 setlinewidth 0 -3.5 mt fieldhi 3 add u -0.5 0 mt fieldwi 1 add r fieldwi -3.5 mt fieldhi 3 add u /cstretch 0 store /sstretch 0 store /kern 1 store /font- /Symbol 8.5 gonzofont /font1 /Helvetica 8.5 gonzofont font- black 0 -13(|1(|jx|j=|-|j0|j)) cc fieldwi -13 (|1(|jx|j=|j|-p|j)) cc fieldwi 2 div fieldhi 4 add (|-f|1|j=|j1000|j|jsin|j(|jx|j) volts) cc fieldwi 2 div -13 (|1zero volts) cc gsave -5 fieldhi 2 div translate 90 rotate 0 0 (|1zero volts) cc grestore gsave fieldwi 12 add fieldhi 2 div translate 90 rotate 0 0 (|1zero volts) cc grestore grestore mtsnap restore} store /field [ [0 0.0 % shortened .0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0 0.0 0.0 0.0 0 3.06152e-14 6.12303e-14 9.18455e-14 1.22461e-13] ] store /adjtint { 1000 sub abs 1000 div 0.66667 mul } store /plotfield {/sf exch store gsave translate sf dup scale field length /vsize exch store field 0 get length /hsize exch store 0 1 vsize 1 sub { /vpos exch store 0 1 hsize 1 sub { /hpos exch store vpos hpos moveto 1 pd 1 pr 1 pu closepath field vpos get hpos get adjtint 0.7 1 sethsbcolor fill } for % each horizontal pixel } for % each row grestore } store /w {setlinewidth} store /n {newpath} store /m {moveto} store /l {lineto} store /S {stroke} store /sc {setrgbcolor} store /equipot { 0.149994 w n 100 216 m 107 216 l 108 212.951 l 109 204.968 l { % shortened 104.988 208.47 l 103.99 208.411 l 102.991 208.366 l 101.991 208.337 l 100.991 208.322 l } pop S } store /grad { % shortened n 140 215 m 337.619 193.998 l 338.618 193.951 l 339.617 193.919 l S } store /figure1tyui { /fieldhi 117 store /fieldwi 241 store /showblank true store gsave 0.1 dup scale -35 5 emptyfield grestore} store /figure2hjl { /fieldhi 117 store /fieldwi 241 store gsave 0.1 dup scale -35 5 1 plotfield grestore /showblank false store gsave 0.1 dup scale -35 5 emptyfield grestore} store /figure3yui { /fieldhi 117 store /fieldwi 241 store gsave 0.1 dup scale -35 5 1 plotfield -100 -100 translate -35 5 translate equipot grestore /showblank false store gsave 0.1 dup scale -35 5 emptyfield grestore} store /figure4 { /fieldhi 117 store /fieldwi 241 store gsave 0.1 dup scale -35 5 1 plotfield -100 -100 translate -35 5 translate equipot grad grestore /showblank false store gsave 0.1 dup scale -35 5 emptyfield grestore} store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /burpwide 29.5 store /burplebox3 {save /burp1 exch store xpos ypos translate -1 .2 mt 3.5 yinc mul .4 add pd burpwide pr 3.5 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def /burplebox2 {save /burp1 exch store xpos ypos translate -1 .2 mt 2.5 yinc mul .4 add pd burpwide pr 2.5 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def /burplebox2.5 {save /burp1 exch store xpos ypos translate -1 .2 mt 3 yinc mul .4 add pd burpwide pr 3 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def /burplebox4 {save /burp1 exch store xpos ypos translate -1 .2 mt 4.5 yinc mul .4 add pd burpwide pr 4.5 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def /burplebox4.5 {save /burp1 exch store xpos ypos translate -1 .2 mt 5 yinc mul .4 add pd burpwide pr 5 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def /burplebox5w {save /burp1 exch store xpos ypos translate -1 .2 mt 5.5 yinc mul .4 add pd burpwide pr 5.5 yinc mul .4 add pu closepath 0.9 setgray fill true {special5 } if burp1 restore } def /burpcom {save /burpx exch store /bht exch store save /burp1 exch store xpos ypos translate -1 .2 mt bht yinc mul .4 add pd burpwide pr bht yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore} store /burpwidew 32 store /burpcomw {save /burpx exch store /bht exch store save /burp1 exch store xpos 1 sub ypos translate 0 .2 mt bht yinc mul .4 add pd burpwidew pr bht yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore} store /burplebox3.5 {4 burpcom} store /burplebox5 {5.5 burpcom} store /burplebox5.5 {6 burpcom} store /burplebox6 {6.5 burpcom} store /burplebox6.5 {7 burpcom} store /burplebox7 {7.5 burpcom} store /burplebox7.5 {8 burpcom} store /burplebox8 {8.5 burpcom} store /burplebox8.5 {9 burpcom} store /burplebox9 {9.5 burpcom} store /burplebox9.5 {10 burpcom} store /burplebox10 {10.5 burpcom} store /burplebox10.5 {11 burpcom} store /burplebox11 {11.5 burpcom} store /burplebox11.5 {12 burpcom} store /burplebox12 {12.5 burpcom} store /burplebox11w {11.5 burpcomw} store /burplebox12.5 {13 burpcom} store /burplebox13 {13.5 burpcom} store /burplebox13.5 {14 burpcom} store /burplebox14 {14.5 burpcom} store /burplebox14.5 {15 burpcom} store /burplebox15{15.5 burpcom} store /burplebox15.5{16 burpcom} store /burplebox16 {16.5 burpcom} store /burplebox16.5 {17 burpcom} store /burplebox18 {18.5 burpcom} store /burplebox18.5 {19 burpcom} store /burplebox19 {19.5 burpcom} store /burplebox21.5 {22 burpcom} store /burplebox22{22.5 burpcom} store /burplebox25{25.5 burpcom} store /burplebox25.5{26 burpcom} store /burplebox26{26.5 burpcom} store /burplebox27{27.5 burpcom} store /burplebox28 {28.5 burpcom} store /burplebox29.5 {30 burpcom} store /burplebox34 {34.5 burpcom} store /burplebox38 {38.5 burpcom} store /burplebox38.5{39 burpcom} store /burplebox40{40.5 burpcom} store /burplebox40.5{41 burpcom} store /burplebox42.5{43 burpcom} store % nearly a full page /burplebox34w{34.5 burpcomw} store /burplebox34.5w{35 burpcomw} store /burplebox38w{38.5 burpcomw} store /burplebox38.5w{39 burpcomw} store /burplebox40w{40.5 burpcomw} store /burplebox17 {save /burp1 exch store xpos ypos translate -1 .2 mt 17.5 yinc mul .4 add pd burpwide pr 17.5 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def /burplebox20 {save /burp1 exch store xpos ypos translate -1 .2 mt 20.5 yinc mul .4 add pd burpwide pr 20.5 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def /burplebox23 {save /burp1 exch store xpos ypos translate -1 .2 mt 23.5 yinc mul .4 add pd burpwide pr 23.5 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def /burplebox26.5 {save /burp1 exch store xpos ypos translate -1 .2 mt 27 yinc mul .4 add pd burpwide pr 27 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def /burplebox30 {save /burp1 exch store xpos ypos translate -1 .2 mt 30.5 yinc mul .4 add pd burpwide pr 30.5 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def /burplebox36 {save /burp1 exch store xpos ypos translate -1 .2 mt 36.5 yinc mul .4 add pd burpwide pr 36.5 yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore } def %%%%%%%%%%% figure 1 routine % autopositions on box6 %%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%% TWO PATTERNS %%%%%%%%%%%%%% /ivoryrndcolor [230 230 205 40] store % random pattern colors [red blue green variance ] /magentarndcolor [230 100 230 120]store /makepatternstrings { [230 210 190 80] buildpixels magentarndcolor /accentpatstring exch store ivoryrndcolor buildpixels makeimagestring /bodypatstring exch store } store /burppatstrings { ivoryrndcolor buildpixels makeimagestring /bodypatstring exch store magentarndcolor buildpixels makeimagestring /accentpatstring exch store } store /DeviceRGB setcolorspace % pick color model /hpixels 50 store % size of pattern image /vpixels 50 store /issize hpixels vpixels mul store % makestring converts a stack top array into a string... /makestring {dup length string dup /NullEncode filter 3 -1 roll {1 index exch write} forall pop} def % /buildpixels makes three nearby colors given [r b g texture] all 0-255 integers /buildpixels {aload pop /texture exch store /b0 exch store /g0 exch store /r0 exch store 123 srand /r1 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g1 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b1 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /r2 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g2 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b2 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /r3 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g3 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b3 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store } store % /makeimagestring creates a sting usable for a pattern image /makeimagestring { 12345 srand % make repeatable /iarray mark issize { r1 g1 b1} repeat ] store % fill all with color 1 issize 2 div cvi { iarray issize % fill half with color 2 random 3 mul cvi [ r2 g2 b2 ] putinterval} repeat issize 2 div cvi { iarray issize % fill third with color 3 random 3 mul cvi [ r3 g3 b3 ] putinterval} repeat iarray makestring } store % /rndimage shows the random string as a patternable image /bodyrandimage { gsave 5 dup scale << % start image dicationary /ImageType 1 % always one /Width hpixels % width in pixels /Height vpixels % height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource bodypatstring % proc to get string data /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image grestore } def /accentrandimage { gsave 5 dup scale << % start image dicationary /ImageType 1 % always one /Width hpixels % width in pixels /Height vpixels % height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource accentpatstring % proc to get string data /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image grestore } def % using a separate pattern dictionary for each pattern... /bodypatdict << /PatternType 1 % Tiling pattern /PaintType 1 % Colored /TilingType 1 /BBox [0 0 50 50] /XStep 5 /YStep 5 /PaintProc { begin bodyrandimage end} >> store /accentpatdict << /PatternType 1 % Tiling pattern /PaintType 1 % Colored /TilingType 1 /BBox [0 0 50 50] /XStep 5 /YStep 5 /PaintProc { begin accentrandimage end} >> store /burpbackmain { save /snapbb exch store save /snapb exch store % show the body background bodypatdict matrix % Identity matrix makepattern % Instantiate the pattern /bodypat exch def 4 0 % for the actual slide size 12 8 /Pattern setcolorspace bodypat setcolor rectfill % Fill rectangle with pattern snapb restore 4 0 12 8 line1 black rectstroke save /snapy exch store % show the accent accentpatdict matrix % Identity matrix makepattern % Instantiate the pattern /accentpat exch def 18.5 0 12 8 4 copy /Pattern setcolorspace accentpat setcolor rectfill % Fill rectangle with pattern snapy restore 18.5 0 12 8 line1 black rectstroke snapbb restore } store /figure3x {save /snap3 exch store translate % 34 8 showgrid makepatternstrings burppatstrings % burpbackstrings burpbackmain snap3 restore } store %%%%%%%%%%%%%%% end figure3 %%%%%%%%%%%% first special plot /special1code { /a01 [ 11.98757334830098 % p1 delay 0.02494857340377088 % p1 width 11.96309297293453 % p2 delay 0.04880748072357122 % p2 width 11.940266741737353 % p3 delay 0.07053366579209097 % p3 width 11.920110003436285 % p4 delay 0.08917718733052737 % p4 width 11.903448622759931 % p5 delay 0.10392320715383363 % p5 width 11.890997400038934 % p6 delay 0.1141272527930397 % p6 width 11.883303463712295 % p7 delay 0.11934332976518647 % p7 width 5.940346750117669 % quadrant delay ] store /a10 [ 11.870255884662251 % p1 delay 0.24926326067621396 % p1 width 11.627261913532986 % p2 delay 0.48772075225425126 % p2 width 11.401006709297277 % p3 delay 0.7050052291468631 % p3 width 11.201126478014806 % p4 delay 0.8916211348287959 % p4 width 11.036121661040383 % p5 delay 1.0393583630906704 % p5 width 10.912994009526542 % p6 delay 1.1416713778561558 % p6 width 10.836964879593466 % p7 delay 1.1939991529573461 % p7 width 5.405629193521989 % quadrant delay ] store /a20 [ 11.730827315951456 % p1 delay 0.4971341380973975 % p1 width 11.247686685343746 % p2 delay 0.9732376712143491 % p2 width 10.798693242131715 % p3 delay 1.407947044520391 % p3 width 10.402477789378082 % p4 delay 1.78228682672421 % p4 width 10.075528131993294 % p5 delay 2.079475909290011 % p5 width 9.831551570148512 % p6 delay 2.285806430413743 % p6 width 9.680871958761386 % p7 delay 2.391516582063389 % p7 width 4.8149587039683155 % quadrant delay ] store /a30 [ 11.582072392748948 % p1 delay 0.7421737945018947 % p1 width 10.862633911787377 % p2 delay 1.454218311923288 % p2 width 10.194732255409651 % p3 delay 2.106545777255711 % p3 width 9.605233324537401 % p4 delay 2.6708278536717955 % p4 width 9.118304754762583 % p5 delay 3.1210612368032926 % p5 width 8.754459346379754 % p6 delay 3.435090920436508 % p6 width 8.529472562792705 % p7 delay 3.5965061939786693 % p7 width 4.226667363010421 % quadrant delay ] store /a40 [ 11.424050411047465 % p1 delay 0.9828418379051129 % p1 width 10.473248533619292 % p2 delay 1.9280479848577236 % p2 width 9.590640663430097 % p3 delay 2.7980351182823426 % p3 width 8.810545720192863 % p4 delay 3.555566231331163 % p4 width 8.164652806450142 % p5 delay 4.164668715768244 % p5 width 7.680713770893433 % p6 delay 4.592711162444033 % p6 width 7.380758970713202 % p7 delay 4.813962276129942 % p7 width 3.6395557969349425 % quadrant delay ] store /a50 [ 11.25647168216318 % p1 delay 1.2174139856738683 % p1 width 10.080431345631026 % p2 delay 2.391612373063623 % p2 width 8.987846411116894 % p3 delay 3.4787553647023585 % p3 width 8.01966536065963 % p4 delay 4.433803253978574 % p4 width 7.214999377113287 % p5 delay 5.210430981795014 % p5 width 6.609527274825396 % p6 delay 5.762766698554145 % p6 width 6.232831441964791 % p7 delay 6.050997667516469 % p7 width 3.0524467812417413 % quadrant delay ] store /a53 [ 11.204229246524123 % p1 delay 1.2863028469519246 % p1 width 9.962015674530373 % p2 delay 2.528117843985992 % p2 width 8.807469507353026 % p3 delay 3.680145761308111 % p3 width 7.783358489290968 % p4 delay 4.695379940110421 % p4 width 6.930993065963889 % p5 delay 5.5244810879620445 % p5 width 6.288586696196958 % p6 delay 6.117000009644471 % p6 width 5.888323429144677 % p7 delay 6.427466502066167 % p7 width 2.876129898966852 % quadrant delay ] store /a60 [ 11.078495962518918 % p1 delay 1.4438411449625086 % p1 width 9.684772040454877 % p2 delay 2.840939034126027 % p2 width 8.38774096372643 % p3 delay 4.143446978421139 % p3 width 7.234097294409224 % p4 delay 5.300789342760972 % p4 width 6.270187484640822 % p5 delay 6.2573120579578045 % p5 width 5.540415121300725 % p6 delay 6.9509377594411745 % p6 width 5.083782352079723 % p7 delay 7.31917029639942 % p7 width 2.4640721668002356 % quadrant delay ] store /a70 [ 10.888278735987464 % p1 delay 1.6594599780251222 % p1 width 9.286332677429444 % p2 delay 3.270497867115676 % p2 width 7.791694139706859 % p3 delay 4.783840563470704 % p3 width 6.455843532587245 % p4 delay 6.147367771354908 % p4 width 5.331869368850619 % p5 delay 7.300805550943892 % p5 width 4.473484564450537 % p6 delay 8.165497800155037 % p6 width 3.9315873351224724 % p7 delay 8.640550109600042 % p7 width 1.8728900051999772 % quadrant delay ] store /a80 [ 10.681702836852158 % p1 delay 1.8602538062958054 % p1 width 8.88398269670934 % p2 delay 3.6714981402848607 % p2 width 7.200946234572324 % p3 delay 5.385275030570618 % p3 width 5.687867904890517 % p4 delay 6.9536645196485765 % p4 width 4.403487202517624 % p5 delay 8.324602905316311 % p5 width 3.4104122823979494 % p6 delay 9.417450259887687 % p6 width 2.774084338047487 % p7 delay 10.068107274017336 % p7 width 1.2766645679914034 % quadrant delay ] store /a90 [ 10.447373907519674 % p1 delay 2.038123534960869 % p1 width 8.472609797490058 % p2 delay 4.0258541900581655 % p2 width 6.615791805649657 % p3 delay 5.91534811864263 % p3 width 4.935247854465985 % p4 delay 7.666864442425741 % p4 width 3.4934960493166684 % p5 delay 9.260584158941057 % p5 width 2.358772151850779 % p6 delay 10.696787617357046 % p6 width 1.6101420251774101 % p7 delay 11.792019752288254 % p7 width 0.6709845938560051 % quadrant delay ] store /a95 [ 10.307313139895288 % p1 delay 2.111222840209404 % p1 width 8.256837177571334 % p2 delay 4.169598534647832 % p2 width 6.323664766096179 % p3 delay 6.124919743159786 % p3 width 4.567759372280754 % p4 delay 7.93736307227887 % p4 width 3.052826978493542 % p5 delay 9.604367560734132 % p5 width 1.8471062124079367 % p6 delay 11.250122874450298 % p6 width 1.0294512420668695 % p7 delay 13.056647531415762 % p7 width 0.36079895429200803 % quadrant delay ] store /a96 [ 10.275153279505902 % p1 delay 2.1233556309882146 % p1 width 8.2115482104066 % p2 delay 4.1930336081984905 % p2 width 6.264803529331843 % p3 delay 6.157765833137692 % p3 width 4.495281237426013 % p4 delay 7.976346292010689 % p4 width 2.9669207635656676 % p5 delay 9.646432050857882 % p5 width 1.7477032094150075 % p6 delay 11.320166050312238 % p6 width 0.9148247359680965 % p7 delay 13.409077457751365 % p7 width 0.2975881111242984 % quadrant delay ] store /a97 [ 10.240457024341477 % p1 delay 2.134077471317074 % p1 width 8.164867772841955 % p2 delay 4.213452442998779 % p2 width 6.205523779081837 % p3 delay 6.185452328837567 % p3 width 4.423234605472523 % p4 delay 8.006618220218015 % p4 width 2.8821971876470442 % p5 delay 9.672069264487952 % p5 width 1.6500883956263123 % p6 delay 11.355113654260407 % p6 width 0.8016574526230471 % p7 delay 13.831443290493283 % p7 width 0.23374710975272705 % quadrant delay ] store /a98 [ 10.201940773921007 % p1 delay 2.1427535621580062 % p1 width 8.1160304405589 % p2 delay 4.229503836724113 % p2 width 6.145502859365315 % p3 delay 6.205687104545131 % p3 width 4.351688442224891 % p4 delay 8.024338941005154 % p4 width 2.7990882078968866 % p5 delay 9.67371438320096 % p5 width 1.555079224439453 % p6 delay 11.330237907918856 % p6 width 0.69116413541866 % p7 delay 14.364207461243552 % p7 width 0.169062719379113 % quadrant delay ] store /a99 [ 10.156863627959598 % p1 delay 2.1480428640811766 % p1 width 8.06339164056924 % p2 delay 4.238341714779558 % p2 width 6.0840316757476 % p3 delay 6.213675963725404 % p3 width 4.280754974385665 % p4 delay 8.02161284750413 % p4 width 2.718452103604484 % p5 delay 9.636460505287125 % p5 width 1.4642999953711353 % p6 delay 11.197329413972475 % p6 width 0.5860923925256714 % p7 delay 15.087472750976061 % p7 width 0.10317752951067405 % quadrant delay ] store /a100 [ 10.097664622565073 % p1 delay 2.146284244870163 % p1 width 8.002396397096308 % p2 delay 4.23222417093767 % p2 width 6.019120165289753 % p3 delay 6.1964902984829 % p3 width 4.21068681625524 % p4 delay 7.977592739007122 % p4 width 2.6425485752095525 % p5 delay 9.523271990574841 % p5 width 1.3819874635530311 % p6 delay 10.855567612314722 % p6 width 0.4941631819604595 % p7 delay 16.184573443763554 % p7 width 0.03542827811961047 % quadrant delay ] store /range [ (01) (10) (20) (30) (40) (50) (53) (60) (70) (80) (90) (95)(96)(97) (98)(99)(100) ] store /procit1 { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 13 get 2.5 mul lineto } def /procit2 { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 11 get 2.5 mul lineto } def /procit3 { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 9 get 2.5 mul lineto } def /procit4 { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 7 get 2.5 mul lineto } def /procit5 { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 5 get 2.5 mul lineto } def /procit6 { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 3 get 2.5 mul lineto } def /procit7 { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 1 get 2.5 mul lineto } def /procit1d { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 12 get 2.5 mul lineto } def /procit2d { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 10 get 2.5 mul lineto } def /procit3d { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 8 get 2.5 mul lineto } def /procit4d { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 6 get 2.5 mul lineto } def /procit5d { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 4 get 2.5 mul lineto } def /procit6d { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 2 get 2.5 mul lineto } def /procit7d { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 0 get 2.5 mul lineto } def /procit8d { dup cvi /curval exch store (a)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 14 get 2.5 mul lineto } def % 40 100 10 setgrid 40 40 showgrid line1 0 30 mt range {procit7d} forall 40 0 lineto 0 0 lineto closepath 0 settint 0.8 setgray fill 0 30 mt range {procit6d} forall 40 0 lineto 0 0 lineto closepath 0.1 settint 0.8 setgray fill 0 30 mt range {procit5d} forall 40 0 lineto 0 0 lineto closepath 0.2 settint 0.8 setgray fill 0 30 mt range {procit4d} forall 40 0 lineto 0 0 lineto closepath 0.27 settint 0.8 setgray fill 0 30 mt range {procit3d} forall 40 0 lineto 0 0 lineto closepath 0.43 settint 0.8 setgray fill 0 30 mt range {procit2d} forall 40 0 lineto 0 0 lineto closepath 0.5 settint 0.8 setgray fill 0 30 mt range {procit1d} forall 40 0 lineto 0 0 lineto closepath 0.6 settint 0.8 setgray fill 0 15 mt range {procit8d} forall 40 0 lineto 0 0 lineto closepath 0.7 settint 0.8 setgray fill 0 0 mt range {procit1} forall 40 0 lineto closepath 0.6 settint 0.6 setgray fill 0 0 mt range {procit2} forall 40 0 lineto closepath 0.5 settint 0.6 setgray fill 0 0 mt range {procit3} forall 40 0 lineto closepath 0.43 settint 0.6 setgray fill 0 0 mt range {procit4} forall 40 0 lineto closepath 0.27 settint 0.6 setgray fill 0 0 mt range {procit5} forall 40 0 lineto closepath 0.2 settint 0.6 setgray fill 0 0 mt range {procit6} forall 40 0 lineto closepath 0.1 settint 0.6 setgray fill 0 0 mt range {procit7} forall 40 0 lineto closepath 0 settint 0.6 setgray fill black 0 0 mt range {procit1} forall stroke 0 0 mt range {procit2} forall stroke 0 0 mt range {procit3} forall stroke 0 0 mt range {procit4} forall stroke 0 0 mt range {procit5} forall stroke 0 0 mt range {procit6} forall stroke 0 0 mt range {procit7} forall stroke 0 30 mt range {procit1d} forall 0 30 mt range {procit2d} forall 0 30 mt range {procit3d} forall stroke 0 30 mt range {procit4d} forall stroke 0 30 mt range {procit5d} forall stroke 0 30 mt range {procit6d} forall stroke 0 30 mt range {procit7d} forall stroke 0 15 mt range {procit8d} forall stroke 0.3 0.3 0.3 setrgbcolor line3 1 setlinecap 1 setlinejoin 0 0 mt 40 u 40 r 40 d 40 l [{ 0 0 mt 0.4 l} 10 5 ] yrpt [{ 40 0 mt 0.4 r} 10 5 ] yrpt [{ 0 0 mt 0.4 d} 10 5 ] xrpt [{ 0 40 mt 0.4 u} 10 5 ] xrpt /cstretch 0.02 store /sstretch 0 store /font0 /StoneSans-Bold 1.5 gonzofont /font1 /StoneSans-Bold 1.2 gonzofont /font2 /StoneSans-Bold 1 gonzofont /font: /StoneSans-Bold [0.6 0 0 0.6 0 0.6] gonzofont /font; /StoneSans-Bold [1.5 0 0 1.5 0 0.2] gonzofont /yinc 2 store font0 20 43.7 (BEST EFFICIENCY N |;=|0 28\nMAGIC SINEWAVE) cc font1 /yinc 1.5 store 0 -2.2 (0.0) cc 20 -2.2 (0.5) cc 40 -2.2 (1.0)cc 20 -4.3 (AMPLITUDE) cc 41 -0.5 (0) cl 41 9.5 (4) cl 41 19.5 (8) cl 41 29.5 (12) cl 41 39.5 (16) cl 45.5 21 (DELAY\nTIME IN\nDEGREES) cc font2 26.5 1.2 (PULSE WIDTHS) cc 1.5 17 (PULSE DELAYS) cl 2.6 32.6 (0|:o) cc 27.4 32.6 (90|:o) cc % generate actual magic sinewave /makemagic {gsave translate 0.25 dup scale line3 /ht 17 store /dht 6 store 0 setlinecap 0 setlinejoin dht setlinewidth 0 0 mt a50 0 get pr 0 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add 0 mt a50 2 get pr 0.1 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add 0 mt a50 4 get pr 0.2 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add 0 mt a50 6 get pr 0.3 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add 0 mt a50 8 get pr 0.4 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add a50 9 get add 0 mt a50 10 get pr 0.5 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add a50 9 get add a50 10 get add a50 11 get add 0 mt a50 12 get pr 0.6 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add a50 9 get add a50 10 get add a50 11 get add a50 12 get add a50 13 get add 0 mt a50 14 get pr 0.7 settint 0.8 setgray stroke %% pulses a50 0 get 0 mt ht pu 0 a50 1 get pr ht pd closepath 0 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add 0 mt ht pu 0 a50 3 get pr ht pd closepath 0.1 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add a50 3 get add a50 4 get add 0 mt ht pu 0 a50 5 get pr ht pd closepath 0.2 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add 0 mt ht pu 0 a50 7 get pr ht pd closepath 0.3 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add 0 mt ht pu 0 a50 9 get pr ht pd closepath 0.4 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add a50 9 get add a50 10 get add 0 mt ht pu 0 a50 11 get pr ht pd closepath 0.5 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add a50 9 get add a50 10 get add a50 11 get add a50 12 get add 0 mt ht pu 0 a50 13 get pr ht pd closepath 0.6 settint 0.6 setgray fill 1 setlinecap 1 setlinejoin black 0 0 mt a50 0 get 0 rlineto 0 ht pu a50 1 get 0 rlineto 0 ht pd a50 2 get 0 rlineto 0 ht pu a50 3 get 0 rlineto 0 ht pd a50 4 get 0 rlineto 0 ht pu a50 5 get 0 rlineto 0 ht pd a50 6 get 0 rlineto 0 ht pu a50 7 get 0 rlineto 0 ht pd a50 8 get 0 rlineto 0 ht pu a50 9 get 0 rlineto 0 ht pd a50 10 get 0 rlineto 0 ht pu a50 11 get 0 rlineto 0 ht pd a50 12 get 0 rlineto 0 ht pu a50 13 get 0 rlineto 0 ht pd a50 14 get 0 rlineto 0.45 setlinewidth stroke grestore} def 3.5 33 makemagic } store % end special1code definition %%%%%%%%%%% special2 code /special2code { /ad01 [ 7.434338157133027 % delay a=60-p5e 0.11880195485247924 % delay b=p5e-p5s 0.019577960879085587 % delay c=p1e-p1s 14.855161666700834 % delay d=p2s-p1e 0.021983040440492374 % delay e=p2e-p2s 0.0911673899925809 % delay f=p3s-p2e 0.0353778304366692 % delay g=p3e-p3s 7.4235919995647634 % delay h=30-p3e ] store /ad10 [ 6.840486668588909 % delay a=60-p5e 1.1877031146444991 % delay b=p5e-p5s 0.19606479817654332 % delay c=p1e-p1s 13.542825252098737 % delay d=p2s-p1e 0.1524725715290529 % delay e=p2e-p2s 0.9104569599226266 % delay f=p3s-p2e 0.4224088615298953 % delay g=p3e-p3s 6.7475817735097365 % delay h=30-p3e ] store /ad20 [ 6.179615738852249 % delay a=60-p5e 2.368314508230462 % delay b=p5e-p5s 0.39486570406405263 % delay c=p1e-p1s 12.090328683781834 % delay d=p2s-p1e 0.2773208755122525 % delay e=p2e-p2s 1.8107046591154443 % delay f=p3s-p2e 0.8802494355140809 % delay g=p3e-p3s 5.998600394929625 % delay h=30-p3e ] store /ad30 [ 5.51798715656065 % delay a=60-p5e 3.537987411554724 % delay b=p5e-p5s 0.5996610353231375 % delay c=p1e-p1s 10.6414917563349 % delay d=p2s-p1e 0.378916570008613 % delay e=p2e-p2s 2.6949373104326213 % delay f=p3s-p2e 1.3768763200109077 % delay g=p3e-p3s 5.252142439774445 % delay h=30-p3e ] store /ad40 [ 4.8560795807034935 % delay a=60-p5e 4.692317283738298 % delay b=p5e-p5s 0.8138114048538583 % delay c=p1e-p1s 9.195452323744191 % delay d=p2s-p1e 0.46036801366636126 % delay e=p2e-p2s 3.5594981265840886 % delay f=p3s-p2e 1.9150363136688284 % delay g=p3e-p3s 4.50743695304088 % delay h=30-p3e ] store /ad50 [ 4.194298075500072 % delay a=60-p5e 5.825866502969745 % delay b=p5e-p5s 1.0408488460292488 % delay c=p1e-p1s 7.751463747608284 % delay d=p2s-p1e 0.5238895562340744 % delay e=p2e-p2s 4.403346953313516 % delay f=p3s-p2e 2.496487356236706 % delay g=p3e-p3s 3.7637989621083534 % delay h=30-p3e ] store /ad53 [ 3.995843046736013 % delay a=60-p5e 6.160868086216446 % delay b=p5e-p5s 1.112006440311525 % delay c=p1e-p1s 7.318567062952312 % delay d=p2s-p1e 0.5397256759732585 % delay e=p2e-p2s 4.652707315620958 % delay f=p3s-p2e 2.679463155973238 % delay g=p3e-p3s 3.5408192162162493 % delay h=30-p3e ] store /ad60 [ 3.5330039078836606 % delay a=60-p5e 6.9314513603008905 % delay b=p5e-p5s 1.2842465239317846 % delay c=p1e-p1s 6.308872401421397 % delay d=p2s-p1e 0.5713975364200223 % delay e=p2e-p2s 5.228837780084575 % delay f=p3s-p2e 3.1216051264200075 % delay g=p3e-p3s 3.0205853635376627 % delay h=30-p3e ] store /ad70 [ 2.8725257224432425 % delay a=60-p5e 7.998916501222098 % delay b=p5e-p5s 1.5460427838912807 % delay c=p1e-p1s 4.8671218102361 % delay d=p2s-p1e 0.6062046544537196 % delay e=p2e-p2s 6.042997615507133 % delay f=p3s-p2e 3.789041064453741 % delay g=p3e-p3s 2.2771498477926854 % delay h=30-p3e ] store /ad80 [ 2.2131268407607223 % delay a=60-p5e 9.012727944067371 % delay b=p5e-p5s 1.8200962344110607 % delay c=p1e-p1s 3.4258327180993433 % delay d=p2s-p1e 0.6400219482894229 % delay e=p2e-p2s 6.85987852874419 % delay f=p3s-p2e 4.495547368289273 % delay g=p3e-p3s 1.532768417338616 % delay h=30-p3e ] store /ad90 [ 1.55474755544018 % delay a=60-p5e 9.946227643338275 % delay b=p5e-p5s 2.048752785780998 % delay c=p1e-p1s 1.9853102905593687 % delay d=p2s-p1e 0.736140589142309 % delay e=p2e-p2s 7.705915111477708 % delay f=p3s-p2e 5.236535369142075 % delay g=p3e-p3s 0.7863706551190859 % delay h=30-p3e ] store /ad95 [ 1.225355348586767 % delay a=60-p5e 10.367111550363887 % delay b=p5e-p5s 2.0303138224619843 % delay c=p1e-p1s 1.2665437513423114 % delay d=p2s-p1e 0.9241283097125574 % delay e=p2e-p2s 8.155346335065047 % delay f=p3s-p2e 5.619630049711802 % delay g=p3e-p3s 0.4115708327556433 % delay h=30-p3e ] store /ad98 [ 1.026684367555248 % delay a=60-p5e 10.596415552349142 % delay b=p5e-p5s 1.807508982542501 % delay c=p1e-p1s 0.837605401539733 % delay d=p2s-p1e 1.2493523058395936 % delay e=p2e-p2s 8.441202830348274 % delay f=p3s-p2e 5.855882255842914 % delay g=p3e-p3s 0.18534830398259316 % delay h=30-p3e ] store /ad100 [ 0.8921862350266565 % delay a=60-p5e 10.732271751681054 % delay b=p5e-p5s 1.3169014782635031 % delay c=p1e-p1s 0.5554591355065241 % delay d=p2s-p1e 1.8052854865738012 % delay e=p2e-p2s 8.644568525896716 % delay f=p3s-p2e 6.020358566571353 % delay g=p3e-p3s 0.032968820480391514 % delay h=30-p3e ] store /range [ (01) (10) (20) (30) (40) (50) (53) (60) (70) (80) (90) (95) (98)(100) ] store /procit1 { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 1 get 2.5 mul lineto } def /procit2 { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 2 get 2.5 mul lineto } def /procit3 { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 4 get 2.5 mul lineto } def /procit4 { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 5 get 2.5 mul lineto } def /procit5 { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 6 get 2.5 mul lineto } def /procit6 { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 3 get 2.5 mul lineto } def /procit7 { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 1 get 2.5 mul lineto } def /procit1d { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 0 get 2.5 mul lineto } def /procit2d { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 3 get 2.5 mul lineto } def /procit3d { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 7 get 2.5 mul lineto } def /procit4d { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 6 get 2.5 mul lineto } def /procit5d { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 4 get 2.5 mul lineto } def /procit6d { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 2 get 2.5 mul lineto } def /procit7d { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 0 get 2.5 mul lineto } def /procit8d { dup cvi /curval exch store (ad)exch mergestr cvn /curdat exch store curval 2.5 div curdat cvx exec 14 get 2.5 mul lineto } def % 40 100 10 setgrid 40 40 showgrid line1 % delays 0 37.5 mt range {procit2d} forall 40 0 lineto 0 0 lineto closepath 0.15 settint 0.8 setgray fill 0 18.75 mt range {procit1d} forall 40 0 lineto 0 0 lineto closepath 0 settint 0.8 setgray fill 0 18.75 mt range {procit3d} forall 40 0 lineto 0 0 lineto closepath 0.3 settint 0.8 setgray fill % pulses 0 0 mt range {procit1} forall 40 0 lineto 0 0 lineto closepath 0.0 settint 0.6 setgray fill 0 0 mt range {procit4} forall 40 0 lineto 0 0 lineto closepath 0.5 settint 0.6 setgray fill 0 0 mt range {procit5} forall 40 0 lineto 0 0 lineto closepath 0.6 settint 0.6 setgray fill 0 0 mt range {procit2} forall 40 0 lineto 0 0 lineto closepath 0.15 settint 0.6 setgray fill 0 0 mt range {procit3} forall 40 0 lineto 0 0 lineto closepath 0.3 settint 0.6 setgray fill black line1 0 18.75 mt range {procit1d} forall stroke 0 37.5 mt range {procit2d} forall stroke 0 18.75 mt range {procit3d} forall stroke stroke % width outlines 0 0 mt range {procit1} forall stroke 0 0 mt range {procit2} forall stroke 0 0 mt range {procit3} forall stroke 0 0 mt range {procit4} forall stroke 0 0 mt range {procit5} forall stroke 0.3 0.3 0.3 setrgbcolor line3 1 setlinecap 1 setlinejoin 0 0 mt 40 u 40 r 40 d 40 l [{ 0 0 mt 0.4 l} 10 5 ] yrpt [{ 40 0 mt 0.4 r} 10 5 ] yrpt [{ 0 0 mt 0.4 d} 10 5 ] xrpt [{ 0 40 mt 0.4 u} 10 5 ] xrpt /cstretch 0.02 store /sstretch 0 store /font0 /StoneSans-Bold 1.5 gonzofont /font1 /StoneSans-Bold 1.2 gonzofont /font2 /StoneSans-Bold 1 gonzofont /font: /StoneSans-Bold [0.6 0 0 0.6 0 0.6] gonzofont /font; /StoneSans-Bold [1.5 0 0 1.5 0 0.2] gonzofont /yinc 2 store font0 20 45 (DELTA FRIENDLY N |;=|0 28\nMAGIC SINEWAVE) cc font1 /yinc 1.5 store 0 -2.2 (0.0) cc 20 -2.2 (0.5) cc 40 -2.2 (1.0)cc 20 -4.3 (AMPLITUDE) cc 41 -0.5 (0) cl 41 9.5 (4) cl 41 19.5 (8) cl 41 29.5 (12) cl 41 39.5 (16) cl 46.5 21 (DELAY\nTIME IN\nDEGREES) cc font2 23.5 4.7 (PULSE WIDTHS) cc 1.5 22.5 (PULSE DELAYS) cl % generate actual magic sinewave /makemagicold {gsave translate 0.25 dup scale line3 /ht 12 store /dht 6 store 0 setlinecap 0 setlinejoin dht setlinewidth 0 0 mt a50 0 get pr 0 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add 0 mt a50 2 get pr 0.1 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add 0 mt a50 4 get pr 0.2 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add 0 mt a50 6 get pr 0.3 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add 0 mt a50 8 get pr 0.4 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add a50 9 get add 0 mt a50 10 get pr 0.5 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add a50 9 get add a50 10 get add a50 11 get add 0 mt a50 12 get pr 0.6 settint 0.8 setgray stroke 0 a50 0 get add a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add a50 9 get add a50 10 get add a50 11 get add a50 12 get add a50 13 get add 0 mt a50 14 get pr 0.7 settint 0.8 setgray stroke %% pulses a50 0 get 0 mt ht pu 0 a50 1 get pr ht pd closepath 0 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add 0 mt ht pu 0 a50 3 get pr ht pd closepath 0.1 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add a50 3 get add a50 4 get add 0 mt ht pu 0 a50 5 get pr ht pd closepath 0.2 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add 0 mt ht pu 0 a50 7 get pr ht pd closepath 0.3 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add 0 mt ht pu 0 a50 9 get pr ht pd closepath 0.4 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add a50 9 get add a50 10 get add 0 mt ht pu 0 a50 11 get pr ht pd closepath 0.5 settint 0.6 setgray fill a50 0 get a50 1 get add a50 2 get add a50 3 get add a50 4 get add a50 5 get add a50 6 get add a50 7 get add a50 8 get add a50 9 get add a50 10 get add a50 11 get add a50 12 get add 0 mt ht pu 0 a50 13 get pr ht pd closepath 0.6 settint 0.6 setgray fill 1 setlinecap 1 setlinejoin black 0 0 mt a50 0 get 0 rlineto 0 ht pu a50 1 get 0 rlineto 0 ht pd a50 2 get 0 rlineto 0 ht pu a50 3 get 0 rlineto 0 ht pd a50 4 get 0 rlineto 0 ht pu a50 5 get 0 rlineto 0 ht pd a50 6 get 0 rlineto 0 ht pu a50 7 get 0 rlineto 0 ht pd a50 8 get 0 rlineto 0 ht pu a50 9 get 0 rlineto 0 ht pd a50 10 get 0 rlineto 0 ht pu a50 11 get 0 rlineto 0 ht pd a50 12 get 0 rlineto 0 ht pu a50 13 get 0 rlineto 0 ht pd a50 14 get 0 rlineto 0.45 setlinewidth stroke grestore} def /makemagic {gsave translate 0.8 dup scale line3 /ht 3 store /dht 1.5 store 0 setlinecap 0 setlinejoin dht setlinewidth 0 0 mt ad70 0 get pr 0 settint 0.8 setgray stroke ad70 0 get ad70 1 get add ad70 2 get add 0 mt ad70 3 get pr 0.15 settint 0.8 setgray stroke ad70 0 get ad70 1 get add ad70 2 get add ad70 3 get add ad70 4 get add ad70 5 get add ad70 6 get add 0 mt ad70 7 get pr 0.3 settint 0.8 setgray stroke % pulses ad70 0 get 0 mt ht 2 mul pu ad70 1 get pr ht 2 mul pd closepath 0 settint 0.6 setgray fill ad70 0 get ad70 1 get add 0 mt ht 2 mul pu ad70 2 get pr ht 2 mul pd closepath 0.15 settint 0.6 setgray fill ad70 0 get ad70 1 get add ad70 2 get add ad70 3 get add 0 mt ht 2 mul pu ad70 4 get pr ht 2 mul pd closepath 0.30 settint 0.6 setgray fill ad70 0 get ad70 1 get add ad70 2 get add ad70 3 get add ad70 4 get add 0 mt ht 2 mul pu ad70 5 get pr ht 2 mul pd closepath 0.5 settint 0.6 setgray fill ad70 0 get ad70 1 get add ad70 2 get add ad70 3 get add ad70 4 get add ad70 5 get add 0 mt ht 2 mul pu ad70 6 get pr ht 2 mul pd closepath 0.6 settint 0.6 setgray fill % outlines black line1 1 setlinecap 1 setlinejoin 0 0 mt ad70 0 get pr ht pu ad70 1 get pr ht pd ht pu ad70 2 get pr ht pd ad70 3 get pr ht pu ad70 4 get pr ht pd ht pu ad70 5 get pr ht pd ht pu ad70 6 get pr ht pd ad70 7 get pr stroke 0 0 mt ad70 0 get pr ht 2 mul pu ad70 1 get ad70 2 get add pr ht 2 mul pd ad70 3 get pr ht 2 mul pu ad70 4 get ad70 5 get add ad70 6 get add pr ht 2 mul pd stroke % p3 poker 17.8 -0.45 mt 1.65 -2.5 rlineto black line1 stroke 11.5 -0.45 mt -1.65 -2.5 rlineto black line1 stroke grestore } def 12 31 makemagic font2 11 30.5 (0|:o) cc 37.5 30.5 (30|:o) cc 28.5 28.3 (p2) cc 18.9 28.3 (p1) cc 18 31.8 (p5) cc 28.8 31.8 (p4) cc 32.7 31.8 (p3) cc 18 34.2 (p6) cc 30.2 34.2 (p7) cc } store % end special 2 def % ---------- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % //// REVISED DIPDRAW PROC ///// electronics begin % dipdraw - draws a dip integrated circuit. (old code to be improved) % Enter with currentpoint set to pin 1 and scale % set so that 1.0 = distance between pins. Then % do a numpins-(name)-(hipins)-(lopins) dipdraw % Pin callouts preceeded by / will be complemented. % main dipdraw entry: /dipdraw { save /dipsnap exch def /hipins exch def /lopins exch def /chipname exch def /numpins exch def mark 0 0 0 0 0 0 0 0 0 0 0 0 % temp patch /howlong {numpins 2 div cvi 1 add} def /howhigh {4 numpins 36 ge {1 add} if} def /stub {howhigh 1.4 sub 2 div} def % internal service subs start here: /pinproc {numpins 2 div cvi{newpath 0 cpos 0.37 0 360 arc gsave 1 setgray fill grestore 0.067 setlinewidth stroke pin# 5 string cvs dup stringwidth pop 2 div neg cpos 0.2 sub moveto show 1 0 translate /pin# pin# dir add def} repeat } def /stretchprint { dup stringwidth pop 2 div neg exch length 1 sub stretch mul 2 div sub 0 moveto callout (/) anchorsearch true eq {currentpoint exch stretch add exch moveto pop dup /callout exch def stringwidth pop callout length 1 sub stretch mul add /barwide exch def 0.033 setlinewidth gsave currentpoint 0.55 add moveto barwide 0 rlineto stroke grestore} if stretch 0 callout ashow pop} def /pincallouts{0 vpos translate {workstring ( ) search true eq {/callout exch def pop /workstring exch def callout stretchprint 1 0 translate}{dup /callout exch def stretchprint exit } ifelse}loop} def % actual dipdraw process starts here: % ........ the outline: gsave 1 setlinecap 1 setlinejoin currentpoint translate newpath -1 howhigh 2 div 0.7 -90 90 arc 0 stub rlineto howlong 0 rlineto 0 howhigh neg rlineto howlong neg 0 rlineto closepath gsave grayshade setgray fill grestore grayshade dup 1 ne {0.33}{0} ifelse setgray 0.36 setlinewidth stroke newpath -.55 .45 0.15 0 360 arc fill black % ........ pin circles and numbers: /Helvetica-Bold findfont [0.4 0 0 0.55 0 0] makefont setfont gsave /pin# 1 def /dir 1 def /cpos 0 def pinproc grestore gsave /pin# numpins def /dir -1 def /cpos howhigh def pinproc grestore % pin callouts: /Helvetica findfont [0.35 0 0 0.6 0 0] makefont setfont /stretch 0.033 def gsave /workstring hipins def /vpos 0.6 def pincallouts grestore gsave /workstring lopins def /vpos howhigh 1.05 sub def pincallouts grestore % device number: grayshade 1 ne {0.33}{0} ifelse setgray /Helvetica-Bold findfont [1.4 0 0 1 0 0] makefont setfont /stretch 0.05 def gsave numpins 2 div 1 sub 2 div howhigh 2 div 0.33 sub translate chipname dup /callout exch def stretchprint grestore black % end cleanup: grestore grestore cleartomark dipsnap restore} def end % get out of electronics? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /special1 {save /s1snap exch store 4.5 2.5 translate 0.8 dup scale special1code s1snap restore} store /special2 {save /s1snap exch store 4.5 17 translate 0.8 dup scale special2code s1snap restore} store /special5 {gsave 4 -5.85 translate line1 black 0.3 0 mt 0.3 l 5.2 u 0.3 r 13.2 0 mt 0.3 r 5.2 u 0.3 l 15.3 0 mt 0.3 l 5.2 u 0.3 r 18.3 0 mt 0.3 r 5.2 u 0.3 l grestore } store /xkernon {/kernsave kern store /kern 0.18 store } def /xkernoff {/kern kernsave store} def /pagenum 1 store /startnewpage { black beige 0.35 setgray 21 -2.5 (|3\320|j|j) ggnum 10 string cvs mergestr (|j.|j) mergestr pagenum 10 string cvs mergestr (|j|j\320) mergestr cc aqua showpage %% start next page /pagenum pagenum 1 add store 50 50 10 setgrid % create grid setpagefonts font1 textleft texttop } def /su {surl font6} store /to {tinton1 font6} store /tx {tintoff font1} store /tabs [7 20] store /overstrikeht 0.52 store %%%% glyph module /font: /Symbol 1.5 gonzofont /font+ /Helvetica [0.9 0 0 0.85 0 0.6] gonzofont /font= /Helvetica 1.5 gonzofont /glyphx1 { mark /glyphx1exec cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } store /glyphx1exec {gsave currentpoint 0.31 add translate 0 setgray font: 0 0.6 moveto (\266j) show 0 -1.3 moveto (\266) show font= (x) show line2 0 0.1 mt 1.8 r grestore} store /glyphy1 { mark /glyphy1exec cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } store /glyphy1exec {gsave currentpoint 0.31 add translate 0 setgray font: 0 0.6 moveto (\266j) show 0 -1.3 moveto (\266) show font= (y) show line2 0 0.1 mt 1.8 r grestore} store /glyphz1 { mark /glyphz1exec cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } store /glyphz1exec {gsave currentpoint 0.31 add translate 0 setgray font: 0 0.6 moveto (\266j) show 0 -1.3 moveto (\266) show font= (z) show line2 0 0.1 mt 1.8 r grestore} store /glyphx2 { mark /glyphx2exec cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } store /glyphx2exec {gsave currentpoint 0.31 add translate 0 setgray font: 0 0.6 moveto (\266) show font+ (2) show font: (j) show 0 -1.4 moveto (\266) show font= (x) show font+ (2) show line2 0 0.1 mt 1.8 r grestore} store /glyphy2 { mark /glyphy2exec cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } store /glyphy2exec {gsave currentpoint 0.31 add translate 0 setgray font: 0 0.6 moveto (\266) show font+ (2) show font: (j) show 0 -1.4 moveto (\266) show font= (y) show font+ (2) show line2 0 0.1 mt 1.8 r grestore} store /glyphz2 { mark /glyphz2exec cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } store /glyphz2exec {gsave currentpoint 0.31 add translate 0 setgray font: 0 0.6 moveto (\266) show font+ (2) show font: (j) show 0 -1.4 moveto (\266) show font= (z) show font+ (2) show line2 0 0.1 mt 1.8 r grestore} store /lateblack { mark 1 0 0.7 /setrgbcolor cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } store /lateburple { mark 0.5 0 1 /setrgbcolor cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } store %%%%%%%%%%%%%% /font; /Helvetica [0.7 0 0 0.7 0 0.4] gonzofont font1 /font- /Symbol 0.85 gonzofont aqua 0.33 setgray font0 /fastart false store % sets speeds on slow artwork 20 47.3 0.7 add % 1 sub (Real |j|jTime |j|jAcrobat |j|jAnimation:)cc 20 45.3 0.7 add %1 sub (A |j|j3|j-|jPhase |j|jPower |j|jSimulation) cc black font2 textleft 43 0.3 add % this one only need |h below (|/aqua |/staytint1 |3Don Lancaster Synergetics, Box 809, Thatcher, AZ 85552 copyright c2005 as |/surl |6GuruGram|1|/gurgrm01 |/tinton1 |6#47 |/surl http://www.tinaja.com|/tinaja |/surl don@tinaja.com|/maildon (928) 428-4073 |/aqua |/black |a|0A|b|1|jdobe's recent addition of JavaScript over Acrobat has dramatically upped the animation possibilities done from |/to totally within|/tx an |/su Acrobat .PDF|1|/acrob01 document. |h Obvious immediate uses are the not-previously-possible timed slideshows within a browser window, scroll and marquee effects, or flashing text in a |/su PowerPoint|/gonzopow.pdf |/su Simulation|1|/gonzopow.pdf . |h I was playing around with some simple |/su Acrobat|1|/acrob01 animation using JavaScript scripting and was utterly amazed at how fast and how large Acrobat animation can now be done. All at surprisingly low file sizes and rather simple program constructs. Ferinstance, nearly 20 frames per second seem possible on an older and sedate 850 MHz Pentium XP. While showing 200x200 pixel images. And needing only 8K or so per animation cell for storage. |h Before we go into some of the details, let's first click here to\274 |h |6|/shiftin |/aqua |/burplebox2 |/staytint1 |h |/su RUN THE DEMO|/p3anim01.pdf |h |1|/shiftout |/aqua |/black Yeah, I coulda built the demo into this |/su GuruGram|1|/gurgrm01 , but let's instead keep things brief and simple. What you are viewing here is a simulation of the electric field surrounding a three-phase power cable as it varies through each of its cycles. This is an expansion of the third example of our new |/su Rebounding|1|/rebound1.pdf method of quickly and simply analyzing complex electromagnetic fields. |h |c Getting |jStarted |d The key Adobe document needed is the |/su Acrobat JavaScript Scripting Reference|1|/adobejava . This should be built into the help menu of your copy of Acrobat. Otherwise, you can |/su click here|1|/adobejava for a copy of this and other JavaScript support docs. |h There are often five steps involved in Acrobat animation\274 ) cl startnewpage (|6|/shiftin |/aqua |/burplebox6 |/staytint1 |h Design an animated sequence. Build up the individual Cells. Assemble a continuing sequence. Single step the full sequence. Add user interactive control. |h |1|/shiftout |/aqua |/black |h Your animated sequence could be either |/su PostScript|1|/post01 images or vector graphics and text. Or a mix of the two. Some browsers may be faster and better about glitchlessly displaying pure images, so images may end up better\274 |h |6|/shiftin |/aqua |/burplebox3 |/staytint1 |h Always test your animation WITHIN a browser to avoid any rude surprises over glitches and continuity! |h |1|/shiftout |/aqua |/black |h The third field plot example in |/su REBOUND1.PDF|1|/rebound1.pdf clearly lent itself to a repeating sequence of |/to 200|jx|j200|/tx images that trace three phase power over one full cycle. |h Twenty-four cells of fifteen degrees of phase shift each seemed about right for the animated display. The more cells, the |/to smoother|/tx the action, but the |/to slower|/tx the maximum possible speed. The original field |/to PostScript|1|/post01 code can be modified for different phases by adding\274 |h |6|/shiftin |/burple |/burplebox5.5 |/staytint1 |h /phase 195 store % set phase here |h /calca {phase cos 500 mul 500 add} store /calcb {phase 120 add cos 500 mul 500 add} store /calcc {phase 240 add cos 500 mul 500 add} store |h |1|/shiftout |/aqua |/black |h Field values of 1000 represent red and 0 represent blue. Procs |/to calca|/tx , |/to calcb|/tx , and |/to calcc|/tx can be used to find the appropriate boundary value color for each of the three conductors in your current cell as a function of the desired phase angle. |h After you have created all of your cells, combine them in one Acrobat document. Then test them by using the front and back arrows. Then add this crucial detail\274 |h |6|/shiftin |/aqua |/burplebox4 |/staytint1 |h When assembling your cells into a complete sequence, DUPLICATE YOUR FIRST CELL to provide a good place to initialize JavaScript variable definitions and such. |1|/shiftout |/aqua |/black ) cl startnewpage (And\274 |6|/shiftin |/aqua |/burplebox4 |/staytint1 |h When closing your animation loop, always return to the SECOND cell, not the first one. Remember that internal Acrobat page numbering always starts with page ZERO. |h |1|/shiftout |/aqua |/black |c Initializing |d JavaScript and PostScript complement themselves in many ways. |/su PostScript|1|/post01 is a far more powerful and more intuitive general purpose computing language, while JavaScript excels at interactive user control. |h Two of the many places where JavaScript actions can be added to an Acrobat document are on |/to page start|/tx and on |/to mouse action|/tx . Any page start JavaScript command is entered by going to |/to Document|/tx and then |/to Set Page Action|/tx . A mouse action for a field such as a button is entered by clicking on the |/to Form Tool|/tx , right clicking on the button, then followed by |/to Properties|/tx . |h JavaScript variables |/to must|/tx be initialized before they can be used. If a variable is to be used on |/to all|/tx the pages of an Acrobat display, it |/to must|/tx have a name similar to |/to global.zorch|/tx . Once you figure out all of the arcane rules, the final JavaScript code can be surprisingly compact and simple. Here is some possible JavaScript initialization code for the first document page of our simulation\274 |h |6|/shiftin |/burple |/burplebox4 |/staytint1 |h global.animate = false ; global.speed = 4 ; this.pageNum++ ; |1|/shiftout |/aqua |/black |h Our first line defines a flag that determines whether the animation will stop or run. This is important because\274 |h |6|/shiftin |/aqua |/burplebox3.5 |/staytint1 |h Continuous animation will hang your program! |h ALWAYS provide user exit stop buttons or timouts! |h |1|/shiftout |/aqua |/black The second line is an optional time delay that can be added to each cell. The integer is in |/to milliseconds|/tx Normally, you are processor limited and want to run as fast as possible. But additional time delay can provide user interaction or reduce the variations with CPU speed. In other uses, a |/to app.setTimeOut|/tx variable of 1300 might give a 1.3 second display for a chosen slide show cell. Unlike the original full screen slide shows, you can have fractional second values and do your show from |/to within|/tx a web browser. |h ) cl startnewpage (The third line moves you unconditionally to the next cell. Thus, on entry or when the user clicks on the "go to beginning" arrow, needed JavaScript values are initialized, followed by a jump to the start of the actual animated sequence. |c Cell |jSequencing |d Here's some page entry code to move you to the next cell in the sequence\274 |h |6|/shiftin |/burple |/burplebox4 |/staytint1 |h bbb = app.setTimeOut ("if|j|j(global.animate){this.pageNum++}",|j|jglobal.stall)|j|j; bbb ; |1|/shiftout |/aqua |/black |h This defines a local |/to bbb|/tx variable that says "Delay for the |/to global.stall|/tx time, then check to see if the |/to global.animate|/tx flag will let us animate. If so, move to the next cell at the end of the stall time." |h The very last cell in the sequence is slightly different because it has to return to the beginning of the live cells to be displayed\274 |h |6|/shiftin |/burple |/burplebox4 |/staytint1 |h bbb = app.setTimeOut ("if|j|j(global.animate){this.pageNum = 1}",|j|jglobal.stall) ; bbb ; |1|/shiftout |/aqua |/black |h Note that |/to this.pageNum = 1|/tx goes to the |/to second|/tx cell in the sequence. Because internal page numbering starts at zero. We thus bypass the initialization cell on repeated cycles. |h Note also that Adobe uses an |/to app.setTimeOut|/tx variable that differs from the normal JavaScript |/to setTimeout|/tx by its case sensitivity. Capital "O", |/to not|/tx "o". |h |c User |jInteraction |d Three |/to step|/tx , |/to stop|/tx , and |/to run|/tx field buttons are used to provide a user interface. Here is the JavaScript |/to step|/tx code for an internal cell\274 |h |6|/shiftin |/burple |/burplebox2 |/staytint1 |h this.pageNum++ ; |1|/shiftout |/aqua |/black |h And for the last cell\274 |6|/shiftin |/burple |/burplebox2 |/staytint1 |h this.pageNum = 1 ; |1|/shiftout |/aqua |/black |h ) cl startnewpage (The |/to stop|/tx button JavaScript coding is the same for all cells\274 |h |6|/shiftin |/burple |/burplebox2 |/staytint1 |h global.animate = false ; |1|/shiftout |/aqua |/black |h A pair of codings is needed for our |/to run|/tx buttons. This for internal cells\274 |h |6|/shiftin |/burple |/burplebox3 |/staytint1 |h global.animate = true ; if (global.animate){this.pageNum++} ; |h |1|/shiftout |/aqua |/black |h And this one to close the loop for the next cycle\274 |h |6|/shiftin |/burple |/burplebox3 |/staytint1 |h global.animate = true ; if (global.animate){this.pageNum = 1} ; |h |1|/shiftout |/aqua |/black |h Some additional tips: Debugging can be eased with temporary alert boxes, perhaps done as\274 |h |6|/shiftin |/burple |/burplebox3 |/staytint1 |h zzz = app.alert ("hi there",0) zzz |h |1|/shiftout |/aqua |/black |h Variables can be inserted into the alert message text string and inspected. A similarly done |/to yyy = app.beep(4) ;|/tx can also be used to place one of four system beeps at any cell during debugging. |h For some strange reason, the right and left arrows will be |/to much slower|/tx (and a lot more glitchy) at moving between your |/su Acrobat|1|/acrob01 pages than the |/to this.pageNum++|/tx or a |/to this.pageNum = 1|/tx JavaScript commands. Always check "live" in a browser to make sure your page content will appear fast enough for effective, fast, and totally glitch-free animation. |h |c For More Help |d Enhancements and improvements on this fast, convenient, and super flexible .PDF animator can be made available to you on a |/su Custom Consulting|1|/info01 basis. Additional GuruGrams are found |/su here|1|/gurgrm01 , PostScript topics |/su here|1|/post01 , and Acrobat info |/su here|1|/acrob01 . |h Further |/surl |6GuruGrams|1|/gurgrm01 await your ongoing support as a |/surl |6Synergetics Partner|1|/advt01 . ) cl startnewpage %%%%%%%%%%%%%%%%%%%% % EOF