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


 

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

74819. Становление психологического прозаического романа в творчестве М.Ю. Лермонтова. «Герой нашего времени» – квинтэссенция основных философско-этических идей писателя 15.46 KB
  Лермонтов вводит в роман в качестве центральной фигуры именно герояпсихолога. Ему во многом помогает раскрыть характер главного героя такая форма психологического анализа как монологисповедь в виде дневника в виде дневника написаны Тамань Княжна Мери и Фаталист В своих записках Печорин описывает психологическую игру которую он ведет с окружающими. Выделяется и меткость точность языка который противопоставляется готовым пышным фразам Грушницкого драпирующегося в манерноромантического героя. Раскрывает особенности...
74820. Н.В. Гоголь и развитие «высокой» комедии. Тематика «Ревизора» в свете социальных, этических и религиозных взглядов писателя 15.3 KB
  Гоголь и развитие высокой комедии. В начале декабря 1835 года Гоголь окончил Ревизора. Гоголь создает необычную для пьесы ситуацию: вместо одной личной или домашней интриги изображается жизнь целого города что значительно расширяет социальный масштаб пьесы и позволяет осуществить поставленную цель: ldquo;Собрать в одну кучу все дурное в Россииrdquo;. Гоголь создает новаторскую ситуацию когда раздираемый внутренними противоречиями город становится способным к цельной жизни благодаря общему кризису общему чувству страха низших перед...
74821. Мертвые души – центральное произведение Н.В. Гоголя. Образ автора и общая концепция поэмы о возрождении души 15.84 KB
  Образ автора и общая концепция поэмы о возрождении души Литературная критика XIX века начиная с Белинского стала называть Гоголя зачинателем нового периода развития русской реалистической литературы. Если для Пушкина была характерна гармония и объективность художественного мира то в творчестве Гоголя на смену этому приходит критический пафос который определяет стремление художника отразить реальные противоречия действительности проникнуть в самые темные стороны жизни и человеческой души. Поэма Мертвые души является одним из самых...
74823. Основные этапы развития драматургии А.Н. Островского. Новаторство А.Н. Островского. Его традиции в современном театре 16.03 KB
  Обладая незаурядным общественным темпераментом Островский всю жизнь деятельно боролся за создание реалистического театра нового типа за подлинно художественный национальный репертуар за новую этику актёра. Как драматург и режиссёр Островский содействовал формированию новой школы реалистической игры выдвижению плеяды актёров особенно в московском Малом театре : семья Садовских С. Только через шесть лет после того как Островский начал печататься 14 января 1853 года поднялся занавес на первом представлении комедии Не в свои сани не садись...
74824. Философская и политическая лирика Ф.И. Тютчева 16.07 KB
  С одной стороны поэт утверждает что человек ничтожен в сравнении с природой что все в его жизни предсказуемо и трагично. Как видим поэт мыслит глобально. Великий поэт Ф. И второе: поэт особенное внимание уделял проблемам международной роли России ее месту в мировой историю будущему русского народа и славянофильства в целом.
74825. Древнерусская литература (XI – XVII вв.) – начальный этап развития русской литературы. Проблемы периодизации 16.92 KB
  Древнерусская литература XI – XVII вв. Проблемы периодизации Литература Древней Руси охватывает период с XI по XVII век. Древнерусская литература была литературой формирующейся великорусской народности постепенно складывающейся в нацию. Литература Древней Руси это средневековая литература которая отличается от литературы нового времени своими специфическими особенностями.
74826. Своеобразие древнерусской литературы 15.96 KB
  Своеобразие древнерусской литературы. Своеобразие древнерусской литературы: Произведения древнерусской литературы бытовали и распространялись в рукописях. Другая особенность литературы средневековья – отсутствие авторского право. Таким образом исследователь древнерусской литературы должен изучить все имеющиеся списки того или иного произведения установить время и место их написания путем сопоставления различных редакций вариантов списков а также определить в какой редакции список более всего соответствует первоначальному авторскому тексту.
74827. Оригинальные памятники древнерусской литературы – летописи, торжественные проповеди, поучения, жития, паломническая литература как свидетельство высокого уровня государственной и культурной жизни Руси XI – XII веков 17.17 KB
  Большинство дошедших до нас книг относящихся к этому периоду времени религиозного содержания.К этому же периоду времени относятся такие выдающиеся памятники церковной литературы как Слово о законе и благодати митрополита Илариона проповеди Кирилла Туровского. К этому периоду времени относится древнейший сохранившийся до наших дней летописный свод Повесть временных лет . Этот документ позволяет нам судить не только о политической ситуации того времени но и о быте нравах древних русичей.