Операционная система Windows


 

Меню

Реклама
Похожие статьи:

Популярные записи



  • Основы программирования и алгоритмических мов

    В современном мире главное место занимают компьютерные технологии. В результате быстрого развития этой отрасли компьютеры теперь являются доступными практически всем. А если человек имеет дело с компьютером, то рано или поздно у нее возникнет желание программировать. Но несколько лет назад большинство словно программирование, таких, как Turbo Pascal, или Borland C++ for Windows были достаточно сложными для создания в них программ, которыми было бы удобно пользоваться.

    Бурное развитие обчислювалной техники, необходимость в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую „быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки положена технология визуального проектирования и подийного программирования, суть которой заключается в том, что область разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста при использовании систем быстрой разработки приложений RAD - систем фантастическая.

    Delphi – это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi – строго типизирует объектный ориентирован язык, в основе которого лежит хорошо знакомый программистам Object Pascal.

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

    Мультипликация

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

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

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

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

    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, у,z, к,s, n и u типа integer.

    За движение изображения отвечают переменные x, у,s и n, а переменные z, к и u является вспомогательными. Переменные х и в отвечают за машущие движения «рук» и «ног» «человечка», переменная s за перемещение его вдоль, а переменная т за его „подпрыгивание".

    Процедурами программы являются процедуры Timer1timer, Formactivate, Speedbutton1click, Speedbutton2click и Titanic.

    Основная работа выполняется процедурами Timer1timer, Formactivate и процедурой Titanic. Процедура Titanic выполняет рисование изображения, используя графическую подсистему Delphi, Timer1timer обеспечивает движение и изменение изображения, а в процедуре Formactivate устанавливаются начальные параметры.

    Процедуры Speedbutton1click и Speedbutton2click связаны с двумя кнопками и назначены: Speedbutton1click – для закрытия программы, а Speedbutton2click для остановки изображения задопомогой изменения свойства interval компонента Timer1.

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

    Тексты модулей программы

    Unit Unit1;

    Interface

    Uses

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

    Dialogs, Extctrls, Buttons, Stdctrls;

    Type

    Tform1 = classtform

    Timer1: Ttimer;

    Speedbutton1: Tspeedbutton;

    Speedbutton2: Tspeedbutton;

    procedure Timer1timersender: Tobject;

    procedure Formactivatesender: Tobject;

    procedure Speedbutton1clicksender: Tobject;

    procedure Speedbutton2clicksender: Tobject;

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    Var

    Form1: Tform1;

    x, у,z, к,s, n,u:integer;

    Implementation

    {$R.dfm}

    Procedure titanicx, y:integer;color:TColor;

    Const

    Dx=5;dy=5;

    Var

    Buf:tcolor;

    Begin

    With form1.Canvas do

    Begin

    Buf:=pen. Color;

    Pen. Color:=color;

    Moveto0,161;

    Lineto530,161;

    Ellipse480,40,600-80;

    Moveto500,30;

    If z=1 then

    Lineto500-x2,30+x2;

    Moveto480,10;

    If z=1 then

    Lineto480-x2,10+x2;

    Moveto520,40;

    If z=1 then

    Lineto520-x2,40+x2;

    Ellipse 197+s,150-4dy+n,202+s,150-3dy+n;

    Moveto200+s,150+n;

    Lineto200+s,150-3dy+n;

    Moveto200+s,150+n;

    If z=1 then

    Lineto200+x+s,150+y+n;

    If z=0 then

    Lineto200-x+s,150+y+n;

    Moveto200+s,150+n;

    If z=1 then

    Lineto200-x+s,150+y+n;

    If z=0 then

    Lineto200+x+s,150+y+n;

    Moveto200+s,137+n;

    If z=1 then

    Lineto200+x+s,137+y+n;

    If z=0 then

    Lineto200-x+s,137+y+n;

    Moveto200+s,137+n;

    If z=1 then

    Lineto200-x+s,137+y+n;

    If z=0 then

    Lineto200+x+s,137+y+n;

    Pen. Color:=buf;

    End;

    End;

    Procedure Tform1.Timer1TimerSender: Tobject;

    Begin

    Titanicx, у,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 sform1.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;

    Titanicx, у,clwhite;

    End;

    Procedure Tform1.FormActivateSender: Tobject;

    Begin

    With form1.Canvas do

    Begin

    Pen. Color:=clwhite;

    Moveto0,160;

    Lineto300,160;

    End;

    N:=0;

    X:=0;

    Y:=10;

    Form1.Color:=clNavy;

    Timer1.Interval:=50;

    S:=-100;

    End;

    Procedure Tform1.SpeedButton1ClickSender: Tobject;

    Begin

    Form1.Close;

    End;

    Procedure Tform1.SpeedButton2ClickSender: Tobject;

    Begin

    If timer1.Interval1000 then

    Timer1.Interval:=1000000000

    Else timer1.Interval:=10;

    End;

    End.