Компьютерная геометрия и графика. Лекция 7. План занятия: Задача удаления невидимых линий. Алгоритм плавающего горизонта.

Презентация:



Advertisements
Похожие презентации
Компьютерная геометрия и графика. Лекция 8. План занятия: Задача удаления невидимых линий c с использованием Z-буфера Алгоритм Художника.
Advertisements

Компьютерная геометрия и графика. Лекция 9. План занятия: Алгоритм построчного сканирования. Основная идея метода. Алгоритм построчного сканирования с.
Компьютерная геометрия и графика. Лекция 10. План занятия: Алгоритм Робертса.
Ребята, с построением графиков функций мы с вами уже встречались и не раз. Мы с вами строили множества линейных функций и парабол. В общем виде любую.
Компьютерная геометрия и графика. Лекция 3. План занятия: Задача о пересечении двух выпуклых многоугольников. Задача о пересечении двух произвольных многоугольников.
ЧЕРЧЕНИЕ ЧЕРЧЕНИЕ РАЗРЕЗЫ Зайцева Л.Е.. видами. В прошлом учебном году вы вычерчивали детали при помощи изображений, которые называли видами. Видом (как.
Y x 0 Оси координат на форме располагаются как показано на рисунке Операторы графики.
Алгоритмы трёхмерной графики Алгоритмы трёхмерного отсечения, алгоритм плавающего горизонта.
Муниципальная общеобразовательная средняя школа 5 Урок – презентация по черчению 2004 г. Педагог: Коваленко Татьяна Владимировна.
Исполнитель алгоритмов Художник. С помощью вспомогательного алгоритма Дуб (х, у, m) можно нарисовать одно дерево. Алгоритм «Дубрава» обращается к нему.
ФУНКЦИИ НЕСКОЛЬКИХ ПЕРЕМЕННЫХ. Определение функции нескольких переменных Геометрическое изображение функции двух переменных Частное и полное приращение.
Векторная компьютерная графика © Разработка : Габриков А. А. МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ МУНИЦИПАЛЬНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ.
Геометрия, 10 класс Тема: Построение сечений многогранников методом «следа». Воробьев Леонид Альбертович, г.Минск.
Площадь криволинейной трапеции
Признаки параллельности прямых лежат в основе способов построения параллельных прямых с помощью различных инструментов; используемых на практике.
Непрерывность функций Лекция 3. Непрерывность Функция f(x), определенная на множестве Х, называется непрерывной в точке, если 1)она определена в этой.
Основные сведения из математики, необходимые для понимания геометрических моделей Три главных формы математического представления кривых и поверхностей.
Лекция 5 Взаимное положение поверхности и плоскости. Пересечение поверхности плоскостью. Пересечение поверхностей Казанский государственный энергетический.
Компьютерная геометрия и графика. Лекция 2. План занятия: Проверка многоугольника на выпуклость. Нахождение площади произвольного многоугольника. Принадлежность.
Рисунок. Изображение головы. Томаш Оксана Васильевна Полезные советы. МОУ «Высокиничская муниципальная основная общеобразовательная школа» Жуковский район.
Транксрипт:

Компьютерная геометрия и графика. Лекция 7

План занятия: Задача удаления невидимых линий. Алгоритм плавающего горизонта.

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

Если не удалять невидимые линии, то изображение будет запутанным и непонятным, как, например, изображение этого кубика: Если же решить задачу удаления невидимых линий, то визуально объект будет лучше восприниматься. На этих рисунках невидимые линии выделены пунктиром:

Алгоритм плавающего горизонта.

Рассмотрим задачу построения графика функции двух переменных z=f(x,y) Удаление невидимых линий - основная часть этого алгоритма. Без нее очень изображение графика трудно распознаваемо.

Что такое ПЛАВАЮЩИЙ ГОРИЗОНТ? Нижняя (верхняя) огибающая тех точек, которые в данный момент находятся на экране называется нижним (верхним) плавающим горизонтом. Пусть, например, на экране нарисованы отрезки: Тогда нижним горизонтом будет следующая огибающая (выделена красным):

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

Точка видима, если она окажется выше верхнего или ниже нижнего горизонта. Основное правило:

Рисуем первую линию графика: Считаем, что она является верхним и нижним горизонтом. Записываем соответствующие значения в массивы.

Рисуем вторую линию графика: Обе эти линии видимы, теперь появляется верхний и нижний горизонт. Появляется также область между горизонтами, та в которую уже нельзя ставить точки.

Рисуем третью линию графика: Верхний и нижний горизонты заново пересчитываются, те точки графика которые попали между верхним и нижним горизонтом считаются невидимыми и не изображаются на экране.

И так далее: Постепенно строится изображение.

Процесс лучше начинать с линии, которая расположена ближе всего к нам. Как ее найти? ?

Нарисуем сетку области определения. Нарисуем над сеткой поверхность. Берем 4 крайние точки области определения. Находим 4 точки, которые расположены над ними в пространстве и которые принадлежат поверхности. Определяем самую ближнюю к нам (максимум по Х и по Y). Линии проходящие через эту точку и есть начальные, то есть те, с которых надо начинать построение.

Недостатки метода:

Чтобы линии, изображаемые на экране, были сплошными, необходимо разбивать их на фрагменты, причем фрагментов должно быть не менее 640 штук. Для повышения качества изображения советуется разбивать линию на 1000 кусков. Так как храним информацию о каждом куске в массиве - это занимает много места в памяти. ! !

Не очень качественное изображение - еще один недостаток этого метода. Причина в том, что горизонты - разрывные линии. Если разрывы возникают в области, где поверхность само пересекается, то этот эффект так просто не устранить. Например:

Сложный случай: рисовать точку А или нет? А Ведь она лежит как бы внутри нижнего горизонта, на границе области определения. Один из способов борьбы с этой сложностью - расширить границы области определения. На рисунке это показано зелеными линиями. Рисовать на экран эти участки не будем, но большую часть проблем на границах устраним. А

Если в строящемся объекте больше вертикальных линий, чем горизонтальных, тогда вместо верхнего и нижнего горизонта можно ввести правый и левый горизонты.

Как определять, какие горизонты рассматривать? Берем крайние точки области определения. Смотрим, каких линий через них проходит больше - вертикальных или горизонтальных (вычисляем для каждой угол наклона). Процесс инициализации горизонта делается дважды: перед рисованием горизонтальных линий и перед рисованием вертикальных линий. ?

Конец.