50429 (Движение по эллиптическому маршруту с регулируемой скоростью и графической визуализацией процесса), страница 2

2016-07-30СтудИзба

Описание файла

Документ из архива "Движение по эллиптическому маршруту с регулируемой скоростью и графической визуализацией процесса", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "50429"

Текст 2 страницы из документа "50429"

y = 100 * Sin(fi) + 140

Формулы совпадают с формулами, по которым происходила прорисовка эллипса, это обеспечивает то, что объект движется по траектории, совпадающей с эллипсом. После того как координаты рассчитаны, они присваиваются свойствам Left и Top объекта Shape1, определяющих положение объекта на объекте Picture1. Также координаты выводятся в соответствующие метки на форме LabelX.Caption = (x - 20) \ 4: LabelY.Caption = (240 - y) \ 4.

Переменная fi изменяется по закону fi = fi + (Slider1.Value / 2) * 3.1415 / 180, т.е. угол разбиения, а следовательно и скорость объекта Shape1, зависит от свойства Value, объекта Slider1, иначе говоря от положения бегунка.

Число полных кругов, пройденных объектом Shape1, рассчитывается по формуле k = Int(fi / 6.28), и после расчёта выводится в соответствующую метку LabelK.Caption = k.

Пройденный телом путь, рассчитывается по формуле S = Round(223.112 / 6.28 * fi).

Число 223.112 – это длина эллипса в метрах, рассчитана с помощью определённого интеграла:

4* .

После расчёта значение выводится в соответствующую метку LabelS.Caption = S.

Свойство Interval объекта Timer1, равно 1, это значит, что все описанные выше действия повторяются 1 раз в миллисекунду. Величина интервала подобрана опытным путём.

В программном коде процедуры Timer2_Timer() осуществляется подсчёт времени, по формуле LabelTime.Caption = LabelTime.Caption + 0.1,а свойство Interval объекта Timer2 равно 100, что обеспечивает отсчёт времени в секундах, с точностью до десятых.

Скорость объекта Shape1, рассчитывается по формуле v = (Sqr((x2 - x) ^ 2 + (y2 - y) ^ 2)) / (Timer2.Interval) * 1000. Расстояние между двумя соседними точками определяется как корень квадратный из суммы квадратов разностей координат этих точек, и делится на время, т.е интервал таймера Timer1.

3. Разработка блок-схемы

Представим графический алгоритм, в виде блок-схемы, для процедуры Private Sub Timer1_Timer(), отвечающей за передвижение тела по эллиптической траектории.

4. Текст программы на VB

Dim fi As Double 'угол'

Dim x As Integer 'текущая координата Х

Dim y As Integer 'текущая координата Y

Dim x2 As Integer

Dim y2 As Integer

Dim v As Single 'скорость тела

Private Sub Command1_Click()

If Slider1.Value = 0 Then Timer1.Enabled = False Else Timer1.Enabled = True 'при нажатии на СТАРТ если скорость установлена 0,тело не движется

End Sub

Private Sub Command2_Click()

Timer1.Enabled = False 'кнопка СТОП.Движение тела и отсчёт времени прекращается.

Timer2.Enabled = False

End Sub

Private Sub Form_Load()

Picture1.DrawWidth = 8 'устанавливается толщина линии 8 пикселей

For i = 0 To 360

Picture1.PSet (180 * Cos(i) + 200, 100 * Sin(i) + 140) 'при помощи метода PSet рисуется эллипс

Next

Shape1.Left = -20 'координаты объекта при загрузке формы,таковы,что объект отсутствует на форме

Shape1.Top = -20

fi = 0

Picture1.PSet (380, 240) 'точки на осях x и y,единичный отрезок

Picture1.PSet (20, 40)

End Sub

Private Sub Timer1_Timer()

If Not Timer2.Enabled Then Timer2.Enabled = True

x = 45 * 4 * Cos(fi) + 48 * 4 'траектория движения тела, координаиа Х

y = 25 * 4 * Sin(fi) + 33 * 4 'Y

Shape1.Left = x

Shape1.Top = y

LabelV.Caption = Round(v, 3) 'вывод значения скорости в метку,точность до тысячных

LabelX.Caption = x 'вывод координат в метки

LabelY.Caption = y

LabelK.Caption = Int(fi / 6.28) 'количество кругов

LabelS.Caption = Round(223.112 / 6.28 * fi) 'пройденный путь

fi = fi + (Slider1.Value / 2) * 3.1415 / 180 'закон изменения угла разбиения

End Sub

Private Sub Timer2_Timer()

LabelTime.Caption = LabelTime.Caption + 0.1 'время

v = (Sqr((x2 - x) ^ 2 + (y2 - y) ^ 2)) / (Timer2.Interval) * 1000 'скорость

x2 = x

y2 = y

End Sub

5. Контрольный пример

6. Инструкция пользователя

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

Запустите файл ”Project1.exe”. На экране появится форма, большую её часть занимает рамка с изображением прямоугольной системы координат и изображённого в ней эллипса. При нажатии на кнопку «Старт», появляется объект в виде небольшого круга, движущегося по траектории, обозначенной эллипсом. В окошках, расположенных на форме слева указываются параметры движения тела: координаты, количество полных пройденных кругов, общий пройденный путь и скорость. Скорость тела регулируется с помощью бегунка, расположенного внизу формы. Процесс движения можно остановить, нажав на кнопку «Стоп», при повторном нажатии на «Старт» тело продолжит движение при этом характеристики движения не обнулятся, и их отсчёт будет продолжен с момента остановки. Для выхода из программы нажмите на кнопку с крестиком в верхнем правом углу окна.

Список использованной литературы

  1. А.Г. Паутова. Visual Basic Творческое проектирование. В 3 ч. – М.: Классикс Стиль, 2003. – 128 с.

  2. Марченко А.Л. «Введение в программирование»: Учебное пособие. - Московский университет, 2005. – 258 с.

  3. Либерти Д. «Программирование на VB»: Пер. с англ. – 2-ое изд.- Сивол-Плюс, 2004. – 688 с.

  4. Мультимедийное пособие «Программирование для студентов», Alex Soft.

Размещено на Allbest.ru

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4121
Авторов
на СтудИзбе
667
Средний доход
с одного платного файла
Обучение Подробнее