это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
Основи програмування та алгоритмічних мовНа тему „АнімаціявDelphi 7”
Зміст
1.Вступ
2.Характеристика предметної області
3.Узагальнена схема алгоритму функціонування проекту
4. Проектування форм
5. Довідкова система
6. Проектування програмного забезпечення
7. Література
8. Додатки
Вступ
В сучасному світі чільне місце посідають комп’ютерні технології. Внаслідок швидкого розвитку цієї галузі комп’ютери тепер є доступними практично всім. А якщо людина має справу з комп’ютером, то рано чи пізно в неї виникне бажання програмувати. Але декілька років назад більшість мов програмування, таких, як TurboPascal, або BorlandC++ forWindows були досить складними для створення в них програм, якими було б зручно користуватись.
Бурхливий розвиток обчислювалної техніки, необхідність в ефективних засобах розробки програмного забезпечення призвели до появи систем програмування, орієнтованих на так звану „швидку розробку”, серед яких можна виділити BorlandDelphi і MicrosoftVisualBasic. В основі систем швидкої розробки покладена технологія візуального проектування і подійного програмування, суть якої заключається в тому, що область розробки бере на себе більшу частину рутинної роботи, залишаючи програмісту роботу по конструюванню діалогових вікон і функцій обробки подій. Продуктивність програміста при використанні систем швидкої розробки приложеній (RAD- систем) фантастична.
Delphi – це середовище швидкої розробки, в якій в якості мови програмування використовується мова Delphi. Мова Delphi – строго типізована об’єктно орієнтована мова, в основі якої лежить добре знайомий програмістам ObjectPascal.
Характеристика предметної області
Мультиплікація
Під мультиплікацією зазвичай мається на увазі малюнок, який рухається і змінюється. В найпростішому випадку малюнок може або тільки рухатися або тільки змінюватися
Малюнок може бути сформований з графічних примітивів (ліній, завкруглень, дуг, багатокутників і т, д.). Забезпечити переміщення малюнка досить просто: треба спочатку вивести малюнок на екран, потім через якийсь час стерти його і знову вивести цей малюнок, але вже на деякій відстані від його первісного положення. Підбором часу між виведенням і видаленням малюнка, а також відстані між старим і новим положенням малюнка (кроку переміщення), можна домогтися того, що в спостерігача буде складатися враження, що малюнок рівномірно рухається по екрані.
Метод базової крапки
При програмуванні складних зображень, що складаються з безлічі елементів, використовується метод, що називається методом базової крапки Суть цього методу полягає в наступному:
1. Вибирається деяка крапка зображення, що приймається за базову.
2. Координати інших крапок відраховуються від базової крапки.
3. Якщо координати крапок зображення відраховувати від базової у відносних одиницях, а не в пікселях, то забезпечується можливість масштабування зображення.
На мал. 1 наведене зображення кораблика. Базовою крапкою є крапка з координатами (Хо, Уо). Координати інших крапок відраховуються саме від цієї крапки.
Мал. 1. Визначення координат зображення щодо базової крапки
Узагальнена схема алгоритму функціонування проекту
Малювання і стирання зображення кораблика виконує процедура Titanic, яка одержує як параметри координати базової крапки і колір, яким треба намалювати зображення. Якщо при виклику процедури Titanic колір відрізняється від кольору тла форми, то процедура малює зображення, а якщо збігається - те "стирає". У процедурі оголошені константи dx і dу, що визначають крок (у пікселях), який використовується при обчисленні координат крапок зображення. Змінюючи значення цих констант, можна проводити масштабування зображення.
Проектування форм
Програма складається з одної форми на якій розміщені компоненти Timer1, SpeedButton1, SpeedButton2. У властивостях компонент SpeedButton1 і SpeedButton2 виставлені потрібні значення :
SpeedButton1
Caption:CLOSE
Flat:True
Font.Color:clNone
Font.Size:20
Hint:Закриває форму
ShowHint:True
SpeedButton2
Caption:STOP
Flat:True
Font.Color:clNone
Font.Size:20
Hint:Зупиняє рух зображення
ShowHint:True
У властивостях форми виставлено:
Caption:Animate
Constraints.MaxHeigth:380
Constraints.MaxWidth:536
Constraints.MinHeigth:380
Constraints.MinWidth:536
Останні чотири властивості забезпечують неможливість зміни розмірів форми.
Для того, щоб при запуску програми форма з’являлася в центрі екрану в її властивості Position виставлено значення poDesktopCenter.
Довідкова система
В програмі є дві підказки, які вказують на те, які функції виконують дві кнопки, які знаходяться на формі.
Проектування програмного забезпечення
В програмі використовуються змінні x,y,z,k,s,n і u типу integer.
За рух зображення відповідають змінні x,y,sі n, а змінні z,kiu є допоміжними. Змінні х і у відповідають за махаючі рухи «рук» і «ніг» «чоловічка», змінна s за переміщення його вздовж, а змінна т за його „підстрибування”.
Процедурамипрограмиє процедури Timer1Timer, FormActivate, SpeedButton1Click, SpeedButton2Click і Titanic.
Основна робота виконується процедурами Timer1Timer,FormActivate та процедурою Titanic. Процедура Titanic виконує малювання зображення, використовуючи графічну підсистему Delphi, Timer1Timer забезпечує рух і зміну зображення, а в процедурі FormActivate встановлюються початкові параметри.
Процедури SpeedButton1Click і SpeedButton2Click зв’язані з двома кнопками і призначені: SpeedButton1Click – для закриття програми, а SpeedButton2Click для зупинки зображення задопомогою зміни властивості interval компонента Timer1.
Література
Культин Н.Б., Основы программирования в Delphi 7. – СПб.:БХВ-Петербург, 2003. – 608 с.:ил.
Додатки
Форми
Головна форма програми
Тексти модулів програми
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;
x,y,z,k,s,n,u:integer;
implementation
{$R *.dfm}
procedure titanic(x,y:integer;color:TColor);
const
dx=5;dy=5;
var
buf:TColor;
begin
with form1.Canvas do
begin
buf:=pen.Color;
pen.Color:=color;
moveto(0,161);
lineto(530,161);
ellipse(480,40,600,-80);
moveto(500,30);
if z=1 then
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);
moveto(200+s,150+n);
lineto(200+s,150-3*dy+n);
moveto(200+s,150+n);
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,150+n);
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
lineto(200-x+s,137+y+n);
moveto(200+s,137+n);
if (z=1) then
lineto(200-x+s,137+y+n);
if (z=0) then
lineto(200+x+s,137+y+n);
pen.Color:=buf;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
titanic(x,y,form1.Color);
if n=-5 then
u:=1;
if n=5 then
u:=0;
if u=1 then
n:=n+1;
if u=0 then
n:=n-1;
if s<form1.ClientWidth then
s:=s+1
else
s:=0;
if x=0 then
z:=1;
if x=10 then
z:=0;
if y=0 then
k:=1;
if y=10 then
k:=0;
if z=1 then
x:=x+1;
if z=0 then
x:=x-1;
if k=1 then
y:=y+1;
if k=0 then
y:=y-1;
titanic(x,y,clWhite);
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
with form1.Canvas do
begin
pen.Color:=clWhite;
moveto(0,160);
lineto(300,160);
end;
n:=0;
x:=0;
y:=10;
Form1.Color:=clNavy;
Timer1.Interval:=50;
s:=-100;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if timer1.Interval<1000 then
timer1.Interval:=1000000000
else timer1.Interval:=10;
end;
end.
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Требуется разобрать ст. 135 Налогового кодекса по составу напогового...
Решение задач, Налоговое право
Срок сдачи к 5 дек.
Школьный кабинет химии и его роль в химико-образовательном процессе
Курсовая, Методика преподавания химии
Срок сдачи к 26 дек.
Реферат по теме «общественное мнение как объект манипулятивного воздействий. интерпретация общественного мнения по п. бурдьё»
Реферат, Социология
Срок сдачи к 9 дек.
Выполнить курсовую работу. Образовательные стандарты и программы. Е-01220
Курсовая, Английский язык
Срок сдачи к 10 дек.
Изложение темы: экзистенциализм. основные идеи с. кьеркегора.
Реферат, Философия
Срок сдачи к 12 дек.
Заполните форму и узнайте цену на индивидуальную работу!