%!PS % Some Architect's Perspective Algorithms and Utilities % ===================================================== % by Don Lancaster GG #90 ARCHPERS.PSL /ggnum 90 store % Copyright c 2008 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. First pub 2/08. % All commercial rights and all electronic media rights ~fully~ reserved. % Linking usually welcome. Reposting expressly forbidden. Version 1.1 % 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. % Many routines removed and cleaned at #58 %%%%%%%%%%% 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 % zzzzz keep for search marker % dictionary method << % gg90 /archper1.psl (http://www.tinaja.com/psutils/archper1.psl) /speedup2.pdf (http://www.tinaja.com/glib/speedup2.pdf) /imgview32 (http://www.arcatapet.net/imgv32.cfm) /keycor01.psl (http://www.tinaja.com/glib/keycor01.psl) % gg88 /airbex1 (http://www.tinaja.com/images/bargs/grbpum01.jpg) /airbex2 (http://www.tinaja.com/images/bargs/abfx6d41.jpg) /nowhites.psl (http://www.tinaja.com/psutils/nowhites.psl) /wave1001.jpg (http://www.tinaja.com/images/bargs/wave1001.jpg) /keycor01.pdf (http://www.tinaja.com/glib/keycor01.pdf) /ccelllink (http://www.tinaja.com/glair01.asp#ccell) /vignexamp (http://www.tinaja.com/images/bargs/tk506a01.jpg) % gg87 /lineq04.psl (http://www.tinaja.com/psutils/lineq04.psl) /invegraf.pdf (http://www.tinaja.com/glib/invegraf.pdf) /aosutil1.psl (http://www.tinaja.com/psutils/aosutil1.psl) /airdemo1.jpg (http://www.tinaja.com/images/bargs/airdemo1.jpg) /airstudy.psl (http://www.tinaja.com/psutils/airstudy.psl) /airstudy.log (http://www.tinaja.com/psutils/airstudy.log) /airbrut1.psl (http://www.tinaja.com/psutils/airbrut1.psl) /airbrush.psl (http://www.tinaja.com/glib/airbrush.psl) /airbrush.pdf (http://www.tinaja.com/glib/airbrush.pdf) % gg86 /wikiericsson (http://en.wikipedia.org/wiki/Ericsson_cycle) /trackingcalc (http://www.macslab.com/optsolar.html) /newthermo (http://www.johnsonems.com/jhtec.html) /wikithermoelectric (http://en.wikipedia.org/wiki/Thermoelectric_effect) /newnano (http://www.gizmag.com/researchers-developing-solar-technology-that-works-at-night/8574/) /googlenanoantenna (http://www.google.com/search?q=solar+nanoantennas&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /currentmetalloradical (http://www.sciencedaily.com/releases/2008/02/080217170412.htm) /sciencemetalloradical (http://www.sciencemag.org/cgi/content/abstract/277/5334/1953) /googlemetalloradical (http://www.google.com/search?q=metalloradical+photosynthesis&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /sciencenewsquantumdot (http://www.sciencenews.org/articles/20060603/bob8.asp) /googlequantum (http://www.google.com/search?q=quantum+dot+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /ricetetrapod (http://www.sciencedaily.com/releases/2007/05/070502143631.htm) /googletetrapods (http://www.google.com/search?q=tetrapod+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /solyndra (http://www.solyndra.com/) /miasole (http://www.miasole.com/) /iset (http://www.isetinc.com/) /heliovolt (http://www.heliovolt.net/) /daystar (http://www.daystartech.com/) /globalsolar (http://www.globalsolar.com/) /firstsolar (http://www.firstsolar.com/) /nanosolar (http://www.nanosolar.com) /googlecigs (http://www.google.com/search?q=cigs+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /wikifungible (http://en.wikipedia.org/wiki/Fungibility) /califsetback (http://www.tinaja.com/whtnu06.asp#decades) /springervillepv (http://www.greenwatts.com/pages/solaroutput.asp) /h2gas01 (http://www.tinaja.com/h2gas01.asp) /zomeworks (http://zomeworks.com/) /solarcalc1 (http://www.powerfromthesun.net/CALCULATORS/AngleCalc.html) /solarcalc2 (http://susdesign.com/sunangle/) /googlesolarcalc (http://www.google.com/search?q=solar+angle+calculations&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /muse153.pdf (http://www.tinaja.com/glib/muse153.pdf) /googleexergy (http://www.google.com/search?q=exergy&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /wickexergy (http://en.wikipedia.org/wiki/Exergy) /hack64.pdf (http://www.tinaja.com/glib/hack64.pdf) /whtnu08 (http://www.tinaja.com/whtnu08.asp) /energfun.pdf (http://www.tinaja.com/glib/energfun.pdf) % gg85 /bmp2psa.pdf (http://www.tinaja.com/glib/bmp2psa.pdf) /pixintpl.pdf (http://www.tinaja.com/glib/pixintpl.pdf) /gaussjor.pdf (http://www.tinaja.com/glib/gaussjor.pdf) /determinants (http://en.wikipedia.org/wiki/Determinant) % gg84 /img2bmp (http://www.google.com/search?q=postscript+image+to+bitmap+conversion&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /distbug (http://www.adobe.com/devnet/acrobat/downloads/Acrobat_SDK_readme.html) /AOSutil1.psl (http://www.tinaja.com/psutils/AOSutil1.psl) /falseclr.pdf (http://www.tinaja.com/glib/falseclr.pdf) /bannpe06.jpg (http://www.tinaja.com/images/bargs/bannpe06.jpg) /arabbb.jpg (http://www.tinaja.com/images/bargs/araabbb.jpg) % gg83 /pixintp1.pdf (http://www.tinaja.com/psutils/pixintp1.pdf) /pixintp1.psl (http://www.tinaja.com/psutils/pixintp1.psl) /pixintpl.pdf (http://www.tinaja.com/glib/pixintpl.pdf) /pixintpl.psl (http://www.tinaja.com/glib/pixintpl.psl) /wikipedia (http://en.wikipedia.org/wiki/Main_Page) /wikilin (http://en.wikipedia.org/wiki/Bilinear_interpolation) /wikicub (http://en.wikipedia.org/wiki/Bicubic) % gg82 /muse111.pdf (http://www.tinaja.com/glib/muse111.pdf) /pdfanim.pdf (http://www.tinaja.com/glib/pdfanim.pdf) /falseclr.psl (http://www.tinaja.com/glib/falseclr.psl) /dodgebur.pdf (http://www.tinaja.com/glib/dodgebur.pdf) % gg81 /htmlfordummiesbook (http://www.amazon.com/exec/obidos/ISBN=0764589172/donlancastersgurA/) /htmldefinitiveguidebook (http://www.amazon.com/exec/obidos/ISBN=0596527322/donlancastersgurA/) % gg80 /kearney (http://www.cs.uiowa.edu/~kearney/pubs/CurvesAndSufacesClosestPoint.pdf) /cmindist.psl (http://www.tinaja.com/glib/cmindist.psl) /piecewise (http://delivery.acm.org/10.1145/810000/801153/p229-plass.pdf?key1=801153&key2=0010608811&coll=GUIDE&dl=&CFID=15151515&CFTOKEN=6184618) /nubzlen1.pdf (http://www.tinaja.com/glib/nubzlen1.pdf) /nubz4pts1.pdf (http://www.tinaja.com/glib/nubz4pts1.pdf) % entered during gg79 /gonzotut.pdf (http://www.tinaja.com/glib/gonzotut.pdf) /gonzotut.psl (http://www.tinaja.com/glib/gonzotut.psl) /bookcvr1.pdf (http://www.tinaja.com/glib/bookcvr1.pdf) /swingtlt.pdf (http://www.tinaja.com/glib/swingtlt.pdf) /curvetr2.pdf (http://www.tinaja.com/psutils/curvetr2.pdf) /curvetr2.psl (http://www.tinaja.com/psutils/curvetr2.psl) /blanksusa (http://www.blanksusa.com) /gonzotut.psl (http://www.tinaja.com/glib/gonzotut.psl) /ps8dprp1.pdf (http://www.tinaja.com/glib/ps8dprp1.pdf) /pdfedit1.pdf (/http://www.tinaja.com/glib/pdfedit1.pdf) % entered during gg78 /enhebay6.psl (http://www.tinaja.com/glib/enhebay6.psl) /enhebay6.pdf (http://www.tinaja.com/glib/enhebay6.pdf) /slashdot (http://www.slashdot.org) /blackrangelodge (http://www.blackrangelodge.com/) /kijiji (http://www.phoenix.kijiji.com) /aznews (http://www.usnpl.com/aznews.html) /azschools (http://www.ade.state.az.us/schools/schools/districts.asp) /azcounties (http://www.az.gov/webapp/portal/displaycontent.jsp?name=county) /aztowns( http://www.azleague.org/index.cfm?fuseaction=about.cities) /natuniv (http://www.utexas.edu/world/univ/state/) /natcc (http://www.50states.com/college/arizona.htm) /barbiecollect (http://www.barbiecollector.com/shop/dept.aspx?deptid=2&shelfid=02&view=all) /googlebarbie (http://www.google.com/search?q=barbie+doll&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /wikibarbie (http://en.wikipedia.org/wiki/Barbie) /countyourassests (http://www.soldyourway.com/) /christies (http://www.christies.com/home_page/home_page.asp) /sothebys (http://www.sothebys.com) /franklinmint (http://en.wikipedia.org/wiki/Franklin_Mint) /klausbarbie (http://en.wikipedia.org/wiki/Klaus_Barbie) /enhebay5.pdf (http://www.tinaja.com/glib/enhebay5.pdf) /whtnu06 (http://www.tinaja.com/whtnu07.asp) /whtnu07 (http://www.tinaja.com/whtnu07.asp) % entered during gg77 /fastmsol.pdf (http://www.tinaja.com/glib/fastmsol.pdf) % entered during gg76 /ieeefp (http://en.wikipedia.org/wiki/IEEE_754) /ps8dprpt.psl (http://www.tinaja.com/psutils/ps8dprpt.psl) % entered during gg75 /pstrans2.pdf (http://www.tinaja.com/glib/pstrans2.pdf) /ghostscript (http://pages.cs.wisc.edu/~ghost/doc/AFPL/index.htm) /PLRM (http://www.adobe.com/products/postscript/pdfs/PLRM.pdf) /pdfref (http://www.adobe.com/devnet/pdf/pdf_reference.html) % entered during gg 74 /ebaymktsearch (http://pages.ebay.com/marketplace%5Fresearch/) /ebaystat.psl (http://www.tinaja.com/glib/ebaystat.psl) /ebayadvsearch (http://search.ebay.com/ws/search/AdvSearch?sofindtype=13&_trksid=m37) /ebaystatservice (http://www.medved.net/cgi-bin/cal.exe?EIND) % entered during gg 73 /bridge701.psl (http://www.tinaja.com/magsn_5/bridge701.psl) /bridge701.pdf (http://www.tinaja.com/magsn_5/bridge701.pdf) /demo28a (http://www.tinaja.com/demo28a.asp) /gaussjordan (http://en.wikipedia.org/wiki/Gauss-Jordan_elimination) /sinseries (http://www.ucl.ac.uk/Mathematics/geomath/level2/series/ser11.html) /newtonmethod (http://en.wikipedia.org/wiki/Newton's_method) /trigidentity (http://www.sosmath.com/trig/Trig5/trig5/trig5.html) /demo28a.asp (http://www.tinaja.com/demo28a.asp) % entered during gg 71 /detmssol.pdf (http://www.tinaja.com/glib/detmssol.pdf) /detmssol.psl (http://www.tinaja.com/glib/detmssol.psl) /alvinpile (http://www.tinaja.com/glib/enhebay2.pdf) % duplicate name /dilbert (http://www.dilbert.com) /putty (http://www.putty.nl) /legible1.pdf (http://www.tinaja.com/glib/legible1.pdf) /muse144.pdf (http://www.tinaja.com/glib/muse144.pdf) /webcolr.pdf (http://www.tinaja.com/psutils/webcolor.pdf) /ifilter (http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611) /drmsbiz1 (http://reform.house.gov/UploadedFiles/MG%20Williams%20July%2025%20Testimony.pdf) /drmsbiz2 (http://www.gao.gov/new.items/d05277.pdf) /drmsclosed (http://www.drms.dla.mil/A76/transitionsitelistrevised.pdf) /drmsmap (http://www.drms.dla.mil/meo/routemap.htm) /drms (http://www.drms.dla.mil/) /enhebay4.pdf (http://www.tinaja.com/glib/enhebay4.pdf) % entered during gg 70 /insidegame (http://www.amazon.com/exec/obidos/ISBN%3D1585006246/donlancastersgurA/002-8267096-8078436) /auctionbytes (http://www.auctionbytes.com) /texasauctionlaw (Texas auction law: http://www.license.state.tx.us/auc/auction.htm) /shermananti (http://www.gamingip.com/Statutes/ShermanAct/ST-Sherman1-4.html) /mainantique (http://www.antiquedigest.com/articles/auclaw.htm) /finex1 (http://www.tinaja.com/images/bargs/pwrssrx3.jpg) /knockback.psl (http://www.tinaja.com/psutils/knockback.psl) /krylondull (http://www.krylon.com/main/product_template.cfm?levelid=5&sub_levelid=8&productid=1822&content=product_details) /adeptaabb (http://www.tinaja.com/images/bargs/araabbb.jpg) /bonnette (http://www.bonnetteauctions.com/) /walmartauctionsignup (mailto://Joan.Ramsey@Wal-Mart.com) /walmartauction (http://walmartstores.com/GlobalWMStoresWeb/navigate.do?catg=504&contId=49) /ucc (http://www.law.cornell.edu/ucc/) /whtnu06 (http://www.tinaja.com/whtnu06.asp) % entered during gg69 /wikicat (http://en.wikipedia.org/wiki/Catenary) /bezcat.psl (http://www.tinaja.com/glib/bezcat.psl) /nubz4pts1.pdf (http://www.tinaja.com/glib/nubz4pts1.pdf) % entered during gg68 /nobodydog (http://www.unc.edu/depts/jomc/academics/dri/idog.html) /kaizen (http://en.wikipedia.org/wiki/Kaizen) /circuitcellar (http://www.circuitcellar.com/guru/) /makemag (http://www.makezine.com/) /adamsadventures (http://www.msadams.com/downloads.htm) /linux (http://www.linux.org/) /opensource (http://www.opensource.org/) /craigslist (http://phoenix.craigslist.org/) /autotrader (http://www.autotrader.com/) /lulu (http://www.lulu.com/) /bookmarket (http://www.bookmarket.com/ondemand.html) /burgerking (http://www.bk.com) /newtek (http://www.newtek.com) /memsnet (http://www.memsnet.org/) /muse131.pdf (http://www.tinaja.com/glib/muse131.pdf) /muse120.pdf (http://www.tinaja.com/glib/muse120.pdf) /supercap (http://www.sciencemag.org/cgi/content/abstract/313/5794/1760?maxtoshow=&HITS=10&hits=10&RESULTFORMAT=&fulltext=carbon+pore+sizes&searchid=1&FIRSTINDEX=0&resourcetype=HWCIT) /quantumdots (http://www.google.com/search?q=%22quantum+dots%22+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /datasheetarchive (http://www.datasheetarchive.com/chipPhotos/photosA.html) /googleearth (http://www.earth.google.com) /toystory (http://us.imdb.com/title/tt0114709/) /robotmovie (http://us.imdb.com/title/tt0358082/) /cars (http://us.imdb.com/title/tt0317219/) /netflix (http://www.netflix.com/) /blockbuster (http://www.blockbuster.com/online/) % entered during gg67 /puzz01.psl (http://www.tinaja.com/psutils/puzz01.psl) /alphamet1 ( http://www.tkcs-collins.com/truman/alphamet/alphamet.shtml) /alphamet2 (http://www.tkcs-collins.com/truman/alphamet/alpha_gen.shtml) /alphamet3 (http://users.aol.com/s6sj7gt/mikealp.htm) /msinexec.pdf (http://www.tinaja.com/glib/msinexec.pdf) /paradigm.pdf (http://www.tinaja.com/glib/paradigm.pdf) % entered during gg66 /thunderbird (http://www.thunderbird.com) /spysweeper (http://www.webroot.com/consumer/products/spysweeper/?rc=1651) /norton (http://www.symantec.com/index.htm) /pestpatrol (http://www.pestpatrol.com/) /firefox (http://www.firefox.com) /sciencemag (http://www.sciencemag.org/) /worldfact (http://www.cia.gov/cia/publications/factbook/) /internetdog (http://www.unc.edu/depts/jomc/academics/dri/idog.html) /zipcode (http://www.usps.com/ncsc/lookups/lookup_zip+4.html) /weather (http://www.weather.com/) /thomasreg (http://www.thomasregister.com/) /topozone (http://www.topozone.com/) /yahoostock (http://finance.yahoo.com/) /reversephone (http://www.reversephonedirectory.com/) /uspto (http://www.uspto.gov/patft/index.html) /msnbc (http://www.msnbc.com/) /imdb (http://us.imdb.com/) /loanamort (http://www.hsh.com/calc-amort.html) /kellybook (http://www.kbb.com/) /googlemaps (http://maps.google.com/) /newyorker (http://www.newyorker.com/) /currexch (http://www.xe.net/ucc/) /chemele (http://www.chemicalelements.com) /cnn (http://www.cnn.com) /areacodes (http://decoder.americom.com/cgi-bin/decoder.cgi) /tinajaoffsite (http://www.tinaja.com#offsite) /tinajaengines (http://www.tinja.com#engines) /walmart (http://www.walmart.com) /rssbook (http://www.amazon.com/exec/obidos/ISBN%3D0764588486/donlancastersgurA/002-5434897-4181636) /webwb01 (http://www.tinaja.com/webwb01.asp) /weblib01 (http://www.tinaja.com/weblib01.asp) /validator (http://rss.scripting.com/) /webbooks (http://www.tinaja.com/books/bkwbmast.asp) /dreamweaver (http://www.adobe.com/products/dreamweaver/) /golive (http://www.adobe.com/products/golive/) /frontpage (http://office.microsoft.com/en-us/FX010858021033.aspx) /htmlbooks (http://www.tinaja.com/books/bkhtml.asp) /htmldummybook (http://www.amazon.com/exec/obidos/ISBN=0764507230/donlancastersgurA/) /naa (http://www.auctioneers.org) /histolog.pdf (http://www.tinaja.com/glib/histolog.pdf) /analogeb.pdf (http://www.tinaja.com/glib/analogeb.pdf) /enhebay3.pdf (http://www.tinaja.com/glib/enhebay3.pdf) /ipswitch (http://www.ipswitch.com/Products/WS_FTP) /networksolutions (http://www.networksolutions.com) /whois (http://www.networksolutions.com/cgi-bin/whois/whois) % entered furing gg65 msexec summary /picpro (http://www.tinaja.com/glib/mspicpro.pdf) /fourier (http://www.tinaja.com/glib/muse90.pdf) % entered during GG64 log log graphs /pdfrm1 (http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/pdf_creation_apis_and_specs/pdfmarkReference.pdf) /loglog01.psl (http://www.tinaja.com/psutils/loglog01.psl) /loglog01.pdf (http://www.tinaja.com/glair/loglog01.pdf) /bookcvr1.psl (http://www.tinaja.com/psutils/bookcvr1.psl) /bookcvr1.pdf (http://www.tinaja.com/glair/bookcvr1.pdf) % entered during gg 63 two phase magic sinewaves /numschip.pdf (http://www.tinaja.com/glib/numschip.pdf) /mspicpro.pdf (http://www.tinaja.com/glib/mspicpro.pdf) % entered during gg 62 enhance III /analogeb.pdf (http://www.tinaja.com/glib/analogeb.pdf) /rss (http://www.tinaja.com/whtnu.xml) /oreproptable (http://www.tinaja.com/whtnu05.asp#rogue3) /javascriptslideshow (http://www.codelifter.com/main/javascript/slideshow4.html) /logrptx2.psl (http://www.tinaja.com/psutils/logrptx2.psl) % entered during GG61 /jpg2pdf.pdf (http://www.tinaja.com/glib/jpg2pdf.pdf) /barcodeonline (http://www.raise-the-bar.co.uk/cgi-bin/webbarcodegen.pl) /barcodegen (http://www.terryburton.co.uk/barcodewriter/) /barcodetutorial (http://www.barcode-us.com/info_center/bookinfo.htm) /isbn (http://www.isbn.org/standards/home/index.asp) /bookcovr.psl (http://www.tinaja.com/glib/bookcovr.psl) /bookcovr.pdf (http://www.tinaja.com/glib/bookcovr.pdf) /begstuff (http://www.tinaja.com/post01.asp#begstuff) /ghostscript (http://www.cs.wisc.edu/~ghost/) /bod01 (http://www.tinaja.com/bod01.asp) % entered during GG 60 /bezlenjf.pdf (http://www.tinaja.com/glib/bezlenjf.pdf) /bzlnsub1.psl (http://www.tinaja.com/psutils/bzlnsub1.psl) /cubemath.pdf (http://www.tinaja.com/glib/cubemath.pdf) % entered during GG 59 /imbz4p01.psl (http://www.tinaja.com/psutils/imbz4p01.psl) /cubemath.pdf (http://www.tinaja.com/glib/cubemath.pdf) /bernstein (http://graphics.idav.ucdavis.edu/education/CAGDNotes/Bernstein-Polynomials.pdf) /ellipse4.psl (http://www.tinaja.com/glib/ellipse4.psl) /wnhsl (http://www.tinaja.com/whatnu05.asp#hsl) /stalac.pdf (http://www.tinaja.com/glib/stalac.pdf) /santa01 (http://www.tinaja.com/santa01.asp) /imxytab.psl (http://www.tinaja.com/psutils/imxytab.psl) /nonlingr.pdf (http://www.tinaja.com/glib/nonlingr.pdf) /unibmm01.psl (http://www.tinaja.com/psutils/unibm01.psl) /webimage.pdf (http://www.tinaja.com/glib/webimage.pdf) /keycor01.pdf (http://www.tinaja.com/glib/keycor01.pdf) /nubkg01.psl (http://www.tinaja.com/psutils/nubkg01.psl) /basis.pdf (http://www.tinaja.com/glib/basis.pdf) /fixtlt01.psl (http://www.tinaja.com/psutils/fixtlt01.psl) /swingtlt.pdf (http://www.tinaja.com/glib/swingtlt.pdf) /swingt01.psl (http://www.tinaja.com/psutils/swingt01.psl) /perspec1.pdf (http://www.tinaja.com/glib/perspec1.pdf) /starwars.psl (http://www.tinaja.com/psutils/starwars.psl) /video901.jpg (http://www.tinaja.com/images/bargs/finalc9.jpg) /video901.bmp (http://www.tinaja.com/images/bargs/finalc9.bmp) /autobmf1.psl (http://www.tinaja.com/psutils/autobmf1.psl) /bmfauto1.pdf (http://www.tinaja.com/glib/bmfauto1.pdf) /autobm1.psl (http://www.tinaja.com/psutils/autobmf1.psl) /bmdemo1.bmp (http://www.tinaja.com/psutils/bmdemo1.bmp) /adobeifilter (http://www.adobe.com/support/downloads/product.jsp?product=1&platform=Windows) /myriadfont (http://store.adobe.com/type/browser/P/P_1706.html) /stonefont (http://store.adobe.com/type/browser/F/STAQ/F_STAQ-11705000.html) /cleartype (http://grc.com/cleartype.htm) /adobeacrobat (http://www.adobe.com/products/acrobat/main.html) /acroread (http://www.adobe.com/products/acrobat/readstep2.html) /dutchdare (http://www.darenet.nl/page/language.view/home) /sedn (news:///sci.electronics.design) /sern (news:///sci.electronics.repair) /mcmaster (http://www.mcmaster.com/ ) /smallparts (http://www.smallparts.com/ ) /grainger (http://www.grainger.com/Grainger/ ) /mouser (http://www.mouser.com/ ) /digikey (http://www.digikey.com/ ) /allied (http://www.alliedelec.com/ ) /newark (http://www.newark.com/) /thomasreg (http://www.thomasregister.com/) /whtnu05 (http://www.tinaja.com/whtnu05.asp) /refurblg.pdf (http://www.tinaja.com/glib/refurblg.pdf) /refurb.pdf (http://www.tinaja.com/glib/refurb.pdf) /advetorl.pdf (http://www.tinaja.com/glib/advetorl.pdf) /sotofamilia (http://cgi6.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=ViewListedItems&userid=sotofamilia&include=0&since=7&sort=3&rows=100) /marcia.pdf (http://www.tinaja.com/glib/marcia.pdf) /auctscne.pdf (http://www.tinaja.com/glib/auctscne.pdf) /ebaysell.pdf (http://www.tinaja.com/glib/ebaysell.pdf) /ebayspoof (mailto:spoof@ebay.com) /auct01links (http://www.tinaja.com/auct01.asp#links) /enhebay2.pdf (http://www.tinaja.com/glib/enhebay2.pdf) /enhebay1.pdf (http://www.tinaja.com/glib/enhebay1.pdf) /pdfflash.pdf(http://www.tinaja.com/glib/pdfflash.pdf) /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.psl) /rebound1.pdf (http://www.tinaja.com/glib/rebound1.pdf) /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) /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) /moreebay (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.psl) /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) /muse153 (http://www.tinaja.com/glib/muse153.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) /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/blat01.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) /oldfuzzybez (http://www.tinaja.com/text/fuzzybez.html) /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) /expbmp.pdf (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) % dead /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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% page manager /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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % //// 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? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Burplebox routines /burpwide 29.5 store /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 { /burplebox1 {1.5 burpcom} store /burplebox1.5 {2 burpcom} store /burplebox2 {2.5 burpcom} store /burplebox2.5 {3 burpcom} store /burplebox3 {3.5 burpcom} store /burplebox3.5 {4 burpcom} store /burplebox4 {4.5 burpcom} store /burplebox4.5 {5 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 /burplebox17 {17.5 burpcom} store /burplebox17.5 {18 burpcom} store /burplebox18 {18.5 burpcom} store /burplebox18.5 {19 burpcom} store /burplebox19 {19.5 burpcom} store /burplebox19.5 {20 burpcom} store /burplebox20 {20.5 burpcom} store /burplebox21.5 {22 burpcom} store /burplebox22{22.5 burpcom} store /burplebox22.5 {23 burpcom} store /burplebox23 {23.5 burpcom} store /burplebox23.5 {24 burpcom} store /burplebox24{24.5 burpcom} store /burplebox25{25.5 burpcom} store /burplebox25.5{26 burpcom} store /burplebox27{27.5 burpcom} store /burplebox28 {28.5 burpcom} store /burplebox28.5 {29 burpcom} store /burplebox30 {30.5 burpcom} store /burplebox31 {31.5 burpcom} store /burplebox31.5 {32 burpcom} store /burplebox33.5 {34 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 /burplebox41.5{42 burpcom} store /burplebox42 {42.5 burpcom} store /burplebox42.5{43 burpcom} store % nearly a full page /burplebox43 {43.5 burpcom} store } pop 1 1 50 {cvi /size exch store % make all the burpleboxes (burplebox) size 20 string cvs mergestr cvn mark size 0.5 add /burpcom cvx ] cvx store (burplebox) size 0.5 add 20 string cvs mergestr cvn mark size 1 add /burpcom cvx ] cvx store } for /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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % New sequence of auto positioning figures... % combined autopos jpeg conversion and hotlink: /autoimageandlink1 {save /af1 exch store xpos ypos yinc add translate 6.3 -14.1 -12.75 add 684 766 .033 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/grbpum01.jpg) % url first % (http://www.tinaja.com/images/bargs/ce47u25v.jpg) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\90_archpers\\grbpum01.jpg) jpegimageprocwithlink af1 restore} store /autoimageandlink2 {save /af2 exch store xpos ypos yinc add translate 18 -11.8 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/ce47u25v.jpg) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\ce47u25v.jpg) jpegimageprocwithlink af2 restore} store /autoimageandlink3 {save /af1 exch store xpos ypos yinc add translate 1 -12 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/pwrssrx3x.bmp) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\origpwri.jpg) jpegimageprocwithlink af1 restore} store /autoimageandlink4 {save /af2 exch store xpos ypos yinc add translate 18 -12 -1.5 add 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/pwrssrx3.bmp) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\finpwri.jpg) jpegimageprocwithlink af2 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% ordinary tracking figures /autofig1 { /figadvance 10 store save /snap1 exch store xpos 2 add ypos figadvance sub translate figure1 snap1 restore /ypos ypos figadvance sub yinc sub store } store /autofig2 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure2 snap2 restore /ypos ypos figadvance sub yinc sub store } store /autofig3 { /figadvance 13 store save /snap22 exch store xpos 2 add ypos figadvance sub translate figure3 snap22 restore /ypos ypos figadvance sub yinc sub store } store /autofig4 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure4 snap2 restore /ypos ypos figadvance sub yinc sub store } store %%%%%%%%%%%%%%% fixed position figures here %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% begin current gg figures removed many previous %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % figure2 for gg90 /figure2 { save /snap3 exch store -24.5 -12.5 translate % position in box 0.1 dup scale % reworked starwars /txtwide 8000 store /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def /q {gsave} def /Q {grestore} def /n {newpath} def /h {closepath} def /w {setlinewidth} def /W {clip} def /setSA {setstrokeadjust} def /d {setdash} def /f {fill} def /S { stroke} def /cs {setcolorspace} def /sc {setcolor} def /re { 4 2 roll m 1 index 0 rlineto 0 exch rlineto neg 0 rlineto h } def %%% start starwars 0 setgray q 243.0 36.0 m 531.0 36.0 l 531.0 252.0 l 243.0 252.0 l h W % fill n true setSA 1.5 w 0.702 w 0.175 w [4.563 1.053 1.404 1.404 ] 1.053 d 0.702 w [] 0.0 d q n 440.678 644.58 m 440.678 649.026 439.196 652.38 436.466 653.94 c 430.85 657.216 421.724 651.912 416.03 642.162 c 410.414 632.412 410.414 621.882 416.03 618.606 c 421.724 615.33 430.85 620.634 436.466 630.384 c 439.196 635.064 440.678 640.212 440.678 644.58 c W n 0.351 w Q 0.351 w 0.702 w q n 367.904 627.966 m 367.904 632.334 366.344 637.482 363.692 642.162 c 357.998 651.912 348.872 657.216 343.256 653.94 c 337.64 650.664 337.64 640.134 343.256 630.384 c 348.872 620.634 357.998 615.33 363.692 618.606 c 366.344 620.166 367.904 623.52 367.904 627.966 c W n 0.351 w Q 1.755 w 0.351 w 0.702 w q n 399.728 692.16 m 403.55 694.344 405.656 697.386 405.656 700.506 c 405.656 706.98 396.53 712.284 385.298 712.284 c 373.988 712.284 364.862 706.98 364.862 700.506 c 364.862 693.954 373.988 688.728 385.298 688.728 c 390.68 688.728 395.906 689.976 399.728 692.16 c W n 0.351 w Q 1.755 w 0.351 w 1.5 w n 389.0 66.0 m 258.6 66.0 l 258.545 66.0 258.5 66.045 258.5 66.1 c 258.5 250.92 l 258.5 250.975 258.545 251.02 258.6 251.02 c 519.4 251.02 l 519.455 251.02 519.5 250.975 519.5 250.92 c 519.5 66.1 l 519.5 66.045 519.455 66.0 519.4 66.0 c 389.0 66.0 l [/DeviceRGB] cs 1.0 0.908 0.769 sc q f Q 0.505 0.303 0.0 sc S 0.0 0.0 0.0 sc /cstretch 0.025 store /sstretch 0.025 store /kern 0.02 store /font1 /Helvetica [8 0 0 7.5 0 0] gonzofont /font2 /Symbol 8 gonzofont /font3 /Helvetica [5 0 0 5 0 4.3] gonzofont font1 302.0 140.3 (Select a tilt angle |2q|1 with 0|3o|1 = flat and 90|3o|1 = vertical.) cl 302.0 126.8 (Predefine a tilt factor geometric constant k\274) cl 302.0 113.3 ( k = fullheight * tan|2q|1) cl 302.0 99.8 (The nonlinear transform is then\274)cl 302.0 86.3 ( x\251 = xk|j/|j\(k + y|j\)) cl 302.0 77.3 ( y\251 = yk|j/|j\(k + y|j\)) cl q n 241.78 631.52 466.944 -621.312 re W n n 0.0 792.06 612.0 -792.0 re W n 1.2 w n 302.5 164.0 m 336.346 232.923 l 444.654 232.923 l 478.5 164.0 l h 1.0 0.734 0.335 sc q f Q 0.505 0.303 0.0 sc S n 321.14 175.2 m 325.043 175.2 l 328.049 182.919 l 334.246 182.919 l 335.358 186.088 l 329.283 186.088 l 330.79 189.96 l 337.001 189.96 l 338.012 192.859 l 328.426 192.859 l f n 335.62 175.2 m 339.523 175.2 l 341.718 182.432 l 345.051 175.2 l 349.866 175.2 l 346.095 182.187 l 347.54 182.48 348.9 182.96 350.1 183.92 c 351.3 184.88 352.34 186.48 352.66 187.68 c 353.06 189.28 352.58 190.8 351.46 191.76 c 350.26 192.72 348.58 192.88 346.82 192.88 c 341.364 192.88 l h 342.42 184.96 m 343.945 189.985 l 345.92 189.985 l 346.98 190.0 347.78 189.92 348.42 189.44 c 348.98 188.96 349.22 188.24 348.98 187.52 c 348.82 186.8 348.34 186.16 347.62 185.68 c 346.66 185.04 345.46 184.96 344.5 184.96 c f n 352.9 175.2 m 364.211 175.2 l 364.756 178.678 l 357.501 178.678 l 358.352 182.919 l 365.12 182.919 l 365.622 186.088 l 358.987 186.088 l 359.764 189.96 l 366.521 189.96 l 366.975 192.859 l 356.853 192.859 l f n 368.42 175.2 m 379.731 175.2 l 379.953 178.678 l 372.699 178.678 l 373.156 182.919 l 379.925 182.919 l 380.133 186.088 l 373.498 186.088 l 373.916 189.96 l 380.673 189.96 l 380.858 192.859 l 370.736 192.859 l f n 392.74 175.2 m 396.643 175.2 l 396.36 182.919 l 402.557 182.919 l 402.318 186.088 l 396.243 186.088 l 396.101 189.96 l 402.312 189.96 l 402.088 192.859 l 392.502 192.859 l f n 414.18 193.2 m 408.74 193.2 404.74 189.44 405.22 184.48 c 405.7 179.2 411.14 174.72 417.14 174.72 c 423.14 174.72 427.14 179.2 425.94 184.48 c 424.82 189.44 419.62 193.2 414.18 193.2 c h 414.66 190.24 m 418.26 190.24 421.62 187.76 422.26 184.48 c 422.9 181.2 420.34 178.24 416.58 178.24 c 412.82 178.24 409.3 181.2 408.9 184.48 c 408.5 187.76 411.06 190.24 414.66 190.24 c f n 431.86 175.2 m 435.763 175.2 l 432.195 188.435 l 444.596 175.2 l 448.927 175.2 l 442.782 192.859 l 439.289 192.859 l 443.351 180.351 l 431.436 192.859 l 427.51 192.859 l f n 455.78 175.2 m 459.683 175.2 l 453.597 189.96 l 457.184 189.96 l 455.921 192.859 l 445.442 192.859 l 446.503 189.96 l 450.037 189.96 l f n 331.54 200.32 m 334.86 200.32 l 337.049 205.943 l 342.357 205.943 l 343.174 208.274 l 337.957 208.274 l 339.073 211.14 l 344.426 211.14 l 345.179 213.299 l 336.895 213.299 l f n 343.78 200.32 m 347.1 200.32 l 348.698 205.585 l 351.801 200.32 l 355.897 200.32 l 352.453 205.406 l 353.7 205.6 354.82 206.0 355.86 206.64 c 356.82 207.36 357.7 208.56 357.94 209.44 c 358.18 210.64 357.78 211.76 356.74 212.48 c 355.7 213.2 354.26 213.28 352.74 213.28 c 348.025 213.28 l h 349.3 207.44 m 350.427 211.156 l 352.13 211.156 l 352.98 211.12 353.7 211.12 354.26 210.72 c 354.74 210.4 354.98 209.84 354.82 209.36 c 354.66 208.8 354.26 208.32 353.62 207.92 c 352.9 207.52 351.86 207.44 350.98 207.44 c f n 358.5 200.32 m 368.121 200.32 l 368.516 202.844 l 362.326 202.844 l 362.948 205.943 l 368.744 205.943 l 369.113 208.274 l 363.415 208.274 l 363.99 211.14 l 369.814 211.14 l 370.152 213.299 l 361.405 213.299 l f n 371.7 200.32 m 381.321 200.32 l 381.482 202.844 l 375.292 202.844 l 375.627 205.943 l 381.423 205.943 l 381.576 208.274 l 375.878 208.274 l 376.187 211.14 l 382.011 211.14 l 382.149 213.299 l 373.402 213.299 l f n 392.42 200.32 m 395.74 200.32 l 395.533 205.943 l 400.841 205.943 l 400.665 208.274 l 395.448 208.274 l 395.342 211.14 l 400.696 211.14 l 400.529 213.299 l 392.245 213.299 l f n 410.98 213.52 m 406.26 213.52 402.74 210.72 403.14 207.04 c 403.46 203.2 408.02 200.0 413.14 200.0 c 418.26 200.0 421.78 203.2 420.9 207.04 c 420.1 210.72 415.7 213.52 410.98 213.52 c h 411.3 211.36 m 414.42 211.36 417.22 209.52 417.7 207.12 c 418.18 204.64 415.94 202.48 412.74 202.48 c 409.54 202.48 406.58 204.64 406.26 207.12 c 406.02 209.52 408.26 211.36 411.3 211.36 c f n 425.62 200.32 m 428.94 200.32 l 426.328 210.008 l 436.452 200.32 l 440.136 200.32 l 435.62 213.299 l 432.601 213.299 l 435.6 204.064 l 425.815 213.299 l 422.423 213.299 l f n 446.02 200.32 m 449.34 200.32 l 444.879 211.14 l 447.97 211.14 l 447.029 213.299 l 437.974 213.299 l 438.764 211.14 l 441.81 211.14 l f n 339.22 218.88 m 342.108 218.88 l 343.774 223.158 l 348.415 223.158 l 349.041 224.944 l 344.469 224.944 l 345.328 227.15 l 350.032 227.15 l 350.614 228.82 l 343.321 228.82 l f n 349.86 218.88 m 352.748 218.88 l 353.963 222.884 l 356.838 218.88 l 360.401 218.88 l 357.251 222.747 l 358.34 222.88 359.3 223.2 360.18 223.68 c 361.06 224.24 361.78 225.12 361.94 225.84 c 362.18 226.72 361.7 227.6 360.82 228.16 c 359.86 228.8 358.58 228.8 357.3 228.8 c 353.149 228.8 l h 354.42 224.32 m 355.287 227.179 l 356.783 227.179 l 357.54 227.2 358.1 227.12 358.66 226.8 c 359.14 226.56 359.3 226.16 359.14 225.76 c 359.06 225.36 358.74 224.96 358.18 224.72 c 357.54 224.4 356.66 224.32 355.94 224.32 c f n 362.66 218.88 m 371.03 218.88 l 371.329 220.795 l 365.932 220.795 l 366.406 223.158 l 371.475 223.158 l 371.758 224.944 l 366.764 224.944 l 367.207 227.15 l 372.324 227.15 l 372.585 228.82 l 364.885 228.82 l f n 374.18 218.88 m 382.55 218.88 l 382.672 220.795 l 377.275 220.795 l 377.53 223.158 l 382.599 223.158 l 382.716 224.944 l 377.723 224.944 l 377.961 227.15 l 383.077 227.15 l 383.184 228.82 l 375.484 228.82 l f n 392.1 218.88 m 394.988 218.88 l 394.831 223.158 l 399.472 223.158 l 399.338 224.944 l 394.766 224.944 l 394.684 227.15 l 399.388 227.15 l 399.259 228.82 l 391.966 228.82 l f n 408.5 228.96 m 404.42 228.96 401.3 226.8 401.54 224.0 c 401.78 221.04 405.7 218.64 410.18 218.64 c 414.58 218.64 417.78 221.04 417.06 224.0 c 416.5 226.8 412.66 228.96 408.5 228.96 c h 408.82 227.36 m 411.54 227.36 413.94 225.92 414.34 224.08 c 414.66 222.16 412.66 220.56 409.86 220.56 c 407.06 220.56 404.5 222.16 404.26 224.08 c 404.1 225.92 406.1 227.36 408.82 227.36 c f n 421.06 218.88 m 423.948 218.88 l 421.954 226.278 l 430.484 218.88 l 433.688 218.88 l 430.229 228.82 l 427.572 228.82 l 429.877 221.723 l 421.598 228.82 l 418.611 228.82 l f n 438.82 218.88 m 441.708 218.88 l 438.298 227.15 l 441.014 227.15 l 440.286 228.82 l 432.315 228.82 l 432.926 227.15 l 435.602 227.15 l f snap3 restore } store % end figure 2 %%%%%%%%%%%%%%%%%%%%%%%%%% /figure3 { save /snap33 exch store % box for gg90 -4 -17.3 translate % position in box 0.95 dup scale 10 10 translate 0 0 mt 20 pu 20 pr 20 pd closepath 0.5 1 1 setrgbcolor fill 20 20 showgrid line3 0 0 1 setrgbcolor { 6 3 mt -2 10 rlineto 5 4 3 rlineto 4 -3 rlineto -2 -8 rlineto -2 -4 rlineto closepath stroke} pop line1 black -1 10 mt 22 r 1 0 0 setrgbcolor -1 15.5 mt 22 r % ycorrheight 2 2 mt 16.5 u % oldxleft 3 2 mt 15.5 u % newxleft position 16.4 2 mt 15.5 u % newxright 16.9 2 mt 15.5 u % oldxright position newpath black 12 -1 mt 22 u % by the panel 3.8 5.5 mt 2 15.5 lineto 11 14 lineto 11 3.5 lineto closepath 0.8 0.8 1 setrgbcolor fill 11 3.5 mt 11 14 lineto 17 16.5 lineto 16 5.5 lineto closepath 0.65 0.65 1 setrgbcolor fill 2 15.5 mt % top panel 8 17 lineto 17 16.5 lineto 11 14 lineto closepath 0.53 0.53 1 setrgbcolor fill black /cstretch 0 store /sstretch 0 store /font1 /StoneSans 0.9 gonzofont font1 /yinc 1 store -2.5 9.7 (ycen) cc -3.7 15.2 (ycorrheight) cc -3.2 2.75 (leftxshift) cc 17.7 0.7 (image) cc 7.3 7.5(subject) cc 21.3 2.75 (rightxshift) cl 7 2.75 (xcorrwidth) cc 12 21.5 (xcen) cc %% bottom arrows black -1 3 mt 3 r rarrow 4.5 3 mt 1.5 l larrow 21 3 mt 4.1 l larrow 14 3 mt 2.4 r rarrow 14 3 mt 4.5 l 2 18.7 (oldxleft) cc snap33 restore } store % end figure 3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end current figures %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Specific file info here /font; /Helvetica [0.7 0 0 0.7 0 0.4] gonzofont font1 /font- /Symbol 0.85 gonzofont aqua 0.33 setgray font0 /narrowx {/txtwide txtwide 8.5 sub store} store /widenx {/txtwide txtwide 8.5 add store} store /burpon {mark /burple cvx 0.33 /setgray cvx ] cvx % additional internal gonzo printlist exch 3 index exch put exch 1 add exch} def /burpoff {mark /aqua cvx 0 /setgray cvx ] cvx printlist exch 3 index exch put exch 1 add exch} def /darkenheader {save /headsnap exch store xpos 1 sub ypos 0.2 add translate 0.3 1 1 setrgbcolor 0 0 mt 3.2 pd burpwide pr 3.2 pu closepath fill headsnap restore} store % sssssssssssssssssssss % start marker % Some Architect's Perspective Algorithms and Utilities % ===================================================== % by Don Lancaster GG #90 POSTPROC.PSL 20 48.3 0.7 add % 1 sub (|0Some |jArchitect's |jPerspective)cc 20 46.3 0.7 add % 1 sub (Algorithms |jand |jUtilities) cc black font2 textleft 43 0.3 add % this one only need |h below (|h|/aqua |/staytint1 |3Don Lancaster Synergetics, Box 809, Thatcher, AZ 85552 copyright c2008 pub 5/08 as |/surl |6GuruGram|1|/gurgrm01 |/tinton1 |6#90 |/surl http://www.tinaja.com|/tinaja |/surl don@tinaja.com|/maildon (928) 428-4073 |/aqua |/black |a|0C|b|1lassic studio view cameras had a number of adjustments on them that allowed image corrections. One of these was a centered |/to vertical tilt|/tx on the film plane back. Used properly, this tilt could make the sides of buildings (|jand telephone poles in particular|j) perfectly vertical. Such an intentional distortion is often called an |/to Arcihtect's Perspective|/tx . |h Today, the same effect can look quite good on |/su eBay|1|/ebay product photos\274 |/autoimageandlink1 Note how the vertical edges in the image are in fact vertical. I've long had a set of perspective correction utilities available for your use. ) cl startnewpage (|1Such as |/su KEYCOR01.PSL|1|/keycor01.psl which we reviewed in the |/su Image Keystone Correction|1|/keycor01.pdf of |/su GuruGram #55|1|/gurgrm01 . Or our earlier |/su SWINGT01.PSL|1|/swingt01.psl which we reviewed in the |/su Digital|/swingtlt.pdf |/su Camera Swings and Tilts|1|/swingtlt.pdf back in |/su GuruGram #15|1|/gurgrm01 . |h Sadly, these utilities had a flaw in that they would introduce |/to curvature distortion|/tx for higher tilt values. This was caused by attempting to work one pixel line at a time when rewriting the |/su bitmaps|1|/expbmp.pdf . |h With our latest |/su AOSUTIL1.PSL|1|/aosutil1.psl utilities first described in our |/su Bitmap to PS Array|/bmp2psa.pdf |/su Conversions|1|/bmp2psa.pdf of |/su GuruGram #84|1|/gurgrm01 and enhanced upon here, it is now possible to do true image remapping in both |/to X|/tx and |/to Y|/tx directions at the same time. While greatly reducing any distortions for higher amounts of correction. |h A new |/su ARCHPER1.PSL|1|/archper1.psl utility set is now available that does these improved Architect's Perspective corrections for you. It takes an existing .BMP image , makes suitable tilt and keystone modifications, and then resaves as a new and corrected .BMP image. You use this utility by reading it as an ordinary ASCII textfile, modifying some data values in a textfile or editor, and then sending it to |/su Acrobat Distiller|1|/acrob01 . |h By |/su Using Acrobat Distiller as a PostScript Computer|1|/distlang.pdf . |h While the utility is written in |/su PostScript|1|/post01 and optionally uses my |/su Gonzo Utilities|1|/gonzotut.pdf , no knowledge of PostScript programming is required for routine use. |h One Gotcha: |6|/shiftin |/aqua |/staytint1 |/burplebox7 |h Acrobat Distiller versions newer than 8.1 default to preventing diskfile access. |h The workaround from Windows is to run "Acrodist -F" from the command line |h Solutions for other systems are found |/su here|1|/distbug |/to . |h |1|/shiftout |/aqua |/black |h If you think of your image as similar to that on a view camera's ground glass, the tilt correction geometry you will need turns out to be remarkably similar to\274 |h |c The |jStarwars |jNonlinear |jTransform |d An intro tutorial on nonlinear graphics transforms appears as |/su NONLINGR.PDF|1|/nonlingr.pdf . In general, a linear transform lets you move, magnify, rotate, or even anamorphically stretch an image. |h Anything fancier (|jsuch as converting a trapezoid to a rectangle|j) will demand more exotic nonlinear techniques. As will Architect's Perspective. |h One of the more common tutorial examples was this |/to Starwars Transform|/tx \274 ) cl startnewpage (|/autofig2 |1The tilt factor |/to k|/tx is the distance to the vanishing point Both nonlinear transforms follow by way of similar triangles. |h We'll need two modifications of the Starwars transform for Architect's Perspective. These involve moving into a |/to centered space|/tx that the nonlinear transforms will work around. |h First, we will add a |/to ycen|/tx that vertically centers our tilting action. In deference to its view camera heritage and to prevent any "top vs bottom" numeric problems, |/to we will usually keep ycen at one half the total image height|/tx . |h A second |/to xcen|/tx mod will also be added. |/to xcen will be the axis of zero horizontal |/to correction|/tx . It is used to apportion (|jor balance|j) how much fix is to be applied to the right and left subject edges. In general, |/to xcen|/tx will |/to not|/tx be in the middle. And could even be far left or far right if both subject edges lean the same way. |h The translations between our image space and centered space are\274 |6|/shiftin |/aqua |/staytint1 |/burplebox5.5 |h centeredx = imagex - xcen centeredy = imagey - ycen |h imagex = centeredx + xcen imagey = centeredy + ycen |h |1|/shiftout |/aqua |/black |h It is super important to linearly transform between the centered and image spaces, while nonlinearly transforming only about the |/to 0,0|/tx axis of the centered image space. The Architect's Perspective forward nonlinear transforms are\274 ) cl startnewpage (|6|/shiftin |/aqua |/staytint1 |/burplebox6 |h ycnew = ycold|j*[|jzzz|j/(|jzzz + ycold|j)|j] xcnew = xcold|j*[|jzzz|j/(|jzzz + ycold|j)|j] |h xcnew simplifies to\274 |h xcnew = xcold|j*(ycnew/ycold) |h |1|/shiftout |/aqua |/black |h For high processing speeds, |/to we absolutely must minimize all the individual new |/to pixel-by-pixel calculations|/tx . Fortunately, |/to ycnew|/tx needs only done once per line, not every pixel. |h And our |/to xcold|/tx requires only a simply scaling at pixel calc time. You can see that |/to ycnew/ycold|/tx equals|/to 1|/tx at |/to y=0|/tx . You will definitely want to trap this out to prevent a possible |/to div0|/tx hassle. |h |/to zzz|/tx here is now the distance from the center to the vanishing point and will be |/to ycen|/tx times the tangent of the tilt angle. Our vanishing point will be infinite at 90 degrees and zero when "flat" at 0 degrees. |h Normal nonlinear transforms are a "goes to" sort of thing. When pixel remapping, we will instead need |/to reverse|/tx or "comes from" nonlinear transforms. As detailed in |/su INVEGRAF.PDF|1|/invegraf.pdf of |/su GuruGram #85|1|/gurgrm01 . |h Here are the Architect's Perspective |/to reverse|/tx nonlinear transforms\274 |6|/shiftin |/aqua |/staytint1 |/burplebox3 |h ycold = ycnew|j*|j[|j zzz /(zzz - ycnew)|j] xcold = xcnew|j*|j(|jycold/ycnew|j) |h |1|/shiftout |/aqua |/black |h We thus have two variables that control our Architect's Perspective nonlinear transform. The |/to zzz|/tx (|jderived from |/to tiltangle|/tx and |/to ycen|/tx |j) decides exactly how much correction to make, and |/to xcen|/tx decides how to balance that correction between the left and right subject edges. We might use these two values to guess the amount of perspective correction needed for a given image. And then refine our guess with a second or third pass. |h But it would seem intuitively better to find a way of\274 |h |c Improving |jData |jInput |d If we know two specific points in an image where an exact amount of correction is required, we can solve the above forward nonlinear transform equations for |/to zzz|/tx and |/to xcen|/tx . Letting us get an exact solution on our first attempt. |h The geometry might end up looking something like this\274 ) cl startnewpage (|/autofig3 |1Key points on your image are easily selectable using the rectangle tools and readouts in Paint, |/su Imageview32|1|/imgview32 , or similar graphics programs. You first select a |/to ycorrheight|/tx , which is the point at which your tilt corrections are to be made. And a |/to xcorrwidth|/tx which will be the new subject width |/to after|/tx all corrections are made. |h Correction values are then measured as |/to oldxleft|1|/tx , |/to leftxshift|/tx and |/to rightxshift|/tx . Our "missing" values can be treated as dependent variables, noting that |/to |/to newxleft = |/to oldxleft + leftxshift|/tx . And that |/to newxright = newxleft + xcorrwidth|/tx . And that our |/to oldxright = newxright + rightxshift|/tx . |h From these values we can now calculate\274 |6|/shiftin |/aqua |/staytint1 |/burplebox5.5 |h xcen = xcorrwudth * [leftxshift /(leftxshift - rightxshift)] + oldxleft + leftxshift |h zzz = [ oldxleft + xcorrwidth - xcen ] * [ycorrheight - ycen]/ leftxshift |h |1|/shiftout |/aqua |/black |h The |/to xcen|/tx calculation uses plain old similar triangles and |/to y = mx + b|/tx . |h |/to xcen|/tx and |/to zzz|/tx are precalculated and only their results reused. Thus preventing unneeded and time wasting repeated math. |h We can optionally find our tilt angle\274 |h ) cl startnewpage (|6|/shiftin |/aqua |/staytint1 |/burplebox2 |h tiltangle = atan|j(|jzzz|j/|jycen|j) |h |1|/shiftout |/aqua |/black |h If |/to xcen|/tx and |/to zzz|/tx are calculated from actual image data, |/to tiltangle|/tx will not normally be needed for the nonlinear transforms. |/to tiltangle|/tx ends up simply an optional visualization aide. |h |c Staying |jon |jthe |jSame |jPage |d Certain reverse nonlinear transforms from |/to xcnew |/tx and |/to ycnew|/tx may try to reach out-of-range data that is above, below, left, or right of the original |/su .BMP|1|/expbmp.pdf bitmap. |h Error testing each individual new pixel one-on-one would likely be highly time prohibitive. Instead, |/to limits should be precalculated|/tx . These precalculations need be done only once per project or once per line at a ridiculously lower total time penalty. |h Here is one way to calculate limits to prevent off bitmap access attempts\274 |6|/shiftin |/aqua |/staytint1 |/burplebox14.5 |h IF yfract = [ zzz /(zzz + ycen) ] > 1 THEN ymin = floor {|j-ycen * yfract } + 1 ELSE ymin = -ycen + 1 |h IF yfract = [ zzz /(zzz + ycen) ] < 1 THEN ymax = floor { ycen / yfract } + 1 ELSE ymax = ycen - 1 |h IF xfract = [ zzz/(zzz + ycnew)] < 1 THEN xmin = int [floor {-xcen * xfract}] + 1 ELSE xmin = -xcen |h IF xfract = [ zzz/(zzz + ycnew)] < 1 THEN xmax = int [floor {(xwidth - xcen) * xfract}] - 1 ELSE xmax = xwidth - xcen - 1 |h |1|/shiftout |/aqua |/black |h For stronger tilt corrections, some recentering or y axis scaling may be needed. These linear transformations are easiest provided in further post processing. |h |c A |jWorking |jUtility |d You can explore Architect's Perspective corrections using our |/su ARCHPER1.PSL|1|/archper1.psl utility. What follows here is best understood by having |/su ARCHPER1.PSL|1|/archper1.psl up in a separate textfile window. |h The utility operates by capturing the original bitmap to three |/su PostScript|1|/post01 arrays of red, green, and blue strings. ) cl startnewpage (|1As detailed in our |/su BMP2PSA.PDF|1|/bmp2psa.pdf of |/su GuruGram #84|1|/gurgrm01 . A new three arrays of strings are separately created as |/to redAOS1|/tx , |/to greenAOS1|/tx , and |/to blueAOS1|/tx . Reverse nonlinear transformations combined with |/su bilineal interpolation|1|/pixintpl.pdf then get done on a pixel by pixel basis to do the transformation. Finally, the new arrays of strings are converted into a final new and corrected bitmap. |h The utility is in four parts, consisting of the basic array-of-strings manipulation procs, some globally exportable routines that may also be of use elsewhere, the actual Architect's perspective code specifics, and a final example area. |h Specifically, our main code loop in |/su ARCHPER1.PSL|1|/archper1.psl is |/to fixtilt|/tx . This first captures our input bitmap to red, green, and blue arrays of strings as |/to redAOS|/tx , |/to greenAOS|/tx , and |/to blueAOS|/tx . Data overflow limits are then calculated for later use. Each new pixel is then processed by way of a combination of a nonlinear reverse transform and a bilineal interpolation. |h Effectively moving each pixel to its corrected position. Finally, the corrected arrays of strings are rewritten to a new output |/su .BMP bitmap|1|/expbmp.pdf . |h Going into more detail, the high level pixel processing is handled by |/to procpixels|/tx . This mid level code sets up a loop within a loop that grabs the output pixel positions one line at a time and then one pixel at a time. Each pixel is then processed by |/to procrgbpers|/tx . |h |/to procrgbpers|/tx in turn does the reverse nonlinear transforms and writes the repositioned old data to appropriate new pixels. |h In general, the old x and y values needed for the current pixel location will be fractional. One of three |/su bilineal interpolators|1|/pixintpl.pdf named |/to doredbilin|/tx , |/to dogreenbilin|/tx , and |/to dobluebilin|/tx are called. Each writes its interpolated old pixel result to the appropriate array of strings. Limits are precalculated to prevent out-of-bounds pixel errors. |h |c Speed |jIssues |d On a faster PC, |/su ARCHPER1.PSL|1|/archper1.psl presently takes around five seconds to correct a |/to 512x512|/tx pixel bitmap. The processing time goes up roughly with the |/to square|/tx of the resolution. A guideline\274 |6|/shiftin |/aqua |/staytint1 |/burplebox5.5 |h Perspective corrections are best done at DOUBLE the final image size. |h Otherwise, crop as tightly as possible and use the lowest possible resolution. |h |1|/shiftout |/aqua |/black |h Speed has been partially optimized on |/su ARCHPER1.PSL|1|/archper1.psl . Besides all of the usual |/su PostScript Speedup Tricks|1|/speedup2.pdf , we might be able to make further improvements. ) cl startnewpage (|1Further speedups should also be possible by optimizing the |/su nonlinear transforms|1|/nonlingr.pdf and the actual |/su bilineal interpolations|1|/pixintpl.pdf . But might make the code more obtuse and difficult to understand. And finally, being very careful when making correction measurements can eliminate the need for any second pass adjustments. |h |c For |jMore |jHelp |d The basic full two dimensional |/su .BMP bitmap to PS Array of Strings|1|/bmp2psa.pdf tutorial appears as |/su BMP2PSA.PDF|1|/bmp2psa.pdf with its actual PS utility at |/su PIXINTP1.PSL|1|/pixintp1.psl . A recent addition was |/su AIRBRUSH.PDF|1|/airbrush.pdf whose capabilities coincidentally appear in our first image above. Additional .BMP manipulation enhancements and expansions are planned. |h News about the latest updates and addons should first appear in |/su WHTNU08.ASP|1|/whtnu08 or later blog entries. |h Similar tutorials and additional support materials are found on our |/su PostScript|1|/post01 and our |/su GuruGram|1|/gurgrm01 library pages. As always, |/su Custom Consulting|1|/info01 is available on a cash and carry or contract basis. As are seminars and workshops. For details, you can email |/su don@tinaja.com|1|/maildon . Or call |/to (928) 428-4073|/tx . ) cl startnewpage % EOF