Компания ALT Linux
Опубликован: 12.03.2015 | Доступ: свободный | Студентов: 577 / 64 | Длительность: 20:55:00
Лекция 4:

Построение графиков

4.3 Анимация

При изучении движения точки на плоскости Octave позволит построить график движения и проследить за движением. Построить анимационный ролик можно с помощью функции comet(x, y), которая позволит увидеть движение точки вдоль кривой y(x) на плоскости.

Для движения точки на плоскости вдоль синусоиды достаточно ввести команды:

	
x=0: pi/30:6*pi; y=sin(x); comet(x, y);

Процесс движения точки вдоль синусоиды представлен на рис. 4.32, окончательный вид траектории движения точки вдоль синусоиды показан на рис. 4.33.

Поверхность к листингу 4.26

увеличить изображение
Рис. 4.31. Поверхность к листингу 4.26
Движение точки вдоль синусоиды

Рис. 4.32. Движение точки вдоль синусоиды
Окончательный вид траектории движения точки

увеличить изображение
Рис. 4.33. Окончательный вид траектории движения точки

4.4 Графические объекты

Встроенный язык Octave — объектно-ориентированный язык программирования. Все объекты находятся в определённой иерархии по отношению друг к другу. Рассмотрим основные графические объекты для работы с графикой и общие принципы работы с объектами на примере построения графика функции x(t) = sin(t) на интервале [-3\pi; 3\pi]. Построим график функции x(t):

	
t=-3*pi:pi/100:3*pi; x=sin(t); plot(t, x);

Окно с графиком синуса на интервале [-3\pi; 3\pi] представлено на рис. 4.34. В результате работы функции plot были созданы три графических объекта:

  • графическое окно Figure 1;
  • линия графика sin(t);
  • оси.

При работе с переменными, в которых хранятся объекты, пользователь оперирует ими как обычными переменными. Однако реально это указатели — адреса в памяти, в которых хранятся объекты; в Octave в качестве указателя используется номер объекта.

Для получения указателей на объекты в языке Octave есть три функции:

  • gcf() возвращает указатель на текущее графическое окно3Синтаксис Octave допускает обращение и без скобок (gcf — верно);
  • gca() возвращает указатель на текущие оси;
  • gco() возвращает указатель на текущий графический объект.
График функции y = sin(x) на интервале [-3π; 3π]

Рис. 4.34. График функции y = sin(x) на интервале [-3π; 3π]

4.4.1 Свойства графических объектов

Для установки свойств объектов служит функция set

set(h,\ ’Свойство1’,\ Значение1,\ ’Свойство2’,\ Значение2,\ ’Свойство3’,\ Значение3, . . . )

Здесь h — указатель на объект, свойства которого будут устанавливаться (изменяться); ’Свойство1’,\ ’Свойство2’,\ ’Свойство3’, . . . — имена свойств, которые будут изменяться; Значение1,\ Значение2,\ Значение3, . . . — новые значения свойств.

В простейшем виде функция set имеет вид: set(h,\ ’Свойство’,\ Значение ) Для получения свойства объекта служит функция get: get(h,\ ’Свойство’ ); Функция возвращает значения Свойства объекта с указателем h. Если к функции get обратиться с одним параметром h, то функция вернёт значения всех свойств объекта в виде Свойство\ =\ Значение.

4.4.2 Работа с графическим окном

Как уже рассматривалось ранее, для создания графического окна служит функция figure(), которая создаёт пустое графическое окно (см. рис. 4.35) и возвращает указатель на него.

Окно, созданное с помощью функции figure()

Рис. 4.35. Окно, созданное с помощью функции figure()

Например:

	
>>> g=figure()
g = 12

Если есть несколько окон, то окно с указателем g выдвигается на передний план и становится текущим.

Как при создании графиков с определёнными свойствами с помощью функции plot, при создании графических окон, осей и других объектов можно сразу определять некоторые свойства создаваемых объектов. Обращение к функции создания окна с определёнными свойствами имеет вид figure(’Свойство1’,\ Значение1,\ ’Свойство2’,\ Значение2,\ ’Свойство3’,\ Значение3, . . . ); Для удаления (закрытия) окна с указателем h служит функция delete(h). Доступ к имени окна осуществляется с помощью свойства name, хранящее строку, которая будет дописана к имени окна после стандартного имени окна Figure 1, Figure 2, ...; Например,

	
h=figure();
set(h,’name’,’New Window’)

В результате появится окно, представленное на рис. 4.36. Если свойству numbertitle присвоить значение ’off’, то это позволит отказаться от текущей нумерации окон Figure 1, Figure 2, ... (см. листинг ниже и рис. 4.37).

	
h=figure( );
set(h, ’numbertitle’, ’off’)
set(h, ’name’, ’New Window’)
Листинг .
Окно с изменённым заголовком

Рис. 4.36. Окно с изменённым заголовком
Окно после выключения стандартной нумерации окон

Рис. 4.37. Окно после выключения стандартной нумерации окон

Как и у многих рассматриваемых графических объектов, у окна есть свойство Position, определяющее расположение объекта. Position — массив из четырёх элементов [xleft ybottom width height]; xleft, ybottom определяют координаты левого нижнего угла экрана, относительно левого нижнего угла монитора; width — ширина; height — высота графического окна в пикселях.

Создадим окно с именем "New Window" шириной и высотой 400 пикселей, с левым нижним углом с координатами (75, 90):

	
h=figure(’position’, [75 90 400 400])
set(h, ’numbertitle’, ’off’)
set(h, ’name’, ’New Window’)

Для создания осей в текущем окне служит функция axes, которая возвращает указатель на созданные оси.

Алексей Игнатьев
Алексей Игнатьев

Возможна ли разработка приложения на Octave с GUI?

Евгений Ветчанин
Евгений Ветчанин

Добрый день. Я самостоятельно изучил курс "Введение в Octave" и хочу получить сертификат. Что нужно сднлать для этого? Нужно ли записаться на персональное обучение с тьютором или достаточно перевести деньги?