- •Введение Литература
- •Сокращения
- •Тема № 1. Основные понятия программирования
- •1.1. Состав программы на языкеPascal
- •1.2. Элементы программы в языкеPascal
- •1.3. Типы данных в языкеPascal
- •1.4. Операции в языкеPascal
- •1.5. Выражения в языкеPascal
- •1.6. Стандартные функции в языкеPascal
- •1.7. Операторы языка Pascal
- •Тема № 2. Программирование базовых алгоритмов
- •2.1. Программирование последовательных вычислений
- •2.2. Программирование разветвлений
- •2.3. Программирование циклов
- •Тема № 3. Программирование задач с массивами
- •3.1. Одномерные массивы
- •Фрагменты вычисления характеристик одномерного массива
- •Фрагменты операций с одномерными массивами
- •Особенности элементов одномерного массива
- •3.2. Двумерные массивы
- •Фрагменты вычисления характеристик двумерного массива
- •Фрагменты вычисления характеристик строк и столбцов двумерного массива
- •Фрагменты операций с двумерными массивами
- •Особенности элементов квадратных матриц
- •3.3. Перестановка и сортировка элементов массива
- •Тема № 4. Программирование подпрограмм и структурных типов данных
- •4.1. Подпрограммы
- •4.2. Программирование задач с функциями
- •4.3. Программирование задач с процедурами
- •4.4. Программирование задач с файлами
- •4.5. Программирование задач с символами и строками
- •4.6. Программирование задач с записями
- •4.7. Программирование задач со множествами
- •Тема № 5. Моделирование
- •5.1. Моделирование как метод познания
- •5.2. Классификация моделей
- •5.3. Задачи и методы моделирования
- •5.4. Виды численных методов
- •Тема № 6. Введение в компьютерную графику
- •6.1. Предмет компьютерной графики
- •6.2. Виды компьютерной графики
- •6.3. Направления компьютерной графики
- •Тема № 7. Модели компьютерной графики
- •7.1. Геометрические модели
- •7.2. Цветовые и оптические модели
- •Тема № 8. Аффинные преобразования
- •8.1. Общий вид двумерных преобразований
- •8.2. Элементарные двумерные преобразования
- •8.3. Однородные координаты на плоскости
- •8.4. Композиции двумерных преобразований
- •8.5. Преобразования систем координат
- •8.6. Двумерные преобразования на экране монитора
- •8.7. Матричное представление трёхмерных преобразований
8.6. Двумерные преобразования на экране монитора
В математике обычно рассматривают следующие системы координат на плоскости:
Декартова система координат(ДСК), включающая абсциссу (координатаx) и ординату (координатаy).
Полярная система координат(ПСК), включающая расстояние от полюса (координата) и угол наклона луча от точки до полюса (координата).
В компьютерной геометрии и графике обычно рассматривают ещё несколько систем координат:
Мировая система координат(МСК) или глобальная система координат (ГСК), которая обычно совпадает с ДСК, а также включает координатуx, увеличивающуюся вправо, и координатуy, увеличивающуюся вверх. Считается, что объекты в МСК находятся в обобщённом глобальном пространстве.
Экранная система координат(ЭСК), к которой относятся координаты на экране монитора. Обычно в ЭСК начало координат находится в левом верхнем углу экрана, осьxнаправлена вправо, а осьy– вниз.
Объектная система координат(ОСК) или локальная система координат объекта (ЛСК), которая связана с локальным положением какого-то геометрического объекта на экране. Обычно в ЛСК начало координат находится в центре объекта или в его угловой точке, а осиxиyнаправлены также, как в МСК или ЭСК.
Однородная система координат, в которой к координатамXиYдобавляется фиктивная координатаW, не имеющая физического смысла, но позволяющая более удобно математически вычислять геометрические координаты объектов на компьютере.
Преобразование координат точек из МСК в ЭСК записывается с помощью отражения системы координат относительно прямой (осиx):
что описывается матрицей:
,
где xм,yм– координаты точки в МСК; xэ,yэ– координаты точки в ЭСК.
Обратное преобразование имеет вид:
и описывается такой же матрицей.
Преобразование координат точек из ЭСК в ЛСК объекта (у которой начало координат в точке и масштабные коэффициенты –kxпо осиxиkyпо осиy) производится с помощью масштабирования вkxраз по осиxи вkyраз по осиy, а затем с помощью переноса наx0по осиxи наy0по осиy, и описывается матрицей
,
что записывается в аналитическом виде так:
Обратное преобразование описывается матрицей:
,
или в аналитическом виде:
Если задать начало координат на экране в точке , а масштаб расстоянийkxпо осиxиkyпо осиy, то чтобы вычислить координаты точки на экране монитора, надо перевести из МСК в ЭСК, а затем из ЭСК в ЛСК:
,
что соответствует перемножению матриц:
или в аналитическом виде:
Обратное преобразование из ЛСК в МСК описывается матрицей:
,
или в аналитическом виде:
8.7. Матричное представление трёхмерных преобразований
Аналогично тому, как двумерные преобразования в однородных координатах описываются матрицами размером 33, трёхмерные преобразования могут быть представлены в виде матриц размером 44. И тогда трёхмерная точказаписывается в однородных координатах как. Если же, то точка представляется в виде.
Линейное геометрическое преобразование точек в пространстве:
называется аффинным, если в результате полученные точки не лежат в одной плоскости. Для этого нужно, чтобы уравнения
были линейно независимы, а определитель матрицы Mбыл бы не равен нулю:
.
Основные элементарные геометрические преобразования в пространстве представляются так.
Перенос.
Трёхмерный перенос является простым расширением двумерного и имеет вид:
или,
где – матрица переноса в однородных координатах в пространстве.
Масштабирование.
Масштабирование расширяется от двумерного до трёхмерного следующим образом:
или,
где – матрица масштабирования в однородных координатах в пространстве.
Поворот.
Двумерный поворот, рассмотренный ранее, является в то же время трёхмерным поворотом вокруг оси z:
или,
где – матрица поворота вокруг осиzв однородных координатах в пространстве.
Трёхмерный поворот вокруг оси xимеет вид:
или,
где – матрица поворота вокруг осиxв однородных координатах в пространстве.
Трёхмерный поворот вокруг оси yимеет вид:
или,
где – матрица поворота вокруг осиyв однородных координатах в пространстве.