КУРСОВИЙ ПРОЕКТ
з дисципл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.
|