🗊Презентация Растровая графика. Генерация линий

Нажмите для полного просмотра!
Растровая графика. Генерация линий, слайд №1Растровая графика. Генерация линий, слайд №2Растровая графика. Генерация линий, слайд №3Растровая графика. Генерация линий, слайд №4Растровая графика. Генерация линий, слайд №5Растровая графика. Генерация линий, слайд №6Растровая графика. Генерация линий, слайд №7Растровая графика. Генерация линий, слайд №8Растровая графика. Генерация линий, слайд №9Растровая графика. Генерация линий, слайд №10Растровая графика. Генерация линий, слайд №11Растровая графика. Генерация линий, слайд №12Растровая графика. Генерация линий, слайд №13Растровая графика. Генерация линий, слайд №14Растровая графика. Генерация линий, слайд №15Растровая графика. Генерация линий, слайд №16Растровая графика. Генерация линий, слайд №17Растровая графика. Генерация линий, слайд №18

Содержание

Вы можете ознакомиться и скачать презентацию на тему Растровая графика. Генерация линий. Доклад-сообщение содержит 18 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





Компьютерная графика
Лекция 3
Растровая графика. 
Генерация линий.
Описание слайда:
Компьютерная графика Лекция 3 Растровая графика. Генерация линий.

Слайд 2





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

Слайд 3





Понятие связности
Важным понятием для растровой сетки является понятие связности - возможность соединения двух пикселов растровой линией, т.е. последовательным набором пикселов. 
При этом возникает вопрос, когда пикселы (x1, y1) и (x2, y2) можно считать соседними.
В этом вопросе используют два подхода.
Описание слайда:
Понятие связности Важным понятием для растровой сетки является понятие связности - возможность соединения двух пикселов растровой линией, т.е. последовательным набором пикселов. При этом возникает вопрос, когда пикселы (x1, y1) и (x2, y2) можно считать соседними. В этом вопросе используют два подхода.

Слайд 4





4-связность и 8-связность
4-связность – пикселы считаются соседними при выполнении условия 
|x1-x2|+|y1-y2|1 
т.е. возможны перемещения по вертикали и горизонтали.
Описание слайда:
4-связность и 8-связность 4-связность – пикселы считаются соседними при выполнении условия |x1-x2|+|y1-y2|1 т.е. возможны перемещения по вертикали и горизонтали.

Слайд 5





Построение отрезков
Рассмотрим следующую задачу. Требуется построить на пиксельной сетке (растровое) изображение отрезка, соединяющего точки (x1,y1) и (x2,y2).
Стандартными требованиями к алгоритмам вычерчивания линий являются следующие:
Отрезки должны выглядеть прямыми и начинаться и заканчиваться в заданных точках;
Яркость должна быть постоянна и независима от наклона;
Скорость рисования должна быть максимальна.
Описание слайда:
Построение отрезков Рассмотрим следующую задачу. Требуется построить на пиксельной сетке (растровое) изображение отрезка, соединяющего точки (x1,y1) и (x2,y2). Стандартными требованиями к алгоритмам вычерчивания линий являются следующие: Отрезки должны выглядеть прямыми и начинаться и заканчиваться в заданных точках; Яркость должна быть постоянна и независима от наклона; Скорость рисования должна быть максимальна.

Слайд 6





Цифровой Дифференциальный Анализатор (ЦДА)
Один из методов разложения отрезка в растр состоит в решении дифференциального уравнения, описывающего этот процесс. 
Для прямой линии имеем
dy / dx = const или Δy / Δx = (y2 - y1) / (x2 - x1)
Решение предсталяется в виде
yi+1 = yi + Δy
yi+1 = yi + Δx (y2 - y1) / (x2 - x1) 
В простом ЦДА либо Δx, либо Δy (большее из приращений) выбирается в качестве единицы растра.
Описание слайда:
Цифровой Дифференциальный Анализатор (ЦДА) Один из методов разложения отрезка в растр состоит в решении дифференциального уравнения, описывающего этот процесс. Для прямой линии имеем dy / dx = const или Δy / Δx = (y2 - y1) / (x2 - x1) Решение предсталяется в виде yi+1 = yi + Δy yi+1 = yi + Δx (y2 - y1) / (x2 - x1) В простом ЦДА либо Δx, либо Δy (большее из приращений) выбирается в качестве единицы растра.

Слайд 7





Реализация ЦДА
Len = max(abs(x2 - x1), abs(y2 - y1));
dx = (x2 - x1) / Len; dy = (y2 - y1) / Len;
x = x1 + 0.5 * Sign(dx);  y = y1 + 0.5 * Sign(dy);
for (int i=0; i<Len; ++i)
{   SetPixel(hdc, x, y, 0);
	x+=dx; y+=dy; 
}
Здесь Sign - функция, возвращающая -1, 0, 1 для отрицательного, нулевого и положительного аргумента соответственно.
Описание слайда:
Реализация ЦДА Len = max(abs(x2 - x1), abs(y2 - y1)); dx = (x2 - x1) / Len; dy = (y2 - y1) / Len; x = x1 + 0.5 * Sign(dx); y = y1 + 0.5 * Sign(dy); for (int i=0; i<Len; ++i) { SetPixel(hdc, x, y, 0); x+=dx; y+=dy; } Здесь Sign - функция, возвращающая -1, 0, 1 для отрицательного, нулевого и положительного аргумента соответственно.

Слайд 8





Пример работы ЦДА
x1 = 0
y1 = 0
x2 = -8
y2 = -4
Len = 8
dx = -1
dy = -0,5
x = -0,5
y = -0,5
Описание слайда:
Пример работы ЦДА x1 = 0 y1 = 0 x2 = -8 y2 = -4 Len = 8 dx = -1 dy = -0,5 x = -0,5 y = -0,5

Слайд 9





Алгоритм Брезенхема
Этот алгоритм, разработанный Джеком Е. Брезенхэмом (Jack E. Bresenham) в 1962 году в компании IBM, является одним из самых старых алгоритмов в компьютерной графике. 
Он позволяет получить приближение идеальной прямой точками растровой сетки.
Он является итерационным. Каждый раз мы переходим к тому из соседних пикселов, расстояние от которого до реального отрезка минимально.
Описание слайда:
Алгоритм Брезенхема Этот алгоритм, разработанный Джеком Е. Брезенхэмом (Jack E. Bresenham) в 1962 году в компании IBM, является одним из самых старых алгоритмов в компьютерной графике. Он позволяет получить приближение идеальной прямой точками растровой сетки. Он является итерационным. Каждый раз мы переходим к тому из соседних пикселов, расстояние от которого до реального отрезка минимально.

Слайд 10





Шаг алгоритма Брезенхема
Рассмотрим случай, когда dx>dy, тогда при построении 8-связной линии можно в качестве соседних точек брать только две справа.
Описание слайда:
Шаг алгоритма Брезенхема Рассмотрим случай, когда dx>dy, тогда при построении 8-связной линии можно в качестве соседних точек брать только две справа.

Слайд 11





Реализация алгоритма Брезенхема
void LineBrez(HDC hdc, int x1, int y1, int x2, int y2)
{ 	int  dx=x2-x1, dy=y2-y1, x=x1, y=y1;
	double D=double(dy)/dx,  e=0;
	SetPixel(hdc, x, y, 0);
	for (x++; x<x2; x++)
	{	e+=D;
		if (e>0.5) {e--; y++;}
		SetPixel(hdc, x, y, 0);
	}
}
Описание слайда:
Реализация алгоритма Брезенхема void LineBrez(HDC hdc, int x1, int y1, int x2, int y2) { int dx=x2-x1, dy=y2-y1, x=x1, y=y1; double D=double(dy)/dx, e=0; SetPixel(hdc, x, y, 0); for (x++; x<x2; x++) { e+=D; if (e>0.5) {e--; y++;} SetPixel(hdc, x, y, 0); } }

Слайд 12





Что можно улучшить
В процессе работы алгоритма наблюдаются вычисления с вещественными величинами.
Заметим, что они касаются только переменных D и e. При этом, эти переменные не связаны непосредственно с координатами x и y.
В знаменателях вещественных переменных имеем dx и 2.  Умножим на них все, что связано с D и e.
Получим целочисленный вариант реализации.
Описание слайда:
Что можно улучшить В процессе работы алгоритма наблюдаются вычисления с вещественными величинами. Заметим, что они касаются только переменных D и e. При этом, эти переменные не связаны непосредственно с координатами x и y. В знаменателях вещественных переменных имеем dx и 2. Умножим на них все, что связано с D и e. Получим целочисленный вариант реализации.

Слайд 13





Реализация целочисленного алгоритма
void LineBrez2(HDC hdc, int x1, int y1, int x2, int y2)
{	int dx=x2-x1, dy=y2-y1, x=x1, y=y1;
	int D=dy*2,  e=-dx;
	SetPixel(hdc, x, y, 0);
	for (x++; x<x2; x++)
	{	e+=D;
		if (e>0) {e-=2*dx; y++;}
		SetPixel(hdc, x, y, 0);
	}
}
Описание слайда:
Реализация целочисленного алгоритма void LineBrez2(HDC hdc, int x1, int y1, int x2, int y2) { int dx=x2-x1, dy=y2-y1, x=x1, y=y1; int D=dy*2, e=-dx; SetPixel(hdc, x, y, 0); for (x++; x<x2; x++) { e+=D; if (e>0) {e-=2*dx; y++;} SetPixel(hdc, x, y, 0); } }

Слайд 14





Алгоритм для произвольной прямой
Можно избавиться от предположения о том, что угол наклона прямой от 0 до π/4.
При больших углах необходимо на каждом шаге цикла менять координату y, подбирая при этом x исходя из величины ошибки.
Необходимо рассматривать направление движения по x и по y в зависимости от знаков dx и dy. 
В итоге имеем целочисленный алгоритм.
Описание слайда:
Алгоритм для произвольной прямой Можно избавиться от предположения о том, что угол наклона прямой от 0 до π/4. При больших углах необходимо на каждом шаге цикла менять координату y, подбирая при этом x исходя из величины ошибки. Необходимо рассматривать направление движения по x и по y в зависимости от знаков dx и dy. В итоге имеем целочисленный алгоритм.

Слайд 15





Резюме по алгоритму Брезенхема для прямой
Алгоритм простой для реализации
Все вычисления в целочисленной арифметике
Допускает аппаратную реализацию
Дает идеальное растровое приближение реальной прямой
Легко модифицируется для случаев 4-связной и 8-связной линии
Описание слайда:
Резюме по алгоритму Брезенхема для прямой Алгоритм простой для реализации Все вычисления в целочисленной арифметике Допускает аппаратную реализацию Дает идеальное растровое приближение реальной прямой Легко модифицируется для случаев 4-связной и 8-связной линии

Слайд 16





ЗАДАЧИ
Задано окно координатами своих вершин. В нем заданы две точки. Нарисовать отрезок их соединяющий методом цифрового дифференциального анализатора.
В условиях предыдущей задачи нарисовать отрезок методом Брезенхема.
Визуализировать процесс построения отрезка методом ЦДА. Нарисовать сетку пикселей и показывать  каждый шаг алгоритма с возможным и реальным выбором следующего пикселя. Использовать связность типа 4.
Визуализировать процесс построения отрезка методом ЦДА. Нарисовать сетку пикселей и показывать  каждый шаг алгоритма с возможным и реальным выбором следующего пикселя. Использовать связность типа 8.
Визуализировать процесс построения отрезка методом Брезенхема. Нарисовать сетку пикселей и показывать  каждый шаг алгоритма с возможным и реальным выбором следующего пикселя. Использовать связность типа 4 (8).
Описание слайда:
ЗАДАЧИ Задано окно координатами своих вершин. В нем заданы две точки. Нарисовать отрезок их соединяющий методом цифрового дифференциального анализатора. В условиях предыдущей задачи нарисовать отрезок методом Брезенхема. Визуализировать процесс построения отрезка методом ЦДА. Нарисовать сетку пикселей и показывать каждый шаг алгоритма с возможным и реальным выбором следующего пикселя. Использовать связность типа 4. Визуализировать процесс построения отрезка методом ЦДА. Нарисовать сетку пикселей и показывать каждый шаг алгоритма с возможным и реальным выбором следующего пикселя. Использовать связность типа 8. Визуализировать процесс построения отрезка методом Брезенхема. Нарисовать сетку пикселей и показывать каждый шаг алгоритма с возможным и реальным выбором следующего пикселя. Использовать связность типа 4 (8).

Слайд 17





ТЕСТЫ
Связность может быть типа
2
3
6
8
Цифровой дифференциальный анализатор  -
Это метод разложения отрезка в растр путем решения дифференциального уравнения
Это решение задачи Коши численными методами
Анализ решения дифференциального уравнения
Метод построения произвольной линии
Алгоритм Брезенхема построения прямой лучше метода ЦДА ,так как
позволяет получить приближение идеальной прямой точками растровой сетки
все точки лежат с одной стороны от реального отрезка
можно использовать связность типа 8
не требуется решать дифференциальное уравнение
Описание слайда:
ТЕСТЫ Связность может быть типа 2 3 6 8 Цифровой дифференциальный анализатор - Это метод разложения отрезка в растр путем решения дифференциального уравнения Это решение задачи Коши численными методами Анализ решения дифференциального уравнения Метод построения произвольной линии Алгоритм Брезенхема построения прямой лучше метода ЦДА ,так как позволяет получить приближение идеальной прямой точками растровой сетки все точки лежат с одной стороны от реального отрезка можно использовать связность типа 8 не требуется решать дифференциальное уравнение

Слайд 18





ТЕСТЫ
Связность
это возможность соединения двух пикселов растровой линией
возможность вставить между двумя пикселами несколько других
непрерывная последовательность нескольких пикселов
Общие принципы алгоритма Брезенхема
целочисленный итерационный алгоритм получения минимальных расстояний от прямой до реальных пикселов
целочисленный итерационный алгоритм, не допускающий аппаратную реализацию, получения минимальных расстояний от прямой до реальных пикселов
целочисленный алгоритм построения построения 8-связной линии
Стандартные требования к алгоритмам вычерчивания линий
Скорость рисования должна быть максимальна, а яркость зависит от наклона линии
Отрезки должны выглядеть прямыми и начинаться и заканчиваться в заданных точках
Скорость рисования должна быть максимальна, яркость постоянна, отрезки не обязательно выглядят прямыми
Описание слайда:
ТЕСТЫ Связность это возможность соединения двух пикселов растровой линией возможность вставить между двумя пикселами несколько других непрерывная последовательность нескольких пикселов Общие принципы алгоритма Брезенхема целочисленный итерационный алгоритм получения минимальных расстояний от прямой до реальных пикселов целочисленный итерационный алгоритм, не допускающий аппаратную реализацию, получения минимальных расстояний от прямой до реальных пикселов целочисленный алгоритм построения построения 8-связной линии Стандартные требования к алгоритмам вычерчивания линий Скорость рисования должна быть максимальна, а яркость зависит от наклона линии Отрезки должны выглядеть прямыми и начинаться и заканчиваться в заданных точках Скорость рисования должна быть максимальна, яркость постоянна, отрезки не обязательно выглядят прямыми



Похожие презентации
Mypresentation.ru
Загрузить презентацию