Меню
  Список тем
  Поиск
Полезная информация
  Краткие содержания
  Словари и энциклопедии
  Классическая литература
Заказ книг и дисков по обучению
  Учебники, словари (labirint.ru)
  Учебная литература (Читай-город.ru)
  Учебная литература (book24.ru)
  Учебная литература (Буквоед.ru)
  Технические и естественные науки (labirint.ru)
  Технические и естественные науки (Читай-город.ru)
  Общественные и гуманитарные науки (labirint.ru)
  Общественные и гуманитарные науки (Читай-город.ru)
  Медицина (labirint.ru)
  Медицина (Читай-город.ru)
  Иностранные языки (labirint.ru)
  Иностранные языки (Читай-город.ru)
  Иностранные языки (Буквоед.ru)
  Искусство. Культура (labirint.ru)
  Искусство. Культура (Читай-город.ru)
  Экономика. Бизнес. Право (labirint.ru)
  Экономика. Бизнес. Право (Читай-город.ru)
  Экономика. Бизнес. Право (book24.ru)
  Экономика. Бизнес. Право (Буквоед.ru)
  Эзотерика и религия (labirint.ru)
  Эзотерика и религия (Читай-город.ru)
  Наука, увлечения, домоводство (book24.ru)
  Наука, увлечения, домоводство (Буквоед.ru)
  Для дома, увлечения (labirint.ru)
  Для дома, увлечения (Читай-город.ru)
  Для детей (labirint.ru)
  Для детей (Читай-город.ru)
  Для детей (book24.ru)
  Компакт-диски (labirint.ru)
  Художественная литература (labirint.ru)
  Художественная литература (Читай-город.ru)
  Художественная литература (Book24.ru)
  Художественная литература (Буквоед)
Реклама
Разное
  Отправить сообщение администрации сайта
  Соглашение на обработку персональных данных
Другие наши сайты
Приглашаем посетить
  Биографии (biografii.niv.ru)

   

Анімація в Delphi 7 0

КУРСОВИЙ ПРОЕКТ

з дисциплiни

Основи програмування та алгоритмiчних мов На тему „Анiмацiя в Delphi 7

Змiст

1. Вступ

2. Характеристика предметної областi

3. Узагальнена схема алгоритму функцiонування проекту

4. Проектування форм

5. Довiдкова система

6. Проектування програмного забезпечення

7. Лiтература

8. Додатки

Вступ

В сучасному свiтi чiльне мiсце посiдають комп’ютернi технологiї. Внаслiдок швидкого розвитку цiєї галузi комп’ютери тепер є доступними практично всiм. А якщо людина має справу з комп’ютером, то рано чи пiзно в неї виникне бажання програмувати. Але декiлька рокiв назад бiльшiсть мов програмування, таких, як TurboPascal, або BorlandC++ forWindows були досить складними для створення в них програм, якими було б зручно користуватись.

Бурхливий розвиток обчислювалної технiки, необхiднiсть в ефективних засобах розробки програмного забезпечення призвели до появи систем програмування, орiєнтованих на так звану „швидку розробку”, серед яких можна видiлити BorlandDelphi i MicrosoftVisualBasic. В основi систем швидкої розробки покладена технологiя вiзуального проектування i подiйного програмування, суть якої заключається в тому, що область розробки бере на себе бiльшу частину рутинної роботи, залишаючи програмiсту роботу по конструюванню дiалогових вiкон i функцiй обробки подiй. Продуктивнiсть програмiста при використаннi систем швидкої розробки приложенiй (RAD- систем) фантастична.

Delphi – це середовище швидкої розробки, в якiй в якостi мови програмування використовується мова Delphi. Мова Delphi – строго типiзована об’єктно орiєнтована мова, в основi якої лежить добре знайомий програмiстам ObjectPascal.

Характеристика предметної областi

Малюнок може бути сформований з графiчних примiтивiв (лiнiй, завкруглень, дуг, багатокутникiв i т, д.). Забезпечити перемiщення малюнка досить просто: треба спочатку вивести малюнок на екран, потiм через якийсь час стерти його i знову вивести цей малюнок, але вже на деякiй вiдстанi вiд його первiсного положення. Пiдбором часу мiж виведенням i видаленням малюнка, а також вiдстанi мiж старим i новим положенням малюнка (кроку перемiщення), можна домогтися того, що в спостерiгача буде складатися враження, що малюнок рiвномiрно рухається по екранi.

Метод базової крапки

При програмуваннi складних зображень, що складаються з безлiчi елементiв, використовується метод, що називається методом базової крапки Суть цього методу полягає в наступному:

3. Якщо координати крапок зображення вiдраховувати вiд базової у вiдносних одиницях, а не в пiкселях, то забезпечується можливiсть масштабування зображення.

На мал. 1 наведене зображення кораблика. Базовою крапкою є крапка з координатами (Хо, Уо). Координати iнших крапок вiдраховуються саме вiд цiєї крапки.

Мал. 1. Визначення координат зображення щодо базової крапки

Малювання i стирання зображення кораблика виконує процедура Titanic, яка одержує як параметри координати базової крапки i колiр, яким треба намалювати зображення. Якщо при виклику процедури Titanic колiр вiдрiзняється вiд кольору тла форми, то процедура малює зображення, а якщо збiгається - те "стирає". У процедурi оголошенi константи dx i dу, що визначають крок (у пiкселях), який використовується при обчисленнi координат крапок зображення. Змiнюючи значення цих констант, можна проводити масштабування зображення.

Проектування форм

Програма складається з одної форми на якiй розмiщенi компоненти Timer1, SpeedButton1, SpeedButton2. У властивостях компонент SpeedButton1 i SpeedButton2 виставленi потрiбнi значення :

SpeedButton1

Caption:CLOSE

Flat:True

Hint:Закриває форму

ShowHint:True

SpeedButton2

Flat:True

Font. Color:clNone

Font. Size:20

ShowHint:True

У властивостях форми виставлено:

Caption:Animate

Constraints. MaxHeigth:380

Constraints. MaxWidth:536

Constraints. MinHeigth:380

Constraints. MinWidth:536

Останнi чотири властивостi забезпечують неможливiсть змiни розмiрiв форми.

Для того, щоб при запуску програми форма з’являлася в центрi екрану в її властивостi Position виставлено значення poDesktopCenter.

Довiдкова система

Проектування програмного забезпечення

„пiдстрибування”.

Процедурамипрограмиє процедури Timer1Timer, FormActivate, SpeedButton1Click, SpeedButton2Click i Titanic.

рух i змiну зображення, а в процедурi FormActivate встановлюються початковi параметри.

Процедури SpeedButton1Click i SpeedButton2Click зв’язанi з двома кнопками i призначенi: SpeedButton1Click – для закриття програми, а SpeedButton2Click для зупинки зображення задопомогою змiни властивостi interval компонента Timer1.

Лiтература

Культин Н. Б., Основы программирования в 7. – СПб.:БХВ-Петербург, 2003. – 608 с.: ил.

Додатки

Форми

Головна форма програми

Тексти модулiв програми

unit Unit1;

interface

uses

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

Dialogs, ExtCtrls, Buttons, StdCtrls;

type

TForm1 = class(TForm)

Timer1: TTimer;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

procedure Timer1Timer(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *. dfm}

procedure titanic(x,y:integer;color:TColor);

const

dx=5;dy=5;

var

buf:TColor;

begin

begin

pen. Color:=color;

lineto(530,161);

ellipse(480,40,600,-80);

moveto(500,30);

lineto(500-x*2,30+x*2);

moveto(480,10);

if z=1 then

lineto(480-x*2,10+x*2);

moveto(520,40);

if z=1 then

lineto(520-x*2,40+x*2);

ellipse (197+s,150-4*dy+n,202+s,150-3*dy+n);

lineto(200+s,150-3*dy+n);

moveto(200+s,150+n);

lineto(200+x+s,150+y+n);

if (z=0) then

if (z=1) then

lineto(200-x+s,150+y+n);

if (z=0) then

lineto(200+x+s,150+y+n);

moveto(200+s,137+n);

if (z=1) then

lineto(200+x+s,137+y+n);

if (z=0) then

moveto(200+s,137+n);

if (z=1) then

lineto(200-x+s,137+y+n);

if (z=0) then

pen. Color:=buf;

end;

end;

procedure TForm1. Timer1Timer(Sender: TObject);

begin

titanic(x,y,form1. Color);

if n=-5 then

u:=1;

u:=0;

if u=1 then

n:=n+1;

if u=0 then

if s<form1. ClientWidth then

else

s:=0;

z:=1;

if x=10 then

z:=0;

if y=0 then

k:=1;

if y=10 then

k:=0;

x:=x+1;

if z=0 then

x:=x-1;

if k=1 then

y:=y-1;

titanic(x,y,clWhite);

end;

procedure TForm1. FormActivate(Sender: TObject);

begin

with form1. Canvas do

begin

pen. Color:=clWhite;

lineto(300,160);

end;

n:=0;

x:=0;

y:=10;

Form1. Color:=clNavy;

Timer1. Interval:=50;

s:=-100;

end;

begin

form1. Close;

end;

procedure TForm1. SpeedButton2Click(Sender: TObject);

begin

if timer1. Interval<1000 then

timer1. Interval:=1000000000

end;

end.