Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168730
Image: ubuntu2004

УРОК 5.1

Тема. Робота з графікою в Sage.
Мета: засвоїти особливості застосування функцій Sage для побудови графічних зображень на площині та у просторі.

1. Графічні примітиви на площині та у просторі:

2. Побудова графіків функцій та залежностей між змінними.
3. Додавання підписів до зображень.

1. Графічні примітиви на площині та у просторі.

Визначити і побудувати точку на площині можна за допомогою функції point() або points(), у просторі - за допомогою функції point3d(). Обов'язковим параметром зазначених функцій є координати точки:

point((-2,3))
points((-2,3))

Функції point(), points() і point3d() мають ряд додаткових параметрів:

  • alpha - для визначення ступіню прозорості;
  • pointsize - розміру точки;
  • rgbcolor - кольору точки;
  • faceted - контуру точки.

Кожний із додаткових параметрів може бути змінений згідно правил їх визначення.
Так, ступінь прозорості точки (параметр alpha) визначається десятковим числом в межах від 0 до 1, наприклад:

point((0.5,1),alpha=0.5)

Розмір точки (параметр pointsize) за замовчуванням визначається числом 10, очевидно, що для збільшення розміру точки необхідно вказати більше числове значення для параметра pointsize:

point((2,3),pointsize=30)

Колір точки встановлюється трійкою чисел (r, g, b), де число r визначає кількість червоного кольору, g - зеленого і b - синього. Такий спосіб задання кольору отримав назву rgb-формат задання кольору. Кожне з чисел r, g, b може приймати значення від 0 до 1, наприклад:

point((2,3),rgbcolor=(0.7,0.2,0.9))

Допускається в якості значень параметра rgbcolor вказувати константи кольору:

Константа кольору RGB-формат Колір
'black'
(0,0,0)
чорний
'white'
(1,1,1)
білий
'red'
(1,0,0)
червоний
'green'
(0,1,0)
зелений
'blue'
(0,0,1)
синій
'yellow'
(1,1,0)
жовтий

point((1,1),rgbcolor='red',pointsize=30)

Для відображення контуру точки (чорного кольору) треба значення параметра faceted змінити на True:

point((-2,3),pointsize=30,rgbcolor='white',faceted=true)

За допомогою функції point можна побудувати декілька точок, при цьому додаткові параметри точок будуть спільні для всіх точок:

point(((1,1),(2,3)),pointsize=30)

Виведення комбінації графічних елементів, зокрема множини точок, кожна з яких характеризуються різними значеннями параметрів, у Sage можна організувати за допомогою функції show().

A=point((2,1),pointsize=50,rgbcolor='red') B=point((1,-3),pointsize=40,rgbcolor='green') C=point((-5,2),pointsize=30,rgbcolor='blue') D=point((-3,-2),pointsize=30,rgbcolor='white',faceted=true) show(A+B+C+D)

Функція show() має ряд додаткових параметрів:

  • axes - відображати/не відображати вісі координат (True/False);
  • xmin,xmax - мінімальне та максимальне значення по вісі Ох відповідно;
  • ymin,ymax - мінімальне та максимальне значення по вісі Оy відповідно;
  • aspect_ratio - формат зображення (співвідношення між шкалами вісей. Якщо встановити рівним 1, вісі матимуть однаковий маштаб зображення).

show(A+B+C+D,xmin=-5,xmax=5,ymin=-3,ymax=3,aspect_ratio=1)
a1=arrow((-2,-1),(2,1)) a2=arrow((0,0),(2,-1),width=4,rgbcolor='red') show(a1+a2,aspect_ratio=1)

Зауваження. Виконати збереження результату побудови здійснюється як збереження звичайного графічного зображення  у вікні браузера, що передбачає звернення до вказівки Сохранение изображения із контекстного меню зображення.

Для визначення й побудови ламаної з вершинами у точках (x1x_1,y1y_1), (x2x_2,y2y_2), ..., (xnx_n,yny_n) призначено функцію line([(x1,y1),(x2,y2),...,(xn,yn)]). Додатковими параметрами функції є alpha, rgbcolor, thickness, linestyle, marker, markersize, markeredgecolor, markeredgewidth:

A=(-3,-2) B=(-4,3) C=(3,2) D=(5,-1) line([A,B,C,D],rgbcolor="green",thickness=2)
A=(3,-2) B=(-4,3) line([A,B],rgbcolor="blue",thickness=2,marker="o")
A=(-3,-2) B=(-4,3) C=(3,2) D=(5,-1) line([A,B,C,D,A],rgbcolor='red',thickness=2)
A=(-3,-2) B=(-4,3) C=(3,2) D=(5,-1) polygon([A,B,C,D],rgbcolor="green",thickness=2)

Для визначення й побудови кола з центром у точці (xc,yc)(x_c,y_c) та радіусом rr в Sage призначено функцію circle((xc,yc),r). Додатковими параметрами функції є rgbcolor, thickness, linestyle, edgecolor,

 facecolorfill, alpha:

c1=circle((2,3),1,thickness=2,edgecolor='black',fill=true,facecolor='blue') c2=circle((-2,1),1,rgbcolor='green',fill=true,alpha=0.7) show(c1+c2,aspect_ratio=1)

Для визначення й побудови сектора (rad1,rad2), що є частиною кола з центром у точці (xc,yc)(x_c,y_c) та радіусом rr в Sage призначено функцію disk((xc,yc),r,(rad1,rad2)). Додатковими параметрами функції є rgbcolor, thicknessfill та alpha.

c=circle((0,0),1) d1=disk((0,0),1,(pi/6,pi/3),rgbcolor='red',alpha=0.7) d2=disk((0,0),1,(pi-2*pi/5,pi-pi/8),rgbcolor='green',alpha=0.7) d3=disk((2,1),0.5,(0,2*pi),rgbcolor='yellow',alpha=0.7) show(c+d1+d2+d3,aspect_ratio=1)
sphere((0,0,0),1,color='red')
plot(x^2)

Для побудови графіка функції на проміжку [a,b][a,b] функцію plot() застосовують у форматі plot(f(x),a,b):

plot(x^2,-3,5)

Додатковими параметрами функції plot() є rgbcolor, thickness, alpha, а також параметри зафарбовування - fill, fillcolor та fillalpha.

 

Для побудови графіка функції чи залежності між змінними, заданої параметрично у декартових координатах як

{x=f1(t),y=f2(t)\left\{ \begin{array}{ll} x=f_1(t),\\ y=f_2(t) \end{array} \right.

в Sage призначено функцію parametric_plot([f1(t),f2(t)],(t,a,b)):

par_p1=parametric_plot([4*cos(t),2*sin(t)],0,2*pi) show(par_p1,aspect_ratio=1)

3. Додавання підписів до зображень. Для додавання підпису str до зображення на площині відносно позиції (xt,yt)(x_t,y_t) в Sage призначено функцію text(str,(xt,yt)). Додатковими параметрами функції є fontsize, rgbcolor, vertical_aligment та horizontal_aligment:

A=(1,1) B=(2.5,2) C=(3,1) ABC=line([A,B,C,A],marker="o") tA=text("A",(1-0.05,1)) tB=text("B",(2.5,2+0.05)) tC=text("C",(3+0.05,1)) show(ABC+tA+tB+tC,axes=false)

Примітка. Математичні вирази у підписі оформлюються з використанням функцій LaTeX.

f1=plot(sqrt(x),(x,0,5),rgbcolor="red") tf1=text("$y=\sqrt{x}$",(5,2.5),rgbcolor="red") f2=plot(x^3,(x,-2,2),rgbcolor="green") tf2=text("$y=x^3$",(2.7,6.5),rgbcolor="green") show(f1+tf1+f2+tf2,aspect_ratio=1)