42254

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

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

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

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

Русский

2013-10-28

638.5 KB

6 чел.

Лабораторная работа 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 градусов против часовой стрелки


 

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

63891. О необходимости формирования профессиональных ориентаций школьников 42 KB
  Выбор профессии профессионального учебного заведения для многих является не просто задачей. Согласно полученным данным большинство опрошенных школьников 52 не имеют четких представлений о своей будущей профессии: 30 не определились 22 затруднились ответить.
63892. Социальные смыслы деятельности 31.24 KB
  Во все времена любая деятельность человека социокультурная в том числе имела широкое влияние на процессы происходящие в обществе. Но что же такое деятельность Под деятельностью понимают специфический способ активного взаимодействия с окружающим миром процесс...
63893. Неформальный социальный контроль 37.5 KB
  В научной литературе существует такой тип социального контроля как неформальный. Данный тип социального контроля является основанным на одобрении или же в зависимости от поступка осуждении друзей знакомых родственников учителей коллег и других социальных групп.
63894. Арт-менеджмент и управление социокультурным образовательным пространством 83 KB
  В современной политической и социально-экономической ситуации формируются новые культурологические подходы к системе менеджмента качества социокультурного процесса и обеспечения конкурентоспособности специалистов художественного профиля...
63895. АНАЛИЗ ФИНАНСОВОГО СОСТОЯНИЯ И ФИНАНСОВОЙ УСТОЙЧИВОСТИ ООО «ИНАВТОСЕРВИС» 453.5 KB
  Финансовое состояние предприятия на момент исследования; тенденции и закономерности в развитии предприятия за исследуемый период; «узкие» места, отрицательно влияющие на финансовое состояние предприятия; резервы, которые предприятие может использовать для улучшения финансового состояния.
63896. Анализ феномена психопатологии на современном этапе развития общества 26.96 KB
  В некоторых вопросах современная медицина в лице психологии и психотерапии с их технологическими нововведениями признают свое бессилие говоря о том что душа человека как и ее свойства нормальные и патологические до конца не изучены. Утверждают что человеческое сознание формируется в результате исторического развития...
63897. Институт детства – что дальше? 36.5 KB
  Если сравнить прошлое и настоящее, детей современности и детей прошлого, детей XX века и детей начала XXI века, то мы заметим многие интересные черты. Предположим, что дети прошлого воспитывались в достаточно традиционной культуре...
63898. Этнические стереотипы и механизмы их становления 22.74 KB
  Мы пришли к выводу что в культуре отдельного народа и этноса можно отнести к стереотипам следующее: вербальное поведение; невербальное поведение мимика жесты телодвижения; национальный характер и представления о нем другими нациями...
63899. Трансформация института семьи 19.67 KB
  Семья базовая ячейка общества один из важнейших социальных институтов государства. В процессе радикальных социальных изменений вызванных модернизацией и глобализацией традиционные семьи находятся на распутье выбирая и балансируя между сохранением традиций...