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


 

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

23604. Понятие репрезентации в науках о языке и мышлении человека 16 KB
  Операционная система MSDOS основные группы команд. Функции ОС: управление памятью управление вводомвыводом управление файловой системой управление взаимодействием процессов диспетчеризация процессов защита и учет использования ресурсов обработка командного языка MSDOS Microsoft: PCDOS IBM вариант MSDOS DRDOS Digital Research совместима с MSDOS; OS2 для машин IBM PS2 series UNIX Macintosh OS MAINFRAMES . Модульная структура MSDOS: 1. IBMDOS.
23605. СЕМАНТИЧЕСКИЕ СЕТИ 46.5 KB
  Выразительная сила больше не является решающим аргументом в пользу выбора сетей или линейных форм записи поскольку идеи записанные с помощью одной формы записи могут быть легко переведены в другую. Надписи над дугами означают что собака является агентов гложения кость является объектом гложения а жадность это манера гложения. В этом предложении сообщено что когда предложение €œWhile a dog was eating a bone€ являлось истинным второе предложение €œA cat passed unnoticed€ также является истинным. На рисунке 3 показано что собака...
23606. Теория фреймов 22.5 KB
  Впервые была представлена Минским как попытка построить фреймовую сеть или парадигму с целью достижения большего эффекта понимания . Минский разработал такую схему в которой информация содержится в специальных ячейках называемых фреймами объединенными в сеть называемую системой фреймов . Новый фрейм активизируется с наступлением новой ситуации .
23607. Различные наименования области прикладной лингвистики и их смысловые различия. Универсальные прикладные проблемы 15.5 KB
  Прикладная лингвистика это комплексная научная дисциплина изучающая язык в различных ситуациях его применения и разрабатывающая методы совершенствования языковых систем и языковых процессов. Термин прикладная лингвистика появился в конце 20 гг. За рубежом под ПЛ часто понимают совершенствование методов преподавания языка дидактическая лингвистика. Лингвистика входит в ядро складывающегося в настоящее время комплекса когнитивных наук объединяемых по их интересу к проблемам организации представления обработки и использования знаний.
23608. Понятие уровня в теоретической и прикладной лингвистике 13.5 KB
  Членение на уровни в рамках теоретической лингвистики: фонемный морфемный лексический уровень слова синтаксический уровень предложения Уровнеобразующими свойствами обладают только те единицы языка которые подчиняются правилам уровневой сочетаемости т. Уровень языка следует отличать от уровня анализа языка фаз или этапов рассмотрения языка. В лингвистической практике онтологический уровень языка и процедурный уровень анализа операционный нередко смешиваются хотя между ними нет прямого соответствия. Городецкий К проблеме...
23609. Мысль и язык 1.03 MB
  Потебня излагая взгляды Гумбольдта и его школы на отношение языкознания к психологии и логике выставил ряд своих собственных выводов как по этим общим так и по многим привходящим сюда частным вопросам выводов ставящих задачи русского и вообще славянского языкознания на широкую основу истории мысли. Это особенно может относиться к его Запискам по русской грамматике где рассыпая поражающие меткостью и новизной выводы при анализе отдельных явлений он мало заботится об общей связи между частными своими обобщениями полагая повидимому...
23610. ЯЗЫКОЗНАНИЕ ФОРМЫ СУЩЕСТВОВАНИЯ, ФУНКЦИИ, ИСТОРИЯ ЯЗЫКА 1.82 MB
  В книге специально отражен вопрос о коммуникативной функции языка и его знаковой природе освещены основы психофизиологического механизма речи а также вопросы связанные с особенностями литературного языка и явлениями нормы. Прежде всего авторы поставили своей 5 основной задачей изложить основные сущностные характеристики языка в их целостной и общей совокупности. Понять сущность языка как особого явления это значит уяснить его главную функцию и те многочисленные следствия которые она вызывает понять особенности его внутренней...
23611. ВВЕДЕНИЕ В ЯЗЫКОВЕДЕНИЕ 3.98 MB
  Ушаков обессмертивший свое имя редактированием Толкового словаря русского языка в обиходе именуемого ушаковским был для А. дорожил и гордился своим научным родством но верность учителям никогда не становилась для него основанием чураться нового и в своих лекциях из которых вырос учебник он стремился сочетать классику российского и мирового язковедения с сегодняшним видением основных проблем языка в том числе и со своими собственными представлениями. Он стал легендарным лектором благодаря умению пленять слушателей отточенностью...
23612. Введение в языкознание 1.56 MB
  Общение в широком смысле слова существует не только в человеческом обществе но и в животном мире а в наши дни мы должны также учитывать общение человека с машиной. вопросительные предложения вопросительные слова апеллятивную отлат. метаязыковую ' функцию истолкования языковых фактов например объяснение значения слова непонятного для собеседника эстетическую функцию эстетическоговоздействия. Яркая экспрессия может быть и в побудительном предложении и в вопросе и в формуле приветствия и при констатации факта и при объяснении...