Komputeralgebra rendszerek P L O T Czirbusz Sándor czirbusz@gmail.com Komputeralgebra Tanszék ELTE Informatika Kar 2009. október 12.
Index I 1 Az alapok plot és plot3d Késleltetett megjelenítés Egyszerűbb opciók Szinezés,skálázás Stílus és nézőpont A koordináták testreszabása 2 Nem Descartes-féle koordináták Polár koordináták Henger koordináták 3 Egyszerű animációk Egyváltozós függvények Kétváltozós függvények Animáció frame-szekvenciával 4 Szöveg a grafikonokon 5 Vektorok Alapok
Index II Vektorok szorzása Az arrow opciói 6 Térgörbék spacecurve tubeplot 7 Tarnszformációk
plot és plot3d plot és plot3d Egyváltozós függvény plot( f(x), x=a..b, opts ) Több függvény rajzolása egyszerre : függvényhalmaz (3D-ben csak ez), vagy -lista megadásával.
plot és plot3d plot és plot3d Egyváltozós függvény plot( f(x), x=a..b, opts ) Több függvény rajzolása egyszerre : függvényhalmaz (3D-ben csak ez), vagy -lista megadásával. Kétváltozós függvény plot3d( f(x,y), x=a..b, y=c..d, opts)
plot és plot3d plot és plot3d Egyváltozós függvény plot( f(x), x=a..b, opts ) Több függvény rajzolása egyszerre : függvényhalmaz (3D-ben csak ez), vagy -lista megadásával. Kétváltozós függvény plot3d( f(x,y), x=a..b, y=c..d, opts) Paraméteres ábrázolás
plot és plot3d plot és plot3d Egyváltozós függvény plot( f(x), x=a..b, opts ) Több függvény rajzolása egyszerre : függvényhalmaz (3D-ben csak ez), vagy -lista megadásával. Kétváltozós függvény plot3d( f(x,y), x=a..b, y=c..d, opts) Paraméteres ábrázolás plot( [(f(t), g(t), t=a..b], opts )
plot és plot3d plot és plot3d Egyváltozós függvény plot( f(x), x=a..b, opts ) Több függvény rajzolása egyszerre : függvényhalmaz (3D-ben csak ez), vagy -lista megadásával. Kétváltozós függvény plot3d( f(x,y), x=a..b, y=c..d, opts) Paraméteres ábrázolás plot( [(f(t), g(t), t=a..b], opts ) plot3d( [f(s,t), g(s,t), h(s,t)], s=a..b, t=c..d, opts)
plot és plot3d plot és plot3d Egyváltozós függvény plot( f(x), x=a..b, opts ) Több függvény rajzolása egyszerre : függvényhalmaz (3D-ben csak ez), vagy -lista megadásával. Kétváltozós függvény plot3d( f(x,y), x=a..b, y=c..d, opts) Paraméteres ábrázolás plot( [(f(t), g(t), t=a..b], opts ) plot3d( [f(s,t), g(s,t), h(s,t)], s=a..b, t=c..d, opts) Pontok ábrázolása
plot és plot3d plot és plot3d Egyváltozós függvény plot( f(x), x=a..b, opts ) Több függvény rajzolása egyszerre : függvényhalmaz (3D-ben csak ez), vagy -lista megadásával. Kétváltozós függvény plot3d( f(x,y), x=a..b, y=c..d, opts) Paraméteres ábrázolás plot( [(f(t), g(t), t=a..b], opts ) plot3d( [f(s,t), g(s,t), h(s,t)], s=a..b, t=c..d, opts) Pontok ábrázolása style=point opcióval.(még 1 ponthoz is kell a halmaz-zárójel!)
plot és plot3d plot és plot3d Egyváltozós függvény plot( f(x), x=a..b, opts ) Több függvény rajzolása egyszerre : függvényhalmaz (3D-ben csak ez), vagy -lista megadásával. Kétváltozós függvény plot3d( f(x,y), x=a..b, y=c..d, opts) Paraméteres ábrázolás plot( [(f(t), g(t), t=a..b], opts ) plot3d( [f(s,t), g(s,t), h(s,t)], s=a..b, t=c..d, opts) Pontok ábrázolása style=point opcióval.(még 1 ponthoz is kell a halmaz-zárójel!) A pointplot 3d procedúra. A plots csomag tartalmazza.
Késleltetett megjelenítés Késleltetett megjelenítés display A plot utasítást : -al lezárva eltárolódik csak a a memóriában tárolódik a grafikon, a képernyőn nem jelenik meg. Megjelenítés : display
Egyszerűbb opciók Egyszerűbb opciók
Egyszerűbb opciók Egyszerűbb opciók Vonalvastagság: thickness=0..15 (egész szám)
Egyszerűbb opciók Egyszerűbb opciók Vonalvastagság: thickness=0..15 (egész szám) Simábbá tétel 3D-ben:
Egyszerűbb opciók Egyszerűbb opciók Vonalvastagság: thickness=0..15 (egész szám) Simábbá tétel 3D-ben: numpoints=n, Az x és y intervallumát n részre osztja Default : 625
Egyszerűbb opciók Egyszerűbb opciók Vonalvastagság: thickness=0..15 (egész szám) Simábbá tétel 3D-ben: numpoints=n, Az x és y intervallumát n részre osztja Default : 625 grid=[n,m] Változónként adjuk meg a felbontást Default : 25 X 25
Egyszerűbb opciók Egyszerűbb opciók Vonalvastagság: thickness=0..15 (egész szám) Simábbá tétel 3D-ben: numpoints=n, Az x és y intervallumát n részre osztja Default : 625 grid=[n,m] Változónként adjuk meg a felbontást Default : 25 X 25 A numpoints működik 2D-ben, default 50. A pontosságot a plot automatikusan tudja növelni. Ennek letiltása : adaptive=false
Szinezés,skálázás Szinezés, skálázás color.
Szinezés,skálázás Szinezés, skálázás color. Előredefiniált nevek, illetve RGB.
Szinezés,skálázás Szinezés, skálázás color. Előredefiniált nevek, illetve RGB. Változó színek 3D-ben : például 4D szimulálására
Szinezés,skálázás Szinezés, skálázás color. Előredefiniált nevek, illetve RGB. Változó színek 3D-ben : például 4D szimulálására Árnyékolás :shading=x, X {xyz, xy, z, zgrayscale, zhue, none}. Default a none
Szinezés,skálázás Szinezés, skálázás color. Előredefiniált nevek, illetve RGB. Változó színek 3D-ben : például 4D szimulálására Árnyékolás :shading=x, X {xyz, xy, z, zgrayscale, zhue, none}. Default a none scaling Értéke constrained vagy unconstrained lehet
Stílus és nézőpont Stílus és nézőpont style 2D-ben
Stílus és nézőpont Stílus és nézőpont style 2D-ben style= point line patch patchnogrid point
Stílus és nézőpont Stílus és nézőpont style 2D-ben style= point line patch patchnogrid point linestyle=solid DOT DASH DASHDOT
Stílus és nézőpont Stílus és nézőpont style 2D-ben style= point line patch patchnogrid point linestyle=solid DOT DASH DASHDOT style 3D-ben style=point hidden patch wireframe contour patchnogrid patchcontour line
Stílus és nézőpont Stílus és nézőpont style 2D-ben style= point line patch patchnogrid point linestyle=solid DOT DASH DASHDOT style 3D-ben style=point hidden patch wireframe contour patchnogrid patchcontour line viewpoint
Stílus és nézőpont Stílus és nézőpont style 2D-ben style= point line patch patchnogrid point linestyle=solid DOT DASH DASHDOT style 3D-ben style=point hidden patch wireframe contour patchnogrid patchcontour line viewpoint orientation=[α, β] A szögek fokban, az x és a z tengelyen pozitív irányból nézve, óramutató járásával ellentétesen.
Stílus és nézőpont Stílus és nézőpont style 2D-ben style= point line patch patchnogrid point linestyle=solid DOT DASH DASHDOT style 3D-ben style=point hidden patch wireframe contour patchnogrid patchcontour line viewpoint orientation=[α, β] A szögek fokban, az x és a z tengelyen pozitív irányból nézve, óramutató járásával ellentétesen. view=[xmin..xmax] view=[xmin..xmax,ymin..ymax,zmin..zmax ] view=zmin..zmax
A koordináták testreszabása A koordináták testreszabása
A koordináták testreszabása A koordináták testreszabása axes=normal boxed framed none. 2D-ben a normal default, 3D-ben a none
A koordináták testreszabása A koordináták testreszabása axes=normal boxed framed none. 2D-ben a normal default, 3D-ben a none tickmarks=[xticks,yticks] [xticks,yticks,zticks] Az elemek is listák. xticks=... yticks=..., zticks=...
A koordináták testreszabása A koordináták testreszabása axes=normal boxed framed none. 2D-ben a normal default, 3D-ben a none tickmarks=[xticks,yticks] [xticks,yticks,zticks] Az elemek is listák. xticks=... yticks=..., zticks=... labels=[string1,string2 ] [string1,string2,string3 ]
A koordináták testreszabása A koordináták testreszabása axes=normal boxed framed none. 2D-ben a normal default, 3D-ben a none tickmarks=[xticks,yticks] [xticks,yticks,zticks] Az elemek is listák. xticks=... yticks=..., zticks=... labels=[string1,string2 ] [string1,string2,string3 ] labeldirections=[d1,d2] Az d1 2=vertical horizontal
A koordináták testreszabása A koordináták testreszabása axes=normal boxed framed none. 2D-ben a normal default, 3D-ben a none tickmarks=[xticks,yticks] [xticks,yticks,zticks] Az elemek is listák. xticks=... yticks=..., zticks=... labels=[string1,string2 ] [string1,string2,string3 ] labeldirections=[d1,d2] Az d1 2=vertical horizontal labelfont axesfont font - [family,style,size] formájúak
A koordináták testreszabása A koordináták testreszabása axes=normal boxed framed none. 2D-ben a normal default, 3D-ben a none tickmarks=[xticks,yticks] [xticks,yticks,zticks] Az elemek is listák. xticks=... yticks=..., zticks=... labels=[string1,string2 ] [string1,string2,string3 ] labeldirections=[d1,d2] Az d1 2=vertical horizontal labelfont axesfont font - [family,style,size] formájúak setoption Ha sokszor használunk azonos paramétereket...(csak egy-értékű opció lehet, tehát lista, szekvencia nem :( )
Polár koordináták Polár koordináták
Polár koordináták Polár koordináták plot3d(r(θ),θ = α... β, coords=polat, opts)
Polár koordináták Polár koordináták plot3d(r(θ),θ = α... β, coords=polat, opts) plot([r(t),θ(t),t=a..b],coords=polar, opts) paraméteresen
Polár koordináták Polár koordináták plot3d(r(θ),θ = α... β, coords=polat, opts) plot([r(t),θ(t),t=a..b],coords=polar, opts) paraméteresen A plots csomaggal polarplot(r(θ),θ = α... β, opts) polarplot([r(t),θ(t),t=a..b],opts) paraméteresen
Henger koordináták Henger koordináták
Henger koordináták Henger koordináták plot3d(r(θ,z),θ = α... β,z=a..b coords=cylindric, opts)
Henger koordináták Henger koordináták plot3d(r(θ,z),θ = α... β,z=a..b coords=cylindric, opts) plot([r(s,t),θ(s,t),z(s,t)),s=a..b,t=c..d],coords=cylindric, opts) paraméteresen
Henger koordináták Henger koordináták plot3d(r(θ,z),θ = α... β,z=a..b coords=cylindric, opts) plot([r(s,t),θ(s,t),z(s,t)),s=a..b,t=c..d],coords=cylindric, opts) paraméteresen A plots csomaggal cylinderplot(r(θ,z),θ = α... β,z=a..b, opts) cylinderplot([r(s,t),θ(s,t),z(s,t)),s=a..b,t=c..d],opts) paraméteresen
Egyváltozós függvények Egyváltozós függvények Függvény és görbe animálása
Egyváltozós függvények Egyváltozós függvények Függvény és görbe animálása animate( F (x, t), x=a..b, t=p..q, opts)
Egyváltozós függvények Egyváltozós függvények Függvény és görbe animálása animate( F (x, t), x=a..b, t=p..q, opts) animatecurve( f (x), x=a..b, opts )
Egyváltozós függvények Egyváltozós függvények Függvény és görbe animálása animate( F (x, t), x=a..b, t=p..q, opts) animatecurve( f (x), x=a..b, opts ) x a független változó
Egyváltozós függvények Egyváltozós függvények Függvény és görbe animálása animate( F (x, t), x=a..b, t=p..q, opts) animatecurve( f (x), x=a..b, opts ) x a független változó t a frame-változó
Egyváltozós függvények Egyváltozós függvények Függvény és görbe animálása animate( F (x, t), x=a..b, t=p..q, opts) animatecurve( f (x), x=a..b, opts ) x a független változó t a frame-változó A végrehajtás interaktív
Kétváltozós függvények Kétváltozós függvények animate3d
Kétváltozós függvények Kétváltozós függvények animate3d animate3d( F (x, y, t), x=a..b, y=c..d, t=p..q, opts)
Kétváltozós függvények Kétváltozós függvények animate3d animate3d( F (x, y, t), x=a..b, y=c..d, t=p..q, opts) Új opció : frames
Animáció frame-szekvenciával Animáció frame-szekvenciával display(seq,insequence=true)
Szöveg a grafikonokon Cím : title="..."
Szöveg a grafikonokon Cím : title="..." textplot( [x,y,[z],"text"], ops ) Új opció : align=above BELOW LEFT RIGHT Megvalósítható a mozgó szöveg
Szöveg a grafikonokon Cím : title="..." textplot( [x,y,[z],"text"], ops ) Új opció : align=above BELOW LEFT RIGHT Megvalósítható a mozgó szöveg Számított érték a szövegben : a sprintf függvénnyel
Alapok Alapok A plots és a plottools csomagnak is van array procedúrája, a plots-é a korszerűbb. arrow( start, vektor, opts ) kezdőpont + vektor start elhagyható, a kezdőpont arrow( start, end, difference=true,opts) kezdőpont + végpont
Alapok Alapok A plots és a plottools csomagnak is van array procedúrája, a plots-é a korszerűbb. arrow( start, vektor, opts ) kezdőpont + vektor start elhagyható, a kezdőpont start, vektor : két vagy háromelemű lista, a vektor lehet <...> alakú oszlopvektor arrow( start, end, difference=true,opts) kezdőpont + végpont
Alapok Alapok A plots és a plottools csomagnak is van array procedúrája, a plots-é a korszerűbb. arrow( start, vektor, opts ) kezdőpont + vektor start elhagyható, a kezdőpont start, vektor : két vagy háromelemű lista, a vektor lehet <...> alakú oszlopvektor lehet összeadni őket arrow( start, end, difference=true,opts) kezdőpont + végpont
Alapok Alapok A plots és a plottools csomagnak is van array procedúrája, a plots-é a korszerűbb. arrow( start, vektor, opts ) kezdőpont + vektor start elhagyható, a kezdőpont start, vektor : két vagy háromelemű lista, a vektor lehet <...> alakú oszlopvektor lehet összeadni őket A 3D kiemeléséhez a ligthmodel opció használható, vagy light=[ϕ, θ,r,g,b]. arrow( start, end, difference=true,opts) kezdőpont + végpont
Vektorok szorzása Vektorok szorzása Belső szorzat :. vagy a LinearAlgebra csomag DotProduct
Vektorok szorzása Vektorok szorzása Belső szorzat :. vagy a LinearAlgebra csomag DotProduct Vektori szorzat : a LinearAlgebra csomag CrossProduct
Az arrow opciói Az arrow opciói shape=double_arrow cylindrical_arrow arrow harpoon
Az arrow opciói Az arrow opciói shape=double_arrow cylindrical_arrow arrow harpoon length=n [n,relative=true].az első a tényleges hossz, a második konstanssal szorzott
Az arrow opciói Az arrow opciói shape=double_arrow cylindrical_arrow arrow harpoon length=n [n,relative=true].az első a tényleges hossz, a második konstanssal szorzott width=n [n,relative=true] Abszolút ill. a hossz arányában
Az arrow opciói Az arrow opciói shape=double_arrow cylindrical_arrow arrow harpoon length=n [n,relative=true].az első a tényleges hossz, a második konstanssal szorzott width=n [n,relative=true] Abszolút ill. a hossz arányában head_width=n [n,relative=true]
Az arrow opciói Az arrow opciói shape=double_arrow cylindrical_arrow arrow harpoon length=n [n,relative=true].az első a tényleges hossz, a második konstanssal szorzott width=n [n,relative=true] Abszolút ill. a hossz arányában head_width=n [n,relative=true] head_length=n [n,relative=true]
Az arrow opciói Az arrow opciói shape=double_arrow cylindrical_arrow arrow harpoon length=n [n,relative=true].az első a tényleges hossz, a második konstanssal szorzott width=n [n,relative=true] Abszolút ill. a hossz arányában head_width=n [n,relative=true] head_length=n [n,relative=true] plane
spacecurve spacecurve Térgörbe grafikonka : spacecurve([f(t),g(t),h(t)], t=a..b, ops ) A paramétertartomány a listán belül is megadható.
tubeplot tubeplot A hernyó tubeplot([f(t),g(t),h(t)], t=a..b, ops ) Opciók tubepoints=n, default 10
tubeplot tubeplot A hernyó tubeplot([f(t),g(t),h(t)], t=a..b, ops ) Opciók tubepoints=n, default 10 radius=n, deafult=1, lehet változtatható is!
Tarnszformációk a plottools csomag : circle, line, polygon, icosahedron, stb.
Tarnszformációk a plottools csomag : circle, line, polygon, icosahedron, stb. rotate : rotate( P, α, [x0,y0 ] )
Tarnszformációk a plottools csomag : circle, line, polygon, icosahedron, stb. rotate : rotate( P, α, [x0,y0 ] ) transform( rendezett pár vagy hármas -> 2 vagy 3 elem listája )