
- •Аннотация
- •Введение
- •1. Первый раздел
- •Занятие 1
- •Занятие 2
- •Занятие 3
- •Занятие 4
- •Занятие 5
- •Занятие 6
- •1.2 Формирование траектории для движения простого геометрического объекта
- •Выводы:
- •Второй раздел
- •Индивидуальное Задание 1
- •2.1. Первый подраздел второго раздела Формулировка задания:
- •Математическую постановка:
- •Описание используемых элементов для интерфейса и их настройка (свойства):
- •Кнопки управления
- •Ползунки trackBar
- •Метки Lables
- •Ввод координат
- •Выпадающие списки
- •Меню выбора цветов MenuStrip
- •FillColorToolStripMenuItem — Цвет заливки - Выбор цвета заливки шестиугольника borderColorToolStripMenuItem — Цвет контура - Выбор цвета границы шестиугольника
- •Системные компоненты
- •Описание используемых графических примитивов:
- •Кривая траектории яйца Хюгельшеффера
- •Движущийся объект - шестиугольник
- •Примеры работы с учетом изменения параметров:
- •Выводы:
- •3. Третий раздел индивидуальное Задание 2
- •3.1. Первый подраздел третьего раздела
- •Формулировка задания:
- •Математическая постановка:
- •Описание используемых элементов для интерфейса и их настройка:
- •Общие настройки формы
- •Области отрисовки PictureBox
- •Элемент управления уровнем фрактала — NumericUpDown
- •Метки - lLabels
- •5. Цветовая палитра (внутри программы)
- •Описание используемых графических примитивов:
- •1. Окружности
- •Текст программы:
- •Примеры работы программы:
- •Заключение
Второй раздел
Индивидуальное Задание 1
2.1. Первый подраздел второго раздела Формулировка задания:
Реализовать приложение, которое обеспечивает движение заданного объекта по заданной траектории.
Объект (точка касания с линией траектории – любая вершина фигуры или произвольная точка фигуры). Обеспечить задание геометрических параметров фигуры указанной формы и движение геометрического объекта по траектории.
Объект и траектория заданы на рисунках 23, 24.
Наличие у объекта цвета: Заданные (разные) цвета контура и заливки.
|
|
Рисунок 23 - Объект |
Рисунок 24 - Траектория |
Математическую постановка:
Построение кривой:
Задача состоит в визуализации движения шестиугольника вдоль замкнутой кривой, описывающей форму яйца Хюгельшеффера. В данной работе за точку касания с линией фигуры выбран центр объекта, который постоянно перемещается по заданной траектории. Формула, описывающая контур яйца:
Координаты отрисовки задаются пользователем и вычисляются по формулам:
Где - координаты, заданные пользователем.
S - задает масштаб.
В программе формула сначала применяется для построения верхней половины с отрицательным множителем, затем для нижней половины с множителем больше нуля. Соблюдается симметрия по оси OX.
На
каждом шаге вычисляется координата y,
из чего складывается последовательность
точек
.
Поскольку
рисование происходит в пиксельных
координатах, точки преобразуются с
помощью масшатабного коэффициента
относительно центра области рисования.
Затем происходит расчет длин относительно всех точек по формуле:
Построение правильного шестиугольника:
Объект строиться вокруг текущей точки P с использованием координат в полярной системе:
Где k = 0...5 - количество углов многоугольника.
Каждая вершина имеет координату:
Где r - текущий радиус (размер), а - центр шестиугольника.
Модель движения по траектории:
Текущее положение центра шестиугольника принадлежит отрезку от 0 до вычисленной длины кривой траектории:
Она изменяется по формуле:
Где v - скорость перемещения, которая задается пользователем
Когда значение выходит за пределы границ, берется модуль по длине.
То есть:
Интерполяция позиции объекта на траектории:
Для определения точного положения по заданной длине происходит поиск сегмента i такого что:
Затем производится линейная интерполяция:
И высчитывается точка P, которая будет являться центром текущего положения шестиугольника.
Пульсация:
В случае, когда пульсация активна, реализуется функция:
Где R(t) - текущий радиус шестиугольника
Если , то обновляется флаг
Иначе фигура уменьшается
Если , то обновляется флаг
Поворот фигуры:
Текущий угол поворота вычисляется как:
После обновления следует нормализовать угол:
Итого:
Описание используемых элементов для интерфейса и их настройка (свойства):
Интерфейс программы построен с помощью элементов из пространства имен System::Windows::Forms для управления визуализацией и параметрами фигуры. Ниже в таблицах представлен полный список используемых элементов.
Область отрисовки PictureBox - отражение графики траектории и шестиугольника.
Свойство |
Значение |
Name |
pictureBox1 |
Size |
791 x 581 пикселей |
Location |
X=21, Y=65 |
BackColor |
White |
BorderStyle |
FixedSingle |