Главная      Лекции     Лекции (разные) - часть 10

 

поиск по сайту            

 

 

 

 

 

 

 

 

 

содержание   ..  97  98  99   ..

 

 

работа " Использование технологии Macromedia Flash для создания интерактивных учебных материалов по курсу "

работа " Использование технологии Macromedia Flash для создания интерактивных учебных материалов по курсу "

Казанский Государственный Университет

Кафедра Экономической Кибернетики

" Использование технологии Macromedia Flash для создания интерактивных учебных материалов по курсу "Историческая геология" (темы: "Действие донных течений",

"Строение Земли")

Выполнила:

cтудентка группы 962Э

Гайнанова Эльвира

Руководитель:

доц. кафедры экономической кибернетики КГУ

О.А. Кашина

Казань 2009

Содержание

Введение_______________________________________________________ 3

Постановка задачи ______________________________________________ 4

Несколько слов о Macromedia Flash ________________________________ 4

Описание работы ________________________________________________ 6

Листинг программы ____________________________________________ 7

Образец пользовательского интерфейса ____________________________ 13

Введение.

Характерной особенностью развития современного общества становится его информатизация. Одним из приоритетных направлений процесса информатизации современного общества является информатизация образования – процесс обеспечения сферы образования методологией и практикой разработки и использования информационных и коммуникационных технологий. Информатизация образования - это процесс интеллектуализации деятельности обучающегося. Она развивается на основе реализации возможностей информационных технологий.

В настоящее время Интернет - технологии развиваются быстрыми темпами, и все большее распространение находят программные продукты, позволяющие создавать Web - приложения, интерактивные программные продукты, а также Web - анимацию. Технологии интерактивной Web – анимации (в частности, Flash -технологии) дают возможность получения красочно анимированных динамических интерактивных страниц очень небольшого размера, что является идеальным для использования в интернете и наглядного зрительного представления информации. Это достигается за счет применения векторной графики и встроенного языка программирования ActionScript .

Преимущества обучения с применением современных компьютерных технологий по сравнению с традиционными формами образования очевидны. Поэтому в Казанском Государственном Университете было решено внедрить систему электронного обучения на всех факультетах. В качестве такой системы была выбрана широко известная система Moodle (модульная объектно-ориентированная динамическая учебная среда). Факультет ВМК является куратором процесса внедрения системы Moodle в учебный процесс на всех факультетах КГУ. В течение 2008-2009 учебного года в этом направлении ВМК сотрудничает с несколькими факультетами, в частности, с геологическим факультетом. В рамках этого сотрудничества разрабатывается, в частности, курс «Историческая геология» . Одним из основных направлений работы по созданию курса являются разработка анимированных интерактивных Flash-роликов (FLASH-Movie ), иллюстрирующих и поясняющих различные геологические процессы. Идея создания FLASH-анимаций принадлежит доценту геофакак Сунгатуллиной Гузель Марсовне. Ею написаны детальные сценарии нескольких роликов, предоставлены графические и текстовые материалы.

Постановка задачи.

В качестве задания для курсовой работы мне было предложено самостоятельно изучить технологию Macromedia Flash 4 и создать несколько анимаций для их последующего внедрения в курс «Историческая геология», размещенного в системе E-learning Moodle .

Несколько слов о Macromedia Flash

Технология Flash развивается с 1996 года как инструмент создания интерактивной анимации для Web, помогающий сделать программы и игры более интересными, динамичными и впечатляющими. Создав Flash, компания Macromedia объединила множество мощных идей и технологии в одной программе, позволив пользователям получать через Web целые мультимедийные презентации.

Основным преимуществом Flash является возможность создания векторных анимационных файлов с небольшим временем загрузки, которые обеспечивают при этом высокую степень интерактивности. Ориентация на векторную графику в качестве основного инструмента разработки Flash-программ позволила реализовать все базовые элементы мультимедиа, такие как движение и звук. При этом благодаря мощным алгоритмам сжатия информации размер получающихся программ минимален и результат их работы не зависит от разрешения экрана у пользователя, что является одним из основных требований, предъявляемых к интернет - проектам.

Помимо этого, Flash является многофункциональным средством, посредством которого можно реализовать доступ к базам данных, поддержку XML, интеграцию видео и аудио, использовать предварительно встроенные шаблоны, процедуру перетаскивания, получать доступ к серверам приложений, работающим в режиме реального времени.

Одним из основных преимуществ Flash-технологии является его межплатформенность, то есть этот формат может использоваться на любой аппаратно-программной платформе, в частности, как на компьютерах Macintosh, работающих под управлением операционной системы MacOS, так и на компьютерах IBM с ОС Windows, а также на платформах UNIX, PDA и даже в мобильных телефонах.

Зона применения Flash-программ огромна. Вначале Flash-технологии использовались преимущественно для создания различных анимированных баннеров и заставок, затем большую популярность приобрели Flash-игры и короткие анимационные Flash-ролики. Параллельно с этим активно развивались онлайновые интерактивные бизнес-приложения: руководства пользователя, рекламные презентации, средства обучения и т.п. Все чаще технология Flash стала применяться для создания сложных интерактивных сайтов и в последние годы превратилась в промышленный стандарт для работы с интерактивным контентом.

Использование Flash не ограничивается Интернетом. Любой разработанный во Flash продукт может быть выпущен как интерактивный фильм в Web, как видео ролик, пригодный для просмотра на компьютерах, или даже как исполняемая программа, распространяемая на CD.

Описание работы.

Исходные данные к работе

В процессе реализации курсовой работы мной были разработаны две анимированные Flash- иллюстрации: «Действие донных течений» и «Строение Земли».

В качестве основы мне были предложены несколько статичных картинок, которые требовалось анимировать и связать друг с другом.

1. Картинки для анимации «Действие донных течений»

2. Картинки для анимации «Строение Земли»

Проблемы импорта данных и их решение

Как уже говорилось, Flash основан на использовании векторной графики . Векторная графика – это объекты, определяемыми математическими уравнениями или векторами, которые содержат информацию о размере, форме, цвете, границе и местоположении объекта. Качество изображения не зависит от разрешения, с которым просматривается объект.

Отличие рисунков векторной и растровой графики при многократном увеличении.

Для достижения максимального сходства с оригиналами было необходимо импортировать их во Flash. В этом состояла основная сложность работы, так как исходные картинки представляют собой растровые изображенияFLASH работает с векторной графикой). Перерисовать их заново вручную – очень трудоемкий и долгий процесс. Использование трассировки (перевод растрового изображения в векторное, путем разбиения его на отдельные детали - формы и линии) приводит к большой потере четкости изображения. Наилучший эффект был достигнут путем трассировки импортированных во Flash картинок и последующей частичной перерисовки полученных изображений уже в формате векторной графики.

Принципы разработки FLASH-проекта

Изучив литературу по технологии FLASH, мы сформулировали следующие принципы создания FLASH-movie:

1. Использование обозначений для элементов, которые появляются больше одного раза. Так как такие элементы, как векторы, растровые изображения и звук обычно используются в одном проекте несколько раз, Flash, благодаря своей внутренней функции Symbol Conversation позволяет создавать единственный экземпляр объекта, который можно повторно использовать вместо того, чтобы каждый раз пересоздавать новый. Такой подход существенно уменьшает размер файла проекта. Однако следует помнить, что при изменении свойств «эталона» изменения произойдут везде, где использовался этот «эталон».

2. Объединение кадров в действиях перемещения (motion tweens ), которое позволяет автоматически просчитать некоторые промежуточные моменты перемещения, для ускорения разработки проектов. Анимация движения может применяться только к эталонам.

3. Объединение кадров в действиях трансформации (shape tweens ), которое позволяет автоматически просчитать некоторые промежуточные моменты трансформации объектов, для ускорения разработки проектов. Анимация формы может применяться только к формам.

4. Сокращение числа различных типов линий (пунктир, точки и т.п). Линии, нарисованные инструментом "карандаш", требуют меньше памяти, чем мазки кистью.

5. Использование слоёв, для разбиения перекрывающихся объектов клипа. Правильное распределение отдельных фрагментов изображения по различным слоям может существенно облегчить работу и расширить возможности.

6. Сокращение числа различных шрифтов и стилей, путём преобразования их в объекты векторной графики.

7. Использование возможности анимации растровых изображений или для статических элементов закраски объектов и фона.

8. Применение сценариев (Actions Script ), вставка их в отдельные кадры фильма. Так называемая «программная анимация». С помощью нее создаются повторяющиеся части анимации, задается большинство параметров объектов.

9. Возможность сгруппировывать объекты на различных слоях.

10. Использование встроенных инструментов для изменения цветовых эффектов одного и того же объекта.

11. Использование единой палитры, во избежание расхождений с цветами. Цветовые палитры, а также градиентные заливки можно импортировать (и экспортировать) из других графических приложений (например, Macromedia Fireworks и Adobe Photoshop ).

12. Применение компонента управления проектом Library , который позволяет быстро найти любой объект и поменять его свойства.

13. Возможность вставки в текущий проект ранее созданного проекта, а также возможность экспортировать эталоны и клипы из других проектов.

При создании роликов были использованы все виды анимации.

Порядок работы

Вывод

Тесты показали, что программа успешно работает.

Созданные анимации внедрены в систему Moodle

используется в учебном процессе на геологическом факультете КГУ.

http://kek.ksu.ru/EOS/Moodle/Anima/Stream_Effects 202.html

ftp://kek.ksu.ru:10021/EOS/Moodle/Anima/Earth/EartButtons.html

Лаборатория компьютерных средств обучения (Александрова Ирина Сергеевна)

Листинг программы.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Unit2, Mask;

type

TForm1 = class(TForm)

RadioGroup1: TRadioGroup;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

procedure RadioButton1Click(Sender: TObject);

procedure RadioButton2Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var Form1: TForm1;

x, y, d, g, p, Q: array of Double;

n, count: integer;

implementation

{$R *.dfm}

procedure activateItems(flag1: BOOL; flag2: BOOL); // Изменить видимость объектов

begin

Form1.Label1.Visible:=flag1; Form1.Label2.Visible:=flag1;

Form1.Label3.Visible:=flag1; Form1.Label4.Visible:=flag1;

Form1.Label5.Visible:=flag2; Form1.Edit1.Visible:=flag1;

Form1.Edit2.Visible:=flag1; Form1.Edit3.Visible:=flag1;

Form1.Edit4.Visible:=flag2; Form1.Button1.Visible:=flag1;

Form1.Button3.Visible:=flag1;

if (flag1=False) AND (flag2=False) then

begin

Form1.Edit1.Clear; Form1.Edit2.Clear;

Form1.Edit3.Clear; Form1.Edit4.Clear;

end;

end;

procedure TForm1.RadioButton1Click(Sender: TObject);

begin

activateItems(True,True);

n:=4;

end;

procedure TForm1.RadioButton2Click(Sender: TObject);

begin

activateItems(True,False);

n:=3;

end;

procedure TForm1.Button2Click(Sender: TObject); // Выход

begin

Form1.Close; Form2.Close;

end;

procedure TForm1.Button3Click(Sender: TObject); // Сброс

begin

activateItems(False,False);

RadioButton1.Checked:=False;

RadioButton2.Checked:=False;

end;

function f(x: array of Double): Double; // Значение функции

var a, b, c: Double;

begin

if (n=4) then

begin

a:=sqr(x[0]+10*x[1])+5*sqr(x[2]-x[3]);

b:=sqr(x[1]-2*x[2]);

c:=sqr(x[0]-x[3]);

Result:=a+sqr(b)+10*sqr(c);

end

else

if (n=3) then

begin

a:=3*sqr(x[0]-4);

b:=5*sqr(x[1]+3);

c:=7*sqr(2*x[2]+1);

Result:=a+b+c;

end;

end;

function Gradient(x: array of Double; n: integer): Double; // Значение градиента

var ggg: Double;

begin

ggg:=0;

if (n=4) then

begin

g[0]:=2*(x[0]+10*x[1])+40*sqr(x[0]-x[3])*(x[0]-x[3]);

g[1]:=20*(x[0]+10*x[1])+4*sqr(x[1]-2*x[2])*(x[1]-2*x[2]);

g[2]:=10*(x[2]-x[3])-8*sqr(x[1]-2*x[2])*(x[1]-2*x[2]);

g[3]:=-10*(x[2]-x[3])-40*sqr(x[0]-x[3])*(x[0]-x[3]);

// Вычисляем норму градиента

ggg:=g[0]*g[0]; ggg:=ggg+sqr(g[1]); ggg:=ggg+sqr(g[2]); ggg:=ggg+sqr(g[3]);

end

else

if (n=3) then

begin

g[0]:=6*(x[0]-4);

g[1]:=10*(x[1]+3);

g[2]:=28*(2*x[2]+1);

ggg:=sqr(g[0]); ggg:=ggg+sqr(g[1]); ggg:=ggg+sqr(g[2]);

end;

Result:=sqrt(ggg);

end;

procedure Interpolation(); // Кубическая интерполяция

var Gp, Gq, Fp, Fq, Gr, Fr, HH, z, w, r: Double;

var Qx: Double;

var i: Integer;

begin

Fp:=f(x);

while True do // Находим направление

begin

Gp:=0;

for i:=0 to n-1 do

Gp:= Gp + g[i]*d[i];

Qx:=ABS((2*Fp)/Gp);

if Qx>1 then Qx:=1;

if Gp<0 then break;

for i:=0 to n-1 do

begin

x[i]:= p[i]-Qx*d[i];

p[i]:=x[i];

end;

Fp:=f(x);

Gradient(x,n);

end;

HH:=Qx;

while True do //Находим точку q

begin

for i:=0 to n-1 do

begin

Q[i]:=p[i]+ HH*d[i];

x[i]:=Q[i];

end;

Fq:=f(x);

Gradient(x,n);

Gq:=0;

for i:=0 to n-1 do

Gq:=Gq+g[i]*d[i];

if (Gq>0) or (Fq>Fp) then break;

HH:=2*HH;

end;

while True do // аппроксимация точки минимума на (0,HH) значением r

begin

z:=((3*(Fp-Fq))/HH)+Gp+Gq;

w:=z*z-Gp*Gq;

if (w<0) then w:=0;

w:=sqrt(w);

r:=HH*(1-((Gq+w-z)/(Gq-Gp+2*w)));

for i:=0 to n-1 do

x[i]:= p[i]+ r*d[i];

Fr:=f(x);

Gradient(x,n);

Gr:=0;

for i:=0 to n-1 do

Gr:=Gr+g[i]*d[i];

if (Fr<=Fp) and (Fr<=Fq) then break; //условия выхода из интерполяции

if Gr>0 then

begin

HH:=r;

for i:=0 to n-1 do

Q[i]:=x[i];

Fq:=Fr;

Gq:=Gr;

end

else

begin

HH:=HH-r;

for i:=0 to n-1 do

p[i]:=x[i];

Fp:=Fr;

Gp:=Gr;

end;

end;

end;

procedure TForm1.Button1Click(Sender: TObject); // Метод ДФП

var kk, wk, dk: Double;

var i, j: integer;

var U, M, V: array of Double;

var H: array of array of Double;

const Eps=0.00001; e=0.00005; // заданная точность

begin

SetLength(x,n); SetLength(H,n,n);

SetLength(d,n); SetLength(g,n);

SetLength(U,n); SetLength(p,n);

SetLength(y,n); SetLength(M,n);

SetLength(V,n); SetLength(p,n);

SetLength(Q,n);

x[0]:=StrToFloat(Edit1.Text);

x[1]:=StrToFloat(Edit2.Text);

x[2]:=StrToFloat(Edit3.Text);

if (n=4) then x[3]:=StrToFloat(Edit4.Text);

Form2.Show;

Form2.ListBox1.Clear;

count:=0; // количество итераций

dk:=1;

for i:=0 to n-1 do

begin

for j:=0 to n-1 do

H[i,j]:=0;

H[i,i]:=1;

end;

// Цикл Метода

while (sqrt(dk)>=e) and (Gradient(x,n)>=Eps) do

begin

for i:=0 to n-1 do

begin

p[i]:=x[i]; y[i]:=x[i];

end;

Gradient(x,n);

for i:=0 to n-1 do //запоминаем градиент в U[] и задаем направление спуска d[]

begin

U[i]:=g[i];

d[i]:=0;

for j:=0 to n-1 do

d[i]:=d[i]-H[i,j]*g[j];

end;

Interpolation();

kk:=0; wk:=0; dk:=0; // обновим матрицу H

for i:=0 to n-1 do

begin

U[i]:=g[i]-U[i];

V[i]:=x[i]-y[i];

end;

for i:=0 to n-1 do

begin

M[i]:=0;

for j:=0 to n-1 do

M[i]:=M[i]+H[i,j]*U[j];

kk:=kk+M[i]*U[i];

wk:=wk+V[i]*U[i];

dk:=dk+V[i]*V[i];

end;

if (kk<>0) and (wk<>0) then

begin

for i:=0 to n-1 do

for j:=0 to n-1 do

begin

H[i,j]:=H[i,j]-(M[i]*M[j]/kk)+(V[i]*V[j]/wk);

end;

end;

count:=count+1;

Form2.ListBox1.Items.Add(' Итерация '+IntToStr(count));

Form2.ListBox1.Items.Add(' f(x) = '+FloatToStrF(f(x),ffGeneral,7,0));

for i:=0 to n-1 do

Form2.ListBox1.Items.Add('x'+IntToStr(i+1)+' = '+ FloatToStrF(x[i],ffGeneral,7,0));

Form2.ListBox1.Items.Add('');

end; // Конец цикла минимизации

Form2.ListBox1.Items.Add(' Минимизация закончена!');

Form2.ListBox1.Items.Add('Количество итераций: '+IntToStr(count));

Form2.ListBox1.Items.Add('Минимум функции f(x) = '+FloatToStrF(f(x),ffGeneral,7,0));

for i:=0 to n-1 do

Form2.ListBox1.Items.Add('x'+IntToStr(i+1)+' = '+ FloatToStrF(x[i],ffGeneral,7,0));

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm2 = class(TForm)

Label1: TLabel;

ListBox1: TListBox;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject); // Выход

begin

Form1.Close;

Form2.Close;

end;

end.

Образец пользовательского интерфейса.

 

 

 

 

 

 

 

содержание   ..  97  98  99   ..