42254

Базовые алгоритмы 2D-геометрии

Лабораторная работа

Информатика, кибернетика и программирование

Геометрически каждая точка на плоскости задается значениями координат радиусвектора относительно выбранной системы координат. В этом случае объект поворачивается относительно оси вращения перпендикулярной плоскости xoy. Наиболее распространен сдвиг в направлении оси x и сдвиг в направлении оси y. Сдвиг выполняется путем умножения однородных координат точки на матрицу сдвига: сдвиг в направлении оси y сдвиг в направлении оси x.

Русский

2013-10-28

638.5 KB

7 чел.

Лабораторная работа 3.

Тема: Базовые алгоритмы 2D-геометрии

Цель: Изучить способы выполнения базовых преобразований на плоскости.

Написать программу, выполняющие следующие функции:

- чтение из файла координат вершин многоугольника, заданных в мировой системе координат;

- переход от мировых координат к экранным координатам, используя формулы (см. лекции);

- отрисовка фигур и осей координат в окне, так чтобы было место для отображения фигур после выполнения геометрических преобразований;

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

Требования:

- реализация всех преобразований через перемножение матриц с использованием однородных координат;

- равномерное масштабирование реализовать через правый нижний элемент s матрицы преобразований;

- для построения эллипса и окружности использовать параметрическое описание (см. Роджерс, Математические основы машинной графики, ftp://ftp.vt.tpu.ru/study/Tokareva/public/Comp_Graph/Math_basic.djvu);

- после выполнения преобразования должна производиться перерисовка содержимого окна (старое изображение заменяется на новое);

- необходимо реализовать возврат фигуры в исходное положение по нажатию на кнопку в окне (или при выборе пункта меню);

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

Схема оценивания:

Общее количество баллов – 10.

Геометрически каждая точка на плоскости задается значениями координат радиус-вектора относительно выбранной системы координат. Для выполнения преобразований на плоскости используются однородные координаты. Будем рассматривать координаты точки как элементы матрицы [x y]. Однородные координаты неоднородного вектора [x y] представляют собой тройку чисел [xyh], где x=x’/h, y=y’/h, h – некоторое число. Случай h=0 является особым. Всегда существует один набор однородных координат [x y 1]. Все остальные однородные координаты представляются в виде [hx hy h].

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

Трансляция точки выполняется путем добавления смещения [m n] к ее координатам [x y], в результате чего получается точка с новыми координатами. Для объекта, описываемого множеством точек, все точки объекта перемещаются на одинаковые расстояния вдоль параллельных прямых. В матричной форме трансляция выполняется путем умножения однородных координат точки на матрицу трансляции:

.

Двумерный поворот – перемещение объекта по круговой траектории на плоскости xoy. В этом случае объект поворачивается относительно оси вращения, перпендикулярной плоскости xoy. Для двумерного поворота задается точка, вокруг которой будет производится поворот и угол вращения. Поворот точки на угол φ вокруг начала координат выполняется путем умножения однородных координат точки на матрицу поворота R:

.

В компьютерной графике поворот на положительный угол φ выполняется против часовой стрелки.

Масштабирование выполняется путем умножения однородных координат точки на матрицу масштабирования S:

, где sx, sy – любые положительные числа, sx – коэффициент масштабирования по x, sy – коэффициент масштабирования по y. При sx>1 и sy>1 масштаб увеличивается, при sx<1 и sy<1 –  уменьшается.

Если sx=sy масштабирование называется равномерным. В случае равномерного масштабирования по x и по y с коэффициентом s может быть использована матрица масштабирования S:

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

Объекты, преобразованные масштабированием, изменяют размер и переносятся в другое место.

Сдвиг (скос) – преобразование, которое так изменяет форму объекта, что преобразованная форма выглядит так, будто объект составлен из внутренних слоев, скользящих один по другому. Наиболее распространен сдвиг в направлении оси x и сдвиг в направлении оси y.

Сдвиг выполняется путем умножения однородных координат точки на матрицу сдвига:

 - сдвиг  в направлении оси y,

- сдвиг  в направлении оси x.

Отражение – преобразование, генерирующее зеркальное отображение объекта.

- отражение относительно оси x (y=0),

 - отражение относительно оси y (x=0),

- отражение относительно начала координат,

- отражение относительно оси y=x,

 - отражение относительно оси y=x.

Задания - на следующей странице или по адресу:

http://ad.cctpu.edu.ru/Personal/Anton/ZHtml/CompGraph/lab3/lab3.htm


Задание №1

  •  Отразить относительно оси Y= -X;
  •  увеличить на 50%;
  •  повернуть на 45 градусов по часовой стрелке.

Задание №2

  •  Отразить относительно оси Y= -X;
  •  увеличить по оси X на 50%, по оси Y уменьшить в 2 раза;
  •  повернуть на 30 градусов по часовой стрелке.

Задание №3

  •  перенести все многоугольники так, чтобы левый верхний угол прямоугольника совпал с началом координат;
  •  повернуть вокруг точки B против часовой стрелки на 30 градусов;
  •  увеличить по оси X на 30%.

Задание №4

  •  перенести все фигуры так, чтобы центр окружности совпал с началом координат;
  •  провести полное изменение масштаба, увеличив все на 200%;
  •  повернуть на 90 градусов по часовой стрелке.

Задание №5

  •  повернуть многоугольники относительно точки C на угол 180 градусов;
  •  увеличить по оси Y на 50%, по оси X уменьшить в 2 раза;

Задание №6

  •  перенести все фигуры так, чтобы центр эллипса совпал с началом координат;
  •  повернуть на 90 градусов по часовой стрелке.
  •  повернуть на 30 градусов по часовой стрелке.

Задание №7

  •  Отразить относительно оси X;
  •  увеличить по оси X на 150%, по оси Y - в 2 раза;
  •  повернуть на 30 градусов против часовой стрелки.

Задание №8

  •  Отразить относительно оси X;
  •  уменьшить масштаб в 2 раза;
  •  повернуть на 90 градусов по часовой стрелке;
  •  повернуть на 45 градусов против часовой стрелки.

Задание №9

  •  Повернуть на 57 градусов по часовой стрелке вокруг точки D.

Задание №10

  •  Отразить относительно прямой Y=X;
  •  увеличить масштаб в 2 раза;
  •  повернуть на 30 градусов вокруг точки E.

Задание №11

  •  повернуть прямоугольник относительно начала координат на 30 градусов;
  •  повернуть остальные фигуры относительно точки F на 50 градусов;
  •  уменьшить по оси X на 30%, по оси Y - в 5 раз.

Задание №12

  •  повернуть относительно начала координат на 30 градусов по часовой стрелке.

Задание №13

  •  пренести все фигуры в первую четверть;
  •  изменить масштаб, увеличив в 2 раза;
  •  повернуть относительно начала координат на 45 градусов по часовой стрелке.

Задание №14

  •  Повернуть на 90 градусов относительно точки H по часовой стрелке;
  •  увеличить по оси X на 50%, по оси Y уменьшить на 50%;
  •  перенести все фигуры так, чтобы центр окружности совпал с началом координат.

Задание №15

  •  Отразить относительно оси X;
  •  увеличить масштаб в 2 раза;
  •  повернуть на 60 градусов по часовой стрелке.

Задание №16

  •  перенести фигуры так, чтобы центр окружности совпал с началом координат;
  •  увеличить по оси X на 200%, по оси Y уменьшить на 50%;
  •  повернуть на 90 градусов против часовой стрелки.

Задание №17

  •  повернуть относительно точки I на 45 градусов;
  •  увеличить по оси X на 150%, по оси Y - на 50%;
  •  повернуть относительно начала координат на 90 градусов по часовой стрелке.

Задание №18

  •  повернуть относительно начала координат на 70 градусов по часовой стрелке.

Задание №19

  •  увеличить по оси Y на 150%, по оси X уменьшить в 2 раза;
  •  повернуть относительно точки J на 45 градусов против часовой стрелки;
  •  повернуть относительно начала координат на 30 градусов против часовой стрелки.

Задание №20

  •  Отразить относительно оси Y;
  •  повернуть относительно начала координат на 45 градусов против часовой стрелки;
  •  масштаб уменьшить в 2 раза.

Задание №21

  •  Отразить относительно оси X;
  •  повернуть на относительно точки K на 90 градусов против часовой стрелки.
  •  масштаб увеличить в 2 раза;

Задание №22

  •  Повернуть относительно начала координат на 180 градусов по часовой стрелке.

Задание №23

  •  Повернуть относительно точки L на 30 градусов по часовой стрелке.

Задание №24

  •  Отразить относительно оси Y;
  •  уменьшить по оси X на 50%, по оси Y увеличить в 2 раза;
  •  повернуть относительно точки M на 60 градусов по часовой стрелке.

Задание №25

  •  Отразить относительно прямой Y= -X;
  •  уменьшить масштаб на 50%;
  •  повернуть относительно точки N на 90 градусов против часовой стрелки


 

А также другие работы, которые могут Вас заинтересовать

3880. Деловые циклы и инфляция 156.5 KB
  Вступление Как известно, современное общество стремится к постоянному улучшению уровня и условий жизни, которые может обеспечить только устойчивый экономический рост. Однако наблюдения показывают, что долговременный экономический рост. Однако наблюд...
3881. Денежная и кредитная система центрального банка Российской Федерации 263 KB
  Введение Готовность банковской системы и денежно-кредитного механизма страны содействовать переходу экономики от кризиса через депрессию к оживлению и подъему - один из ключевых вопросов российской экономики в ближайшей перспективе. В свою очередь...
3882. Цели, инструменты, типы денежно-кредитной политики 200 KB
  Цели, инструменты, типы денежно-кредитной политики Под денежно-кредитной политикой понимают совокупность мероприятий, предпринимаемых правительством в денежно-кредитной сфере с целью регулирования экономики. Она является частью общей макроэкономичес...
3883. Технологический процесс изготовления вал-шестерни 713.5 KB
  Введение Завершающей стадией обучения в ТТК является выполнение дипломного проекта. Дипломное проектирование является большой самостоятельной работой будущего специалиста, направленный на решение конкретных задач в области совершенствования технолог...
3884. Денежно-кредитная система в рыночной экономике 137 KB
  Введение В современных моделях рыночной экономики банковская система государства играет важнейшую роль в функционировании экономического механизма. Банковская система представляет собой по сути oсистему кровообращения экономики, обеспеч...
3885. Деньги: возникновение, сущность, функции. Виды денег 150 KB
  Деньги: возникновение, сущность, функции. Виды денег Введение. Деньги - это, пожалуй, одно из наиболее великих изобретений человеческой мысли. В живой природе аналогий не найдётся. Вся структура современной экономики предопределена существованием де...
3886. Алкоголь и курение и их отрицательное действие на организм 80 KB
  Введение Алкоголизм – один из видов наркомании. Наркотики и злоупотребление ими. Наркотик – это любое химическое соединение, которое воздействует на функционирование организма. Злоупотребление наркотиками – это их употребление любым н...
3887. Дослідження співвідношень сигнал/завада в каналах інформаційно – телекомунікаційних систем 1.23 MB
  Дослідження співвідношень сигнал/завада в каналах інформаційно – телекомунікаційних систем Мета лабораторного заняття: формування практичних навичок з дослідження співвідношень сигнал/завада в каналах інформаційно – телекомунікаційних...
3888. Сучасна філософська антропологія. Основні школи і проблеми 301.34 KB
  Сучасна філософська антропологія. Основні школи і проблеми Вступ Сьогодні,на початку третього тисячоліття,підвищений інтерес до гуманізації усієї суспільної свідомості невипадковий.Багатопланова гуманізація суспільних ві...