Tvorba (nejen) 3D grafiky v příkazovém prostředí Asymptote
Transkript
Tvorba (nejen) 3D grafiky v přı́kazovém prostředı́ Asymptote O. Vlach1 1 Katedra Aplikované Matematiky VŠB-TU Ostrava Odborný seminář 17.03.2011 Osnova Úvod 2D grafika 3D grafika Animace O. Vlach Asymptote Historie 1979: TEXa METAFONT(Knuth) 1986: 2D Bezier control point selection (Hobby) 1989: METAPOST(Hobby) 2004: Asymptote 2004: 2005: 2008: 2009: 2010: initial public release (Hammerlindl, Bowman,& Prince) 3D Bezier control point selection (Bowman) 3D interactive TEX within PDF les (Shardt & Bowman) 3D billboard labels that always face camera (Bowman) 3D PDF enhancements (Vidiassov & Bowman) O. Vlach Asymptote Co Asymptote v současnosti umı́ přenositelný standart pro matematickou grafiku generuje PostScript, PDF, SVG PDF může obsahovat 3D vektorovou PRC grafiku inspirace METAPOST tem, jednoduššı́ syntaxe (podobná C++), IEEE float-point aritmetika přenositelnost (Unix, MacOS, Windows) jazyk je matematicky orientován (např. rotaci lze napsat jako násobenı́ bodu e iϕ ) popisky (labels) v LATEX u rozšiřuje METAPOST tový pojem cesty (path) do 3D přı́kazy jsou překládány do virtual machine code (rychlost, zachovává přenositelnost) O. Vlach Asymptote Tvůrci Financováno z Natural Sciences and Engineering Research Council of Canada Pacific Institute for Mathematical Sciences University of Alberta Faculty of Science Autoři kódu Andy Hammerlindl , John C. Bowman a Tom Prince dalšı́ poděkovánı́: Sean Healy, Michail Vidiassov, Radoslav Marinov, Orest Shardt, Chris Savage, Philippe Ivaldi, Olivier Guibé, Jacques Pienaar, Mark Henning, Steve Melenchuk, Martin Wiebusch a Stefan Knorr O. Vlach Asymptote Downloads (verze) Aktuálnı́ verze 2.08 http: //sourceforge.net/projects/asymptote/files/asymptote/ O. Vlach Asymptote Downloads (poslednı́ch 12 měsı́ců) O. Vlach Asymptote Začı́náme (batch mode) asy -V -f pdf ... test pro výstup v PDF, (-V automaticky spustı́ náhled) draw((0,0)--(100,100)) ... spojı́ body (0,0) a (100,100) přı́mou čarou O. Vlach Asymptote Začı́náme (interactive mode, prvnı́ krok) (0,0) a (100,100), zvané pairs jsou v PostScriptových ”big points”(1 bp = 1/72 inch). Default tloušt’ka čáry = 0.5bp O. Vlach Asymptote Začı́náme (interactive mode, zatı́m pomalu) modrý čtverec nenı́ vidět −→ unitsize změnı́ velikost celého obrázku O. Vlach Asymptote Začı́náme (popisky) R e2 d x C A B size(3cm); draw(unitsquare,black+3pt); label("$A$",(0,0),SW,red); label("$B$",(1,0),SE,blue); label("$C$",(1,1),NE); label("$\int e^2d\,x$",(0,1),NW); E=left=(1,0), N=up=(0,1), NE=unit(N+E), a ENE=unit(E+NE)... atd. v modulu plain když chcete použı́t E, tak poůvodnı́ je plain.E O. Vlach Asymptote Začı́náme (cesty) size(3cm); pair[] a = {(0,-2),(1,0),(0,2)}; path p1,p2,p3; p1 = a[0]--a[1]--a[2]; p2 = a[0]..a[1]..a[2]; p3 = a[0]{up}..a[1]..{up}a[2]; for (int i=0;i<a.length;++i){dot(a[i]);}; draw(p1,black+0.5pt+dashed); draw(p2,blue+0.5pt+dotted); draw(p3,red+0.5pt); O. Vlach Asymptote Začı́náme (path × guide) size(200); real mexican(real x) return (1-8x^2)*exp(-(4x^2)); int n=30; real a=1.5; real width=2a/n; guide hat; path solved; for(int i=0; i < n; ++i) { real t=-a+i*width; pair z=(t,mexican(t)); hat=hat..z; solved=solved..z; } draw(hat,black+1pt); dot(hat,red); draw(solved,blue+1pt+dashed); O. Vlach Asymptote 3D (text) import three; size(100); currentprojection=perspective(1,-2,1 draw(unitbox); label("Billboard",X,red,Billboard); label("Embedded",Y,blue,Embedded); generováno pomocı́ asy -render 1 -V -f pdf -o ../img/test21.pdf test21.asy O. Vlach Asymptote 3D (šipky) import three; size(100); defaultpen(0.3mm); currentprojection=perspective(24,14,13); path3 g=arc(O,1,90,-60,90,60);defaultrender.merge=true; transform3 t=shift(invert(3S,O)); draw(g,blue,Arrows3(TeXHead3),currentlight); draw(scale3(3)*g,green,ArcArrows3(HookHead3)); draw(scale3(6)*g,red,Arrows3(DefaultHead3)); draw(t*scale3(3)*g,green,ArcArrows3(HookHead2,NoFill)); draw(t*scale3(6)*g,red,Arrows3(DefaultHead2(normal=Z))); draw(t*g,blue,Arrows3(TeXHead2)); O. Vlach Asymptote 2D Animace (zdroj) import geometry; import animate; unitsize(0.5cm); animation A=animation("movie1"); pair pM, pC, pN; real h=2pi/10; real a=2; guide nephroide; draw(scale(a)*unitcircle); for(int k=0; k < 360; k+=5) { save(); pM=rotate(k,(0,0))*(a,0); pC=1.5*pM; pN=rotate(2*k,pC)*pM; nephroide=nephroide..pN; draw(shift(pC)*scale(a/2)*unitcircle); draw(nephroide,1bp+red); draw(pN--pC,1bp+paleblue);dot(pN--pC,3bp+blue); A.add(); restore(); } label(A.pdf(delay=50,keep=!settings.inlinetex)); O. Vlach Asymptote 2D Animace (výsledek) O. Vlach Asymptote 3D Animace (zdroj) settings.render=4; settings.prc=false; import graph3; import animate; currentprojection=orthographic(1,-2,0.5); animation A=animation("movie3"); int n=20; for(int i=0; i < n; ++i) { picture pic; size3(pic,6cm,6cm,4cm); real k=i/n*pi; real f(pair z) return 4cos(abs(z)-k)*exp(-abs(z)/6); draw(pic,surface(f,(-4pi,-4pi),(4pi,4pi),Spline),paleblue); draw(pic,shift(i*6Z/n)*unitsphere,yellow); A.add(pic); } label(A.pdf("controls",delay=20,keep=!settings.inlinetex)); O. Vlach Asymptote 3D Animace (výsledek) O. Vlach Asymptote Asymptote a LATEX soubor pokus.tex \documentclass[12pt]{article} \usepackage[inline]{asymptote} \begin{document} Nejaky text \begin{asy} draw((1,1)--(2,2)); \end{asy} Nejaky text \end{document} překlad pdflatex -shell-escape pokus.tex asy pokus-*.asy pdflatex -shell-escape pokus.tex nebo latexmk -pdf pokus O. Vlach Asymptote Literatura J.C. Bowman and A. Hammerlindl. Interactive TEX-Aware 3D Vector Graphics talk, 2010. http://asymptote.sf.net/intro.pdf. J.C. Bowman and A. Hammerlindl. Asymptote: A vector graphics language TUGBOAT: The Communications of the TEX Users Group, 29:2, 288-294 (2008). http://www.math.ualberta.ca/~bowman/publications/asyTUG.pdf. Dario Teixeira. ASYMPTOTE and LATEX: An Integration Guide 2007. http://www.dse.nl/~dario/projects/asylatex/asylatex.pdf. O. Vlach Asymptote
Podobné dokumenty
Bioinformatika
1 A 133 SER HIS SER GLY VAL ASN GLN LEU GLY GLY VAL PHE
2 A 133 ASN GLY ARG PRO LEU PRO ASP SER THR ARG GLN ARG
3 A 133 VAL GLU LEU ALA HIS SER GLY ALA ARG PRO CYS ASP
4 A 133 SER ARG ILE LEU GLN V...
ŽL 06/2004 - Obec Žilina
odpad můžefirma dále využítaž9a% a ze školníchsběrů je to ještě více.
Třetía nejzajímavějšízastávkou byla návštěva řizené skládky u obce Lány, kterou firma provozuje nékolik
let. Loni jsme si vysle...
SYNTÉZA PEPTID Ů NA PEVNÉ FÁZI A KOMBINATORIÁLNÍ
a jim se pak věnovat se zvláštní pozorností. Z triků pro překonání takzvaných „difficult couplings“ je
možno zmínit použití různých kondenzačních činidel, případně zvýšené teploty či mikrovln pro r...
English-Czech dictionary of mathematical terminology
Related terms: differential equation, initial value problem, initial value problem, first-order equation,
finding a solution, looking for a solution, particular solution of a differential equation,...