Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Reyting_22.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
75.96 Кб
Скачать
  1. 2D геометрические преобразования. Матричные уравнения

Решение геометрических задач в однородной системе координат становится проще и эффективнее, чем в неоднородных, хотя размерность задачи возрастает на единицу. Это происходит потому, что в однородных координатах выполнение всех геометрических преобразований сводится к одной операции – перемножению двух квадратных матриц 3x3 или матрицы 3x3 и вектора размерностью 3.

В однородных координатах вектор точки Р и матрицы поворота R, переноса T и масштабирования S принимают вид

  1. 2D геометрические преобразования. Общий алгоритм

1. Определение графического объекта (исходные координаты всех базовых точек).

2. Определение констант геометрических преобразований (a, Tx, Ty, Sx, Sy);

3. Вычисление матриц геометрических преобразований S, R, T (вызов функций Tran2, Rot2, Scale2).

4. Вычисление общей матрицы всех геометрических преобразований: M = R·T; Q = S·M (применяем функцию Mult2).

5. Вычисление необходимых дополнительных точек графического объекта по базовым (точки на дуге по центру и радиусу и др.).

6. Вычисление новых координат всех необходимых точек: P’ = Q·P, где P = (х, у, 1) – исходная точка; P’ = (х’, у’, 1) – полученная в результате преобразования.

7. Визуализация точек P’ и построение отрезков, соединяющих предыдущую построенную точку с последующей (текущей).

Шаги 5, 6, 7 повторяются для всех точек объекта.

  1. Преобразование области. Задача кадрирования

Кадрирование точек выполняется просто. Необходимо лишь проверить условие |ix| + |iy| = 0. Если точка находится внутри экранной области, она изображается, в противном случае – отбрасывается.

Кадрирование отрезков – более сложная задача. Здесь различается несколько случаев, определяемых тем, какая часть (или какие части) отрезка выходят за пределы графического окна.

При выполнении операции кадрирования решаются две задачи – отсечения и покрытия.

  1. Задача отсечения в компьютерной графике

Если изображение выходит за пределы экрана, то на части дисплеев увеличивается время построения за счет того, что изображение строится в "уме". В некоторых дисплеях это приводит к искажению изображения. Поэтому требуется выполнения отсечения сцены по границам окна видимости.

  1. Сплайны в компьютерной графике

Один из наиболее эффективных (по качеству получаемого результата и вычислительным затратам) методов решения этой задачи – применение сплайнов. Сплайн - это очень гладкая кривая. Математически гладкость кривых выражается в терминах непрерывности параметрических представлений x(t) и y(t) и их производных.

x(t) = a0+ a1t + a2t2 + a3t3;

y(t) = b0+ b1t + b2t2 + b3t3.

  1. Доказательство гладкости кубических сплайнов

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

Для определения свойств кривой в точках стыковки двух сегментов рассмотрим функцию x(t) и ее первую и вторую производные для значений t=0 и t=1. Функция y(t) будет обладать аналогичными свойствами.

x(0) = a0 = (xi-1 + 4xi + xi+1)/6;

x(1) = a0 +a1 +a2 + a3 = (xi + 4xi+1 + xi+2)/6.

То есть значение x(0) не равно в точности x-координате xi точки Pi: оно зависит от позиций точек Pi-1 и Pi+1. Поэтому опорные точки не лежат на кривой – это точки притяжения (управляющие точки), которые задают форму кривой, обеспечивая ее гладкость.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]