Разделы презентаций


5. Растровая графика

Содержание

Алгоритмы растровой графикиРастеризация графических примитивов.Устранение лестничного эффекта.Заполнение областей.Растеризация сплошных многоугольников.Удаление невидимых линий

Слайды и текст этой презентации

Слайд 15. Растровая графика

5. Растровая графика

Слайд 2Алгоритмы растровой графики
Растеризация графических примитивов.
Устранение лестничного эффекта.
Заполнение областей.
Растеризация сплошных многоугольников.
Удаление

невидимых линий

Алгоритмы растровой графикиРастеризация графических примитивов.Устранение лестничного эффекта.Заполнение областей.Растеризация сплошных многоугольников.Удаление невидимых линий

Слайд 3Растеризация графических примитивов

Растеризация графических примитивов

Слайд 4Растеризация отрезков
Простейший алгоритм
Пошаговый алгоритм
Алгоритм Брезенхема
Алгоритм ЦДА


Растеризация отрезковПростейший алгоритмПошаговый алгоритмАлгоритм БрезенхемаАлгоритм ЦДА

Слайд 5Уравнение отрезка прямой
(x1, y1), (x2, y2) – целочисленные координаты начальной

и конечной точек отрезка.
y = ax + b – уравнение

отрезка прямой.
y1 = ax1 + b
y2 = ax2 + b
a = (y2 – y1) / (x2 – x1)
b = (y1x2 – x1y2) / (x2 – x1)
Уравнение отрезка прямой(x1, y1), (x2, y2) – целочисленные координаты начальной и конечной точек отрезка.y = ax +

Слайд 6Простейший алгоритм
x = x1;
y = y1;
while (x ≤ x2)
{
PutPixel(x, y);
x

= x + 1;
y = Round(ax + b);
}

Простейший алгоритмx = x1;y = y1;while (x ≤ x2){	PutPixel(x, y);	x = x + 1;	y = Round(ax +

Слайд 7Пошаговый алгоритм
x = x1;
y = y1;
while (x ≤ x2)
{
PutPixel(x, y);
x

= x + 1;
y = Round(y + a);
}

Пошаговый алгоритмx = x1;y = y1;while (x ≤ x2){	PutPixel(x, y);	x = x + 1;	y = Round(y +

Слайд 8Алгоритм Брезенхема
1-й октант: угловой коэффициент лежит в диапазоне от 0

до 1

Алгоритм Брезенхема1-й октант: угловой коэффициент лежит в диапазоне от 0 до 1

Слайд 9Алгоритм Брезенхема

(1-й октант)
x = x1; y = y1;

Δx = x2 – x1; Δy = y2 – y1; e = Δy / Δx – 0.5;
for (i = 1; i ≤ Δx; i = i + 1)
{
PutPixel(x, y);
while (e ≥ 0)
{
y = y + 1;
e = e – 1;
}
x = x + 1;
e = e + Δy / Δx;
}
Алгоритм Брезенхема            (1-й октант)x = x1;

Слайд 10Целочисленный алгоритм Брезенхема (1-й октант)
x = x1; y = y1;

Δx = x2 – x1; Δy = y2 – y1;

e = 2 * Δy – Δx;
for (i = 1; i ≤ Δx; i = i + 1)
{
PutPixel(x, y);
while (e ≥ 0)
{
y = y + 1;
e = e – 2 * Δx;
}
x = x + 1;
e = e + 2 * Δy;
}
Целочисленный алгоритм Брезенхема (1-й октант)x = x1; y = y1; Δx = x2 – x1; Δy =

Слайд 11Общий алгоритм Брезенхема
x = x1; y = y1; Δx =

|x2 – x1|; Δy = |y2 – y1|;
s1 = Sign(x2

– x1); s2 = Sign(y2 – y1);
d = 0;
if (Δy > Δx) { Swap(Δx, Δy); d = 1; }
e = 2 * Δy – Δx;
for (i = 1; i ≤ Δx; i = i + 1)
{ PutPixel(x, y);
while (e ≥ 0)
{ if (d = 1) x = x + s1; else y = y + s2;
e = e – 2 * Δx;
}
if (d = 1) y = y + s2; else x = x + s1;
e = e + 2 * Δy;
}
Общий алгоритм Брезенхемаx = x1; y = y1; Δx = |x2 – x1|; Δy = |y2 –

Слайд 12Алгоритм ЦДА
L = Max(|x2 – x1|, |y2 – y1|);
Δx =

(x2 – x1) / L; Δy = (y2 – y1)

/ L;
x = x1 + 0.5 * Sign(Δx);
y = y1 + 0.5 * Sign(Δy);
for (i = 1; i ≤ L; i = i + 1)
{
PutPixel(Round(x), Round(y));
x = x + Δx;
y = y + Δy;
}
Алгоритм ЦДАL = Max(|x2 – x1|, |y2 – y1|);Δx = (x2 – x1) / L; Δy =

Слайд 13Методы растеризации графических примитивов
Метод оценочной функции
Метод цифровых дифференциальных анализаторов

Методы растеризации графических примитивовМетод оценочной функцииМетод цифровых дифференциальных анализаторов

Слайд 14Метод оценочной функции

Метод оценочной функции

Слайд 15Метод цифровых дифференциальных анализаторов

Метод цифровых дифференциальных анализаторов

Слайд 16Лестничный эффект

Лестничный эффект

Слайд 17Устранение лестничного эффекта
Выравнивание – каждый пиксел высвечивается с яркостью, пропорциональной

площади пиксела, которую занимает отрезок.
Изменение разрешения – подготовка изображения высокого

разрешения (кратного реальному) с последующим масштабированием и использованием сглаживающего фильтра.
Учет наклона отрезка – изменение яркости в зависимости от наклона отрезка (максимум у вертикального отрезка – 1, минимум у горизонтального отрезка – 0.707).
Устранение лестничного эффектаВыравнивание – каждый пиксел высвечивается с яркостью, пропорциональной площади пиксела, которую занимает отрезок.Изменение разрешения –

Слайд 18Алгоритм Ву
При рисовании линий обычным образом с каждым шагом по

основной оси высвечиваются два пиксела по неосновной оси.
Их интенсивность подбирается

пропорционально расстоянию от центра пиксела до идеальной линии – чем дальше пиксел, тем меньше его интенсивность. Значения интенсивности двух пикселов дают в сумме 100 %, т.е. интенсивность одного пиксела, точно попавшего на идеальную линию.
Горизонтальные, вертикальные и диагональные линии не сглаживаются.
Т.о. учитываются особенности человеческой зрительной системы.
Алгоритм ВуПри рисовании линий обычным образом с каждым шагом по основной оси высвечиваются два пиксела по неосновной

Слайд 19Алгоритм Ву

Алгоритм Ву

Слайд 20Алгоритм Ву

Алгоритм Ву

Слайд 21Целочисленный алгоритм Ву
// Координаты концов отрезка - (0, 0) и

(a, b), a > 0, b > 0, b

a
// plot(x,y,I) закрашивает пиксель (x, y) с интенсивностью I
// I0 - максимальная интенсивность (2 ^ m - 1)
x0 = 0; x1 = a; y0 = 0; y1 = b;
plot(x0,y0,I0); plot(x1,y1,I0);
D = 0;
d = floor( (b / a) * 2 ^ n + 0.5 ); // меньшее целое
while ( x0 < x1 )
{ D = D + d;
if( произошло переполнение D ) { y0++; y1--; }
I1 = D / 2 ^ (n - m); // битовый сдвиг вправо на n - m
I2 = двоичное_дополнение( I1 );
plot(x0, y0, I1); plot(x0, y0+1, I2);
plot(x1, y1, I1); plot(x1, y1-1, I2);
x0++; x1--;
}
Целочисленный алгоритм Ву// Координаты концов отрезка - (0, 0) и (a, b), a > 0, b >

Слайд 22Заполнение областей
Построчное сканирование
Заполнение с затравкой

Заполнение областейПострочное сканированиеЗаполнение с затравкой

Слайд 23Построчное сканирование
Имеется область, граница которой разложена в растр.
Внутри задана точка.
Заданы

значения: a – граничных пикселов, b – внутренних пикселов до

заполнения, c – внутренних пикселов после заполнения.
Объект заключается в прямоугольную оболочку.
Проводится построчное сканирование прямоугольной оболочки: в строке находится пиксел со значением a, затем пиксел, следующий за ним и имеющий значение b, которое меняется на c, и так до тех пор, пока не будет встречен еще один пиксел со значением a, после чего осуществляется переход на следующую строку.
Построчное сканированиеИмеется область, граница которой разложена в растр.Внутри задана точка.Заданы значения: a – граничных пикселов, b –

Слайд 24Заполнение с затравкой
Указать затравочный пиксел внутри контура.
Поместить затравочный пиксел в

стек.
Пока стек не пуст:
извлечь пиксел из стека;
присвоить пикселу требуемое значение;
для

каждого из соседних четырехсвязных пикселов проверить:
Является ли он граничным;
Не присвоено ли ему требуемое значение;
проигнорировать пиксел в любом из этих двух случаев, иначе поместить пиксел в стек.
Заполнение с затравкойУказать затравочный пиксел внутри контура.Поместить затравочный пиксел в стек.Пока стек не пуст:извлечь пиксел из стека;присвоить

Слайд 25Растеризация сплошных многоугольников
Растеризация всех негоризонтальных ребер многоугольника.
Все точки помещаются в

списки.
Для каждой координаты ymin, y2, ..., ymax сопоставляется список x-координат

всех пикселов, закрашенных при растеризации ребер, которые находятся на горизонтали y.
Растеризация сплошных многоугольниковРастеризация всех негоризонтальных ребер многоугольника.Все точки помещаются в списки.Для каждой координаты ymin, y2, ..., ymax

Слайд 26Растеризация сплошных многоугольников

Растеризация сплошных многоугольников

Слайд 27Удаление невидимых линий
Алгоритмы, работающие в объектном пространстве.
Алгоритмы, работающие в пространстве

изображения.

Удаление невидимых линийАлгоритмы, работающие в объектном пространстве.Алгоритмы, работающие в пространстве изображения.

Слайд 28Алгоритм Z-буфера
Заполнить буфер кадра фоновым значением интенсивности или цвета.
Заполнить z-буфер

минимальным значением z.
Преобразовать каждый многоугольник в растровую форму в произвольном

порядке.
Для каждого пиксела с координатами (x, y) в многоугольнике вычислить его глубину z(x, y).
Сравнить глубину z(х, у) со значением a, хранящимся в z-буфере в этой же позиции.
Если z(х,у) > a, то записать атрибут этого многоугольника (интенсивность, цвет и т. п.) в буфер кадра и заменить значение a в z-буфере на z(х,у). В противном случае никаких действий не производить.
Алгоритм Z-буфераЗаполнить буфер кадра фоновым значением интенсивности или цвета.Заполнить z-буфер минимальным значением z.Преобразовать каждый многоугольник в растровую

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика