Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_ЛР_1_2012_Траектория.doc
Скачиваний:
8
Добавлен:
12.11.2019
Размер:
746.5 Кб
Скачать

Объектно-ориентированное программирование Лабораторная работа №1

Цель. Получение навыков разработки приложений на языке программирования С++ в системе программирования RAD (Rapid Application Development – быстрая разработка приложений) Studio for Microsoft Windows.

Тема. Программирование векторной графики.

Описание приложения. Приложение состоит из двух областей: рабочей области и области элементов управления (рис. 1).

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

Общий вид приложения

Рис. 1

В области элементов управления расположен «движок». Пользователь имеет возможности:

  1. с помощью «движка» «Размер траектории» изменить размер траектории;

  2. путем захвата и перемещения мышью края формы изменить размер формы;

  3. завершить работу приложения.

Задание. Разработать приложение на языке программирования С++ в системе программирования RAD Studio for Microsoft Windows.

Требования:

1. Геометрический центр траектории всегда должен совпадать с центром рабочей области формы.

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

3. При уменьшении линейных размеров траектории масштаб не должен становиться отрицательным (траектория не должна «выворачиваться наизнанку»).

4. При изменении размеров формы масштаб прорисовки траектории должен пропорционально измениться.

5. Для моделирования траектории в программе предусмотреть отдельный класс, размещенный в отдельном программном модуле.

6. Необходимо использовать правила именования идентификаторов.

7. В разделе public описания класса «Траектория» должны находиться только описания свойств (property) и методов.

Необходимо точно выполнять задание, при сомнениях - консультироваться с преподавателем.

Дополнительные задания для любознательных студентов.

  1. Предусмотреть возможность поворота траектории по часовой стрелке и (или) против часовой стрелки. Управление поворотом должен осуществлять пользователь с помощью дополнительного «движка».

  2. Предусмотреть возможность произвольного изменения положения центра траектории внутри рабочей области приложения. Траектория не должна выходить за пределы рабочей области формы. Управление перемещением центра траектории можно реализовать с помощью «движков» (по оси «X» и оси «Y») или с помощью устройства «мышь».

  3. Полагаясь на собственную фантазию предусмотреть любые другие приемы манипуляции с приложением.

Варианты заданий приведены в таблице 1.

Варианты траекторий Таблица 1

Номер варианта траектории

Вид траектории

Уравнение траектории

Примечание

1

x = x0 + r * cos(),

y = y0 - r * sin(),

где

x – координата точки по оси x,

y – координата точки по оси y,

 [ ]– угол,

r – радиус окружности,

x0 – координата центра круга,

y0 – координата центра круга.

Траектория является полукругом

2

x = x0 + r * cos(),

y = y0 - r * sin(),

где

x – координата точки по оси x,

y – координата точки по оси y,

 [ ]– угол,

r – радиус окружности,

x0 – координата центра круга,

y0 – координата центра круга.

Траектория является полукругом

3

x = x0 + r * cos(),

y = y0 - r * sin(),

где

x – координата точки по оси x,

y – координата точки по оси y,

 [ ]– угол,

r – радиус окружности,

x0 – координата центра круга,

y0 – координата центра круга.

Траектория является полукругом

4

x = x0 + r * cos(),

y = y0 - r * sin(),

где

x – координата точки по оси x,

y – координата точки по оси y,

 [ ]– угол,

r – радиус окружности,

x0 – координата центра круга,

y0 – координата центра круга.

Траектория является полукругом

5

x = x0 + a * cos(),

y = y0 - b * sin(),

где

x – координата точки по оси x,

y – координата точки по оси y,

 [ ]– угол,

а – размер горизонтальной полуоси,

b – размер вертикальной полуоси,

а < b,

x0 – координата центра эллипса,

y0 – координата центра эллипса.

Траектория является полуэллипсом

6

x = x0 + a * cos(),

y = y0 - b * sin(),

где

x – координата точки по оси x,

y – координата точки по оси y,

 [ ]– угол,

а – размер горизонтальной полуоси,

b – размер вертикальной полуоси,

а > b,

x0 – координата центра эллипса,

y0 – координата центра эллипса.

Траектория является полуэллипсом

7

x = x0 + a * cos(),

y = y0 - b * sin(),

где

x – координата точки по оси x,

y – координата точки по оси y,

 [-2] – угол,

а – размер горизонтальной полуоси,

b – размер вертикальной полуоси,

а < b,

x0 – координата центра эллипса,

y0 – координата центра эллипса.

Траектория является полуэллипсом

8

x = x0 + a * cos(),

y = y0 - b * sin(),

где

x – координата точки по оси x,

y – координата точки по оси y,

 [ ]– угол,

а – размер горизонтальной полуоси,

b – размер вертикальной полуоси,

а > b,

x0 – координата центра эллипса,

y0 – координата центра эллипса.

Траектория является полуэллипсом

9

x = x0 + r * cos(),

y = y0 - r * sin(),

где

 [0 - 2] – угол,

 = k*,

k = 2,

r – радиус фигуры Лиссажу,

x0 – координата центра фигуры,

y0 – координата центра фигуры.

Траектория является фигурой Лиссажу

10

x = x0 + r * cos(),

y = y0 - r * sin(),

где

 [0 - 2] – угол,

 = k*,

k = 3,

r – радиус фигуры Лиссажу,

x0 – координата центра фигуры,

y0 – координата центра фигуры.

Траектория является фигурой Лиссажу

11

x = x0 - ,

y = y0 - b * sin(),

где

a – период,

b – амплитуда,

 [0 - 2] – угол,

x0 – координата правого конца фигуры,

y0 – координата горизонтальной оси.

Траектория является синусоидой

12

x = x0 - a * sin(),

y = y0 + ,

где

a – амплитуда,

b – период,

  [0 - 2] – угол,

x0 – координата вертикальной оси,

y0 – координата верхнего конца фигуры.

Траектория является синусоидой

13

x = x0 - ,

y = y0 + b * sin(),

где

a – период,

b – амплитуда,

  [ - ] – угол,

x0 – координата правого конца фигуры,

y0 – координата горизонтальной оси.

Траектория является косинусоидой

14

x = x0 + a * cos(),

y = y0 + ,

где

a – амплитуда,

b – период,

  [ - ] – угол,

x0 – координата вертикальной оси,

y0 – координата верхнего конца фигуры.

Траектория является косинусоидой

15

x = x0 + r * (k-1)(cos()+ ),

y = y0 + r * (k-1)(sin()- ),

где

 [0 - 2] – угол,

k= =3,

R - радиус неподвижной окружности,

r – радиус катящейся окружности,

x0 – координата центра фигуры,

y0 – координата центра фигуры.

Траектория является гипоциклоидой

16

x = x0 + r * (k-1)(cos()+ ),

y = y0 + r * (k-1)(sin()- ),

где

 [0 - 2] – угол,

k= = 4,

R - радиус неподвижной окружности,

r – радиус катящейся окружности,

x0 – координата центра фигуры,

y0 – координата центра фигуры.

Траектория является гипоциклоидой

17

x = x0 + r * (k-1)(cos()+ ),

y = y0 + r * (k-1)(sin()- ),

где

 [0 - 2] – угол,

k= =5,

R - радиус неподвижной окружности,

r – радиус катящейся окружности,

x0 – координата центра фигуры,

y0 – координата центра фигуры.

Траектория является гипоциклоидой

18

x = x0 + r * (k-1)(cos()+ ),

y = y0 + r * (k-1)(sin()- ),

где

 [0 - 2] – угол,

k= =6,

R - радиус неподвижной окружности,

r – радиус катящейся окружности,

x0 – координата центра фигуры,

y0 – координата центра фигуры.

Траектория является гипоциклоидой

Примечание. В приведенных уравнениях все углы измеряются в радианах, а все линейные размеры – в пикселах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]