Реферат

Реферат Модель движения спутника вокруг планеты

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024




СОДЕРЖАНИЕ

Стр.

Введение   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   2

Описание программы  ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   · 3

Вербальная постановка задачи   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·  8

Процедура обработки событий   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   · 9

Окончательный текст программы  ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·11

Приложение 1. Содержимое диска  ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   14

Список литературы  ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·  15


ВВЕДЕНИЕ



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

Delphi позволяет разрабатывать как традиционные приложения Windows и приложения работы с базами данных, так и Web-приложения на основе современных технологий.

Delphi это система, в основе которой лежит технология визуального проектирования и событийного программирования. Суть этой технологии в том, что среда разработки берет на себя большую часть рутиной работы, оставляя программисту конструирование диалоговых окон и разработку функций обработки событий.

Delphi позволяет создавать программы, которые работают с графикой. Графические программы могут выводить на поверхность формы фотографии, картинки, сформированные из графических примитивов во время работы программы, или иллюстрации, созданные в графическом редакторе.

Доступ к графической поверхности объекта (свойству Graphics формы или компонента PaintBox) имеет процедура обработки события Paint. Поэтому графику должна выводить именно она.

В своей работе я продемонстрирую некоторые графические возможности среды Delphi, а также подробно распишу каждый этап создания своей программы. Также в работе продемонстрирую взаимодействие различных процедур, и применение физики для отображения заданного движения графических объектов.


ОПИСАНИЕ ПРОГРАММЫ

ЗАДАЧА: Разработать графическую модель движения спутника вокруг планеты.

Данную задачу будем реализовывать на Delphi.  Для этого запускаем редактор Delphi и выберем опцию: «Файл» -> «Новый» -> «Приложение». В результате у нас появится вот такое окно рис.1.



Рис.1. Среда Delphi.

Центральную часть окна Delphi занимает окно дизайнера формы Form
1
. Слева от окна дизайнера формы находится окно Object

Inspector
. Вкладка Properties используется для редактирования свойств объектов. Свойство (property) – это одна из характеристик объекта (формы, командной кнопки, поля редактирования и т.д.). Свойства, в частности определяют вид, положение и поведение объекта.


Вкладка Events определяет события, на которые может реагировать объект. Например, щелчок кнопкой мыши – это событие Click, двойной щелчок кнопкой мыши – событие DbClick.


Свойство

Значение

Комментарий

Caption

Модель движения спутника

Строка текста, идентифицирующая компонент для пользователя

ClientHeight

500

Высота формы

ClientWidth

630

Ширина формы

BorderStyle

bsSingle

Тонкая граница не позволяет  во время работы программы изменить размер окна путем захвата и перемещения границы

BorderIcons

biMaximize

False

В заголовке окна нет кнопки Развернуть

Color

СlWhite

Описание цвета объекта – белый

Установим следующие свойства стартовой формы Form
1
:
На форму Form
1
добавим следующие компоненты из списка Tool

Palette
.

1. Компонент TPaintBox который обеспечивает вывод изображения непосредственно на его поверхности. Установим следующие свойства компонента:

Свойство

Значение

Комментарий

Width

500

Ширина формы

Height

500

Высота формы

Left

0

Отступ левой границы компонента от границы формы



2. Компонент BitBtn
1
,BitBtn
2
,BitBtn
3
– это управляющая кнопка, на поверхности которой можно располагать изображение. Изображение на кнопке задается ее свойством Glyph. Оно представляет собой битовую матрицу, содержащую до 4 изображений размером 16 на 16. Расположение изображения и надписи на кнопке определяется свойствами Margin, Layout и Spacing.

Еще одно свойство   - это свойство Kind – определяет тип кнопки, по умолчанию равно bkCustom или предустановленный.

Установим следующие свойства компонента

Свойство

Значение

Комментарий

BitBtn1

Caption

Пауза

Надпись на кнопке

Top

40

Координата верхнего края компонента

Kind

bkAbort

Тип кнопки - пауза

TabOrder

1

Очередь в последовательности табуляции

BitBtn2

Caption

Пуск

Надпись на кнопке

Top

8

Координата верхнего края компонента

Kind

bkIgnore

Тип кнопки - пуск

TabOrder

0

При первом появлении формы на экране в фокусе будет этот компонент

BitBtn
3


Caption

Выход

Надпись на кнопке

Top

72

Координата верхнего края компонента

Kind

bkClose

Тип кнопки – выход

TabOrder

2

Очередь в последовательности табуляции

Cancel

True

Выход из программы с помощью клавиши Esc

Общие для
BitBtn
1,
BitBtn
2,
BitBtn
3.


Height

25

Высота кнопки

Width

75

Ширина кнопки

Left

528

Координата левого края компонента


3. Компонент Timer – позволяет задавать в приложении интервалы аремении. Таймер имеет два свойства, позволяющие им управлять: Interval = 100 – интервал времени в миллисекундах и Enabled = false – доступность. Таймер точно выдерживает заданные интервалы Interval, если они достаточно велики. Если же задавать интервалы длительностью десятки или единицы миллисекунд, то реальные интервалы времени оказываются заметно больше вследствие различных накладных расходов, связанных с вызовом функции.

                        
Надо еще сказать, что компонент Timer видимый на форме в виде значка при работе программы видим не будет.

В результате выполненных действий нужная нам форма будет выглядеть как показано на рис.2.



Рис.2.

Вербальная постановка задачи

Вид формы подсказывает, как работает разрабатываемая программа. В компоненте  TPaintBox я изображу солнце, планету Земля и луну. При нажатии на кнопку Пуск Земля начнет вращаться вокруг солнца, а луна, как естественный спутник Земли начнет вращаться вокруг Земли. При нажатии на кнопку Пауза все вращение должно остановиться. При нажатии на кнопку Выход программа должна закончить свою работу.
ПРОЦЕДУРА ОБРАБОТКИ СОБЫТИЙ

Как я уже сказал, чтоб программа начала работать, надо щелкнуть на кнопке Пуск. Щелчок на изображении командной кнопки – это пример того, что называется событием (Event). Щелчок кнопкой мыши это событие Click. Реакцией на событие должно быть какое-либо действие. В Delphi реакция на событие реализуется как процедура обработки события. Таким образом, для того чтобы программа выполняла некоторую. Работу в ответ на действия пользователя, программист должен написать процедуру обработки соответствующего события. Значительную часть обработки событий берет на себя компонент. Программист должен разрабатывать процедуру обработки события лишь в том случае, если реакция на событие отличается от стандартной или не определена.

Порядок действий при создании процедуры обработки события:

1.           Щелчком на изображении компонента в форме – кнопке Выход – выбираем объект, для которого нужно создать процедуру обработки события.

2.           После этого в окне Object

Inspector
  выбираем вкладку Events.

3.           На вкладке Events выбираем нужное событие – Click.

4.           Выполняем двойной щелчок левой кнопкой мыши в поле, которое находится справа от названия события.

В результате выполненных действий в текст программы будет добавлена процедура обработки события и станет доступным окно редактора кода, в котором можно набирать инструкции процедуры обработки события. Имя процедуры обработки события сгенерирует Delphi, оно будет составное: первая часть имени идентифицирует объект (компонент), вторая – событие. В нашем случае – BitBtn
3
Click
.


В окне редактора кода прописываем следующую инструкцию обработки события:

procedure

TForm
1.
BitBtn
3
Click
(
Sender
:
TObject
); //процедура выхода из программы


begin
;
close
;


Аналогично поступаем с кнопкой Пуск и прописываем следующую инструкцию обработки события.

procedure
TForm1.BitBtn2Click(Sender: TObject);


begin

  Timer1.Enabled:=true; //
Запускается

процедура
Timer1



  BitBtn
2.
Visible
:=
true
; // Кнопка Пуск остается видимой для пользователя


end
;

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

procedure
TForm1.BitBtn1Click(Sender: TObject);


begin

  Timer1.Enabled:=false; //
Выполнение

процедуры
Timer1
останавлиается



  BitBtn
2.
Visible
:=
true
;  // Кнопка Пуск остается видимой для пользователя


end
;

Для компонента Timer на вкладке Events имеется только одно событие – OnTimer. При двойном щелчке левой кнопкой мыши в поле, которое находится справа от названия события Delphi сгенерирует имя процедуры обработки события – Timer
1
Timer
, и в открывшемся окне редактирования кода мы пропишем следующую инструкцию.

procedure
TForm1.Timer1Timer(Sender: TObject);


begin


 
t
:=
t
+1; {эта строчка обеспечивает приращение координат движения при каждой итерации процедуры}


 
p
1.
Canvas
.
Brush
.
Color
:=
clblack
; //цвет космоса черный


 
p
1.
Canvas
.
Rectangle
(0,0,
p
1.
Width
,
p
1.
Height
); //Прорисовка космоса


 
p
1.
Canvas
.
Brush
.
Color
:=
clyellow
; //Цвет солнца - желтый


  xSun:=p1.Width div 2;   //Координата солнца по
x



 
ySun
:=
p
1.
Height

div

2
; //Координата солнца по
y



 
p1.Canvas.Ellipse(xSun-SunSize,ySun-SunSize,xSun+SunSize,ySun+SunSize);


  p1.Canvas.Brush.Color:=clSkyBlue; //
Цвет

Земли
-
голубой



  wEarth
:=(2*
pi
)/
Tearth
*
t
; //Угловая скорость Земли


 
xEarth:=trunc(EarthRadius*cos(wEarth));//
Изменение

координ
.
Х при движении по орб.



 
yEarth:=trunc(EEarth*EarthRadius*sin(wEarth));//
Измен
.
коор
. Y
при движении по орб.



 
p1.Canvas.Ellipse(xSun+xEarth-EarthSize,ySun-yEarth- EarthSize,


                                                              xSun+xEarth+EarthSize, ySun-yEarth+EarthSize);

  p1.Canvas.Brush.Color:=cl3Dlight; //
цвет

спутника

Земли

луны



  wLuna
:=(2*
pi
)/
TLuna
*
t
; //Угловая скорость луны


 
xLuna
:=
trunc
(
LunaRadius
*
cos
(
wLuna
)); //Измен. коорд.
X
при движении по орбите



 
yLuna
:=
trunc
(
LunaRadius
*
sin
(
wLuna
));//Измен. коорд.
Y
при движении по орбите



 
p
1.
Canvas
.
Ellipse
(
xSun
+
xEarth
-
xLuna
-
LunaSize
,
ySun
-
yEarth
-
yLuna
-
LunaSize
,


                                             
xSun+xEarth-xLuna+LunaSize,ySun-yEarth-yLuna+LunaSize);



end
;




Для компонента  TPaintBox
на вкладке Events выбираем событие OnPaint. Событие OnPaint наступает, когда приходит сообщение о необходимости перерисовать испорченное изображении. Перерисовку изображения вызывает процедура Timer, поскольку координаты графических объектов изиеняются при каждой итерации процедуры Timer.

При двойном щелчке левой кнопкой мыши в поле, которое находится справа от названия события Delphi сгенерирует имя процедуры обработки события – P
1
Paint
, и в открывшемся окне редактирования кода мы пропишем следующую инструкцию.

procedure
TForm1.P1Paint(Sender: TObject);


begin

 t:=0; {
обнуление

переменной
}



  p1.Canvas.Brush.Color:=clblack; //
цвет

космоса

черный



  p1.Canvas.Rectangle(0,0,p1.Width,p1.Height); //
Прорисовка

космоса



  p1.Canvas.Brush.Color:=clyellow; //
Цвет

солнца
-
желтый



 
xSun:=p1.Width div 2;   //Координата солнца по
x



 
ySun
:=
p
1.
Height

div

2
; //Координата солнца по
y



 
p1.Canvas.Ellipse(xSun-SunSize,ySun-SunSize,xSun+SunSize,ySun+SunSize);


  p1.Canvas.Brush.Color:=clSkyBlue; //
Цвет

Земли
-
голубой



  wEarth
:=(2*
pi
)/
Tearth
*
t
; //Угловая скорость Земли


 
xEarth:=trunc(EarthRadius*cos(wEarth));//
Изменение

координ
.
Х при движении по орб.



 
yEarth:=trunc(EEarth*EarthRadius*sin(wEarth));//
Измен
.
коор
. Y
при движении по орб.



 
p1.Canvas.Ellipse(xSun+xEarth-EarthSize,ySun-yEarth- EarthSize,


                                                              xSun+xEarth+EarthSize, ySun-yEarth+EarthSize);

  p1.Canvas.Brush.Color:=cl3Dlight; //
цвет

спутника

Земли

луны



  wLuna
:=(2*
pi
)/
TLuna
*
t
; //Угловая скорость луны


 
xLuna
:=
trunc
(
LunaRadius
*
cos
(
wLuna
)); //Измен. коорд.
X
при движении по орбите



 
yLuna
:=
trunc
(
LunaRadius
*
sin
(
wLuna
));//Измен. коорд.
Y
при движении по орбите



 
p
1.
Canvas
.
Ellipse
(
xSun
+
xEarth
-
xLuna
-
LunaSize
,
ySun
-
yEarth
-
yLuna
-
LunaSize
,


                                             
xSun+xEarth-xLuna+LunaSize,ySun-yEarth-yLuna+LunaSize);


end
;


Как видно,  инструкция процедурыTForm
1.
P
1
Paint
  полностью совпадает с инструкцией процедурыTForm
1.
Timer
1
Timer
  за исключением строчки  t
:=0;”.
При взаимодействии этих процедур происходит следующее. Процедура Timer вызывает изменение координат графических объектов за счет изменения значения переменной t на единицу, процедура Paint
их прорисовывает и задает их новые координаты как нулевые строчкой t:=0. Через интервал времени  Interval = 100 миллисекунд процедура Timer вновь вызывает изменение координат графических объектов, а процедура Paint их заново прорисовывает и т.д. Таким образом создается видимость движения Земли вокруг Солнца и луны вокруг Земли.



Надо еще сказать, что все переменные и константы, используемые в программе надо объявить в соответствующих разделах программы var и const
.
Далее программа компилируется и если в программе нет синтаксических ошибок, компилятор создает исполняемый файл программы. Имя исполняемого файла такое же, как и у файла проекта, а расширение – exe.

Окончательный текст программы

unit

Unit
1;

interface
uses

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

  Dialogs, ExtCtrls, StdCtrls, Buttons, System.ComponentModel;
type

  TForm1 = class(TForm)
var

  Form1: TForm1;
implementation
{$R *.dfm}
const
  SunSize=35;            //
радиус

Солнца



            EarthSize=11;        //
радиус

Земли



           
EarthRadius=82;   //расстояние от Солнца до Земли


            TEarth=365.26;     //период обращения Земли

            LunaSize=4;         //радиус Луны

            LunaRadius=18;  //расстояние от Земли до луны

           TLuna=27.32;      //период обращения Луны
v
ar
  t:integer;


       xLuna,yLuna, xSun,ySun,xEarth,yEarth:integer;    //координаты

      
wa
,
wEarth
,
wLuna
:
double
;                                         //угловая скорость


      
EEarth
:
double
;                                                           //эксцентриситет

procedure
TForm1.BitBtn3Click(Sender: TObject);


procedure
TForm1.BitBtn2Click(Sender: TObject);


procedure
TForm1.BitBtn1Click(Sender: TObject);


procedure
TForm1.Timer1Timer(Sender: TObject);


procedure
TForm1.P1Paint(Sender: TObject);


procedure
TForm1.FormActivate(Sender: TObject);


end
.





ПРИЛОЖЕНИЕ 1.

      Содержимое диска.

Project.exe – исполняемый файл.

Project1.dpr – главный модуль

Project1.bdsproj – файл проекта.

Unit1.pas – файл модуля



     Курсовой проект.doc – документ MS Word
СПИСОК ЛИТЕРАТУРЫ
1.     Архангельский А.Я. Программирование в Delphi. Учебник по классическим версиям – М.: ООО  «Бином-Пресс», 2006 г. – 400 с.

2.     Культин Н.Б. Основы программирования в Delphi. Самоучитель.–СПб.: БХВ-Петербург, 2004 – 400 с.

3.     Архангельский А.Я. Delphi 7. Справочное пособие –М.: ООО «Бином-Пресс», 2004 г. – 1024 с.


1. Реферат Государственные финансы 4
2. Реферат на тему Heart Of Darkness Essay Research Paper It
3. Реферат на тему The Relationship Between Gods And Mortals Essay
4. Реферат на тему Images Of Freedom And Confinement In
5. Курсовая Российско-китайская программа сотрудничества территорий Дальнего Востока и Забайкалья с Северо-В
6. Курсовая на тему Бенчмаркінг як засіб покращення інноваційного процесу в організації
7. Реферат Стратегическое планирование 13
8. Реферат Особенности экономического курса в 50-60-х годах ХХ века
9. Реферат Экология и здоровье человека 3
10. Курсовая Валютный рынок, способы регулирования валютных курсов