Курсовая работа: Движущаяся машина
Содержание
Введение_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _3Постановка задачи _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _4
Теоретическая часть_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _5
Алгоритм решения задачи_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 7
Исходный код программы _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 8
Приложение _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10
Заключение_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11
Список использованной литературы_ _ _ _ _ _ _ _ _ _ _ _ _ 12
Введение
Программа разработана на языке DELPНI. Тема моей курсовой работы «Движущаяся машина». Цель данной курсовой работы: научится использовать и управлять графическими возможностями DELPНI. В курсовой работе я осуществил выведение графического объекта (машины) на форму при помощи метода базовой точки, а также движение объекта по поверхности формы. Все использованные мной методы принадлежат к обширным графическим возможностям DELPНI. Моя задача состоит в демонстрации только некоторых графических возможностей DELPНI.
Постановка задачи
Задача данной курсовой работы состоит том, чтобы научиться использовать графические возможности Delphi. Нужно при помощи метода базовой точки, который относится к графическим возможностям Delphi, на поверхности формы вначале отрисовать объект, грузовой автомобиль, а затем при помощи различных процедур осуществить движение этого автомобиля по поверхности формы справа на лево. Перемещение автомобиля с одной точки к другой производится путем стирания автомобиля в предыдущей точке и отрисовке автомобиля в новой точке (на новом месте). Такие перерисовки графического объекта осуществляются через определенный малый промежуток времени при помощи компонента Delphi под названием TTimer. Также можно выбрать необходимую скорость движения автомобиля на поверхности формы. Скорость автомобиля будет меняться, если внести изменения в интервал времени в мСек (миллисекундах). То есть установить количество миллисекунд в течение которого будет стираться изображение автомобиля на прежнем месте с прежними координатами и будет отрисрван автомобиль в новом месте с новыми координатами. Для того чтобы более реально отобразить движение автомобиля по форме я выбрал 50 мСек. После того как автомобиль доедет до правой границы формы и полностью уйдет за нее, он появится вновь с левой стороны формы и начнет опять продолжать свое движение. Автомобиль будет двигаться по форме до тех пор пока пользователь не остановит его нажав кнопку Выход. Созданная программа с удобным интерфейсом позволяет продемонстрировать использованный метод базовой точки и навыки работы с таймером, что относится к графическим возможностям Delphi. Программа проста и удобна в использовании, отвечает на все запросы пользователя. Не смотря на простоту, выполняет все задачи, поставленные в условии. В ходе программы использовать компоненты TTimer, ТButton, а также многие процедуры и методы, которые в совокупности обеспечивают выполнение поставленной задачи.
Теоретическая часть
В данной курсовой работе мною были использованы различные
процедуры, функции, методы, операторы, переменные, компоненты:
• Delphi 6 – приложение Borland, язык программирования, в принципе основная часть всего создания программы.
• ТButton – стандартная командная кнопка, обычно кнопка используется для запуска действия. Щелчок на командную кнопку - это пример того, что в Windows называется событием. Щелчок мышью – событие On Click. Свойство Default=True ассоциирует вводимый компонент с кнопкой Enter, Cancel=True – с кнопкой Esc. Свойства Color для оформления, надписи (Caption) у кнопки нет. Амперсант, помещенный в тексте надписи, указывает быструю Alt-клавишу запуска, например, Caption=A&Ppend вызывает срабатывание кнопки при нажатии Alt-P. Свойство ModalResult=true определит обязательность нажатия для закрытия дочернего окна.
Компонент ТButton находится на вкладке палитры компонентов под названием Standard (рис1).
Рис1
• TTimer –невизуальный компонент для обеспечения периодического вызова процедур или осуществления прочих периодических действий.
Свойства компонента TTimer:
Name – имя компонента. Используется для доступа к компоненту
Interval - Период генерации события ОnTimer. Задается миллисекундах.
Enable – Разрешение работы. Разрешает (значение True) или запрещает (значение False) генерацию события ОnTimer.
Добавляется компонент TTimer к форме обычным образом, однако, поскольку компонент TTimer является невизуальным, т.е. во время работы программы он не отображается на форме, его значок можно поместить в любое место формы.
Компонент TTimer генерирует событие ОnTimer. Период возникновения события ОnTimer измеряется в миллисекундах и определяется значением свойства Interval. Следует обратить внимание на свойство Enable. Оно дает возможность программе «запустить» или «остановить» таймер. Если значение свойства Enable равно False, то событие ОnTimer не возникает.
Компонент TTimer находится на вкладке System палитры компонентов (рис2).
Таким образом при помощи всего двух компонентов осуществляется отображение графического объекта (грузового автомобиля) на поверхности формы. А также при помощи кнопки осуществляется выход из программы. Но, однако, самое главное, а именно отрисовка изображения осуществляется в коде программы. Таймер осуществляет запуск перерисовки объекта на новом месте. Таким образом осуществляя движение графического объекта (грузового автомобиля).
• Метод базовой точки.
При программировании сложных изображений, состоящих из множеств элементов, используется метод, который называется методом базовой точки.
Суть этого метода заключается в следующем:
1. Выбирается некоторая точка изображения, которая принимается за базовую.
2. Координаты остальных точек отсчитываются от базовой точки.
3. Если координаты точек изображения отсчитывать от базовой в относительных единицах, а не в пикселах, то обеспечивается возможность масштабирования изображения.
• Отрисовку и стирание изображения автомобиля выполняет процедура Mashina, которая получает в качестве координаты базовой точки и цвет, которым надо вычертить изображение автомобиля. Если при вызове процедуры цвет отличается от цвета формы, то процедура рисует грузовой автомобиль, а если совпадает – то «стирает». В процедуре Mashina объявлены константы dx и dy, определяющие шаг (в пикселах), используемый при вычислении координат точек изображения. Меняя значения этих констант можно проводить масштабирование изображения.
Алгоритм решения задачи
Шаг 1
Раздел описания переменных, координат автомобиля (базовой точки) используемых в программе.
Шаг 2
Процедура позволяющая выполнить отрисовку и стирание изображения грузового автомобиля.
Шаг 3
Обработка сигнала таймера. Процедура, выполняющая стирание изображения в предыдущей точке и выполняющая отрисовку грузового автомобиля в точке с новыми координатами.
Шаг 4
Процедура, присваивающая грузовому автомобилю начальные координаты и произведение повторения процедуры обработки сигнала таймера с интервалом в каждые 50 мСек.
Шаг 5
Процедура позволяющая пользователю выйти из программы, нажав кнопку с надписью «Выход».
Исходный код программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Button1: TButton;
procedure Timer1Timer(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,y: integer; // координаты автомобиля (базовой точки)
implementation
{$R *.DFM}
procedure Mashina(x,y: integer; // координаты базовой точки
color: TColor); // цвет автомобиля
const
dx = 4;
dy = 4;
var
buf: TColor;
buf1: TColor;
begin
with form1.canvas do
begin
buf:=pen.Color; // сохраним текущий цвет.....
Мақала ұнаса, бөлісіңіз:
Іздеп көріңіз: