Каким образом можно создавать анимационные Картинки в Scilab
Рассмотрим простой случай создания имитации движения в Scilab, чтобы продемонстрировать основную идею реализации.
Итак, будем работать с точкой, которая движется по оси

Положение точки в дискретные моменты врмени.
Создание анимации движения этого кружочка из точки
Рисуем точку в момент времени
Стираем точку с координатами
Инкремируем момент времени
Рисуем точку в момент времени

Цикл передвижения точки вдоль горизонтальной оси.

Программная реализация
Сформируем массивы данных: временной промежуток и соответствующее положение точки на оси
// входные данные
t = 0:1e-2:1; // временной отрезок
x = sin(2*%pi*t); // положение точки на оси хвремя и координата.
Добавим начальную точку на графике
// Рисуем точку в первый момент времени
plot(x(1), 0);Точка в первый момент времени.
Далее заведём переменные для координатной сетки, сцены, на которой происходит анимаци и самого анимированного элемента:
point_axes = gca(); //сетка координат
point_scene = gce(); //объекты на сетке
point = point_scene.children; //наша точкаЗарезервируем переменные для создания анимации
Несколько стилизуем наши элементы: добавим подпись оси и заголовок сетки координат, а также увеличим размер точки и её покрасим её в синий цвет:
point_axes.data_bounds = [-1.5, -1.5; 1.5, 1.5]; //границы координатных осей
point_axes.grid = [1,1]; //вспомогательная разметка
point_axes.x_label.text = "x"; //подпись горизонтальной оси
point_axes.x_label.font_size = 4; //размер шрифта подписи по оси х
point_axes.title.text = "Движущаяся точка" //Заголовок
point_axes.title.font_size = 4; //размер шрифта заголовка графика
point.mark_style = 0; //тип соединительных элементов - кружок
point.mark_size = 20; //размер соединительных элементов
point.mark_foreground = color(0,0,255); //цвет кружка в формате rgb - синийСтилизуем изображаемые данные на графике в Scilab
А далее - организуем цикл по всем значениям массива, отвечающего за положение токи на плоскости и итерационно будем рисовать и стирать точку в каждый из моментов времени:
// цикл для анимации
for i = 1:length(x)
drawlater();
point.data = [x(i), 0];
drawnow();
endЦикл для создания анимации
В итоге, программа, реализующая передвижение точки с анимацией движения будет выглядеть следующим образом:
clc; clf();
// входные данные
t = 0:1e-2:1; // временной отрезок
x = sin(2*%pi*t); // положение точки на оси х
// Рисуем точку в первый момент времени
plot(x(1), 0);
point_axes = gca(); //сетка координат
point_scene = gce(); //объекты на сетке
point = point_scene.children; //наша точка
point_axes.data_bounds = [-1.5, -1.5; 1.5, 1.5]; //границы координатных осей
point_axes.grid = [1,1]; //вспомогательная разметка
point_axes.x_label.text = "x"; //подпись горизонтальной оси
point_axes.x_label.font_size = 4; //размер шрифта подписи по оси х
point_axes.title.text = "Движущаяся точка" //Заголовок
point_axes.title.font_size = 4; //размер шрифта заголовка графика
point.mark_style = 0; //тип соединительных элементов - кружок
point.mark_size = 20; //размер соединительных элементов
point.mark_foreground = color(0,0,255); //цвет кружка в формате rgb - синий
// цикл для анимации
for i = 1:length(x)
drawlater();
point.data = [x(i), 0];
drawnow();
endСоздание анимации в Scilab





