# 2D Grafika

## Úvod

f(x):=exp(-x^2)*sin(%pi*x^3);

wxplot2d(f(x), [x, -2,2]);

plot2d(f(x), [x, -2,2], [plot_format,mgnuplot]);

plot2d(f(x), [x, -2,2], [plot_format,openmath]);

wxplot2d(f, [x,-2,2]);

wxplot2d(f(t), [t,-2,2],[x,-3,3]);

wxplot2d(f(t), [t,-2,2],[x,-1,1]);

wxplot2d([f(x), exp(-x^2), -exp(-x^2)], [x,-2,2]);

wxplot2d([sin(x)/x,cos(x)], [x,0,2*%pi], [style, [lines,1,1], [lines,4,2]]);

[lines,1,1] - první z čísel udává tloušťku čáry a druhé barvu: 
1: blue, 2: red, 3: magenta, 4: orange, 5: brown, 6: lime a 7: aqua

wxplot2d([sin(x^2)/x^2], [x,-6,6], [y,0,1]);

wxplot2d([sin(x^2)/x^2], [x,-6,6]);

wxplot2d([sin(x^2)/x^2], [x,-6,6], [y,-6,6]);

wxplot2d(tan(x), [x,-%pi,%pi]);

wxplot2d(tan(x), [x,-%pi,%pi],[y,-10,10]);

my_preamble: "set xtics ('-pi' -3.1415, '-pi/2' -1.5708, '0' 0, \
'pi/2' 1.5708, 'pi' 3.1415)"$

Tento řetězec musí být zadán bez řádkových zlomů.

wxplot2d(tan(x),
       [x, -%pi, 1*%pi], [y, -10, 10], [axes, x],
       [gnuplot_preamble, my_preamble]);

wxplot2d(sin(x), [x,0,2*%pi], [style,points]);

xx:[10, 20, 30, 40, 50]$

yy:[.6, .9, 1.1, 1.3, 1.4]$

xy:[[10,.6], [20,.9], [30,1.1], [40,1.3], [50,1.4]]$

wxplot2d([discrete,xx,yy]);

wxplot2d([discrete,xx,yy], [style, points]);

wxplot2d([discrete, xy], [style, [points,5,2,6]]);

Volba points může mít dva nebo tři parametry, první parametr určuje poloměr zvoleného objektu, 
druhý parametr (celé číslo) určuje barvu (stejně jako u volby lines) a třetí parametr je využíván pouze při zobrazení
pomocí Gnuplotu a určuje objekt pro zobrazení bodu.
Typy objektů: 1: filled circles, 2: open circles, 3: plus signs, 4: x, 5: *, 6: filled squares, 7: open squares, 
8: filled triangles, 9: open triangles, 10: filled inverted triangles, 11: open inverted triangles, 
12: filled lozenges and 13: open lozenges. 

Volba linesdots akceptuje až čtyři parametry: tloušťku čáry, poloměr bodu, barvu a typ objektu. 

Implicitní hodnoty všech voleb

plot_options;

Nastavení provádíme buď lokálně příkazem plot2d nebo globálně příkazem set_plot_option.

f(x):=sqrt(2)-sqrt(2*sqrt(x))$

wxplot2d(f(x), [x,0,1], [y,0,sqrt(2)]);

wxplot2d(f(x), [x,0,0.01], [y,1,sqrt(2)]);

wxplot2d(f(x), [x,0,1], [y,0,sqrt(2)], [nticks, 3], [adapt_depth, 0]);

wxplot2d(f(x), [x,0,1], [y,0,sqrt(2)], [nticks, 3]);

Implicitní hodnoty jsou pro nticks 29 a pro adapt_depth 10.

wxplot2d(x/(1-cos(5*x)), [x,-5,5], [y,-5,5]);

wxplot2d(x+sin(2*%pi*x), [x,0,49]);

## Speciální dvojdimensionální obrázky

Krivka daná parametricky

wxplot2d([parametric, t*cos(2*%pi*t), t*sin(2*%pi*t), [t,0,10]], [nticks,500]);

wxplot2d([parametric, cos(t), sin(t), [t,-%pi,%pi]],[x,-4/3,4/3]);

wxplot2d([parametric, cos(t), sin(t), [t,-%pi,%pi]],[x,-1.2,1.2], [y,-1.2,1.2],
[gnuplot_preamble, "set size ratio 1;"]);

kill(all);

Grafické možnosti Maximy výrazně rozšiřuje balíček draw. Ke správné činnosti vyžaduje instalaci Gnuplotu
alepoň ve verzi 4.2.

load(draw);

wxdraw2d(parametric(cos(t),sin(t),t,0,2*%pi),proportional_axes=xy);

Křivka v polárních souřadnicích

wxdraw2d(nticks=200,polar(sin(3*theta),theta,0,2*%pi));

wxdraw2d(nticks=250,polar(sin(t)/t,t,-6*%pi,6*%pi));

Křivka daná implicitně

wxdraw2d(implicit(x^3+y^3-5*x*y+1/5=0, x,-3,3, y,-3,3));

wxdraw2d(xaxis=true, yaxis=true, implicit(2*x^4+y^4-3*x^2*y-2*y^3+y^2, x,-5/2,5/2, 
y,0,5/2));

Následující obrázek ukazuje oblast vyhovující nerovnicím

wxdraw2d(
x_voxel = 60,
y_voxel = 60,
proportional_axes=xy,
fill_color = green,
region(x+y<5 and 0<x and x<=4, x,-1,5, y,-5,7));

Prokládání křivek 

xx:[1,2,3,4,5,6,7,8,9];

xx:makelist(i,i,1,9);

yy:[2,3,5,7,11,13,17,19,23];

wxdraw2d(points(xx,yy));

dataL:[[1,2],[2,3],[3,5],[4,7],[5,11],[6,13],[7,17],[8,19],[9,23]];

wxdraw2d(points(dataL));

dataM : apply ('matrix, dataL);

load(lsquares);

fprintprec:8;

lsquares_estimates (dataM, [x,y], y=a*x+b, [a,b]);

fit: a*x+b, %;

wxplot2d ([fit, [discrete, dataL]], [x,0,10], [style,[lines,4],[points,3,2,1]]);

wxdraw2d(line_width=2, color=blue, explicit(fit, x,0,10),
       color=red, point_type=6, point_size=2, points(dataL));

## Ukládání grafiky

wxplot2d(sin(x), [x,-%pi,%pi], [box, false]);

preamble: "set xtics(-3,0,3); set ytics(-1,0,1)"$

wxplot2d(sin(x), [x,-%pi,%pi], [gnuplot_preamble, preamble]);

plot2d(sin(x), [x,-%pi,%pi], [psfile, "sin_maxima.eps"]);

plot2d(sin(x), [x,-%pi,%pi], [gnuplot_term,ps], 
[gnuplot_out_file,"sin_maxima2.eps"]);

draw2d(explicit(sin(x),x,-%pi,%pi), terminal=eps_color);

draw2d(explicit(sin(x),x,-%pi,%pi), terminal=svg);