Skip to content

ogudkov17/CG

Repository files navigation

CG

Computer Graphics

Лабораторная работа №1

Примеры работы с элементом canvas, обработчиками событий и таймером.

управление анимацией с клавиатуры

обработка нажатия мыши

Лабораторная работа №2

Для исходного изображения применить медианный сглаживающий фильтр и сформировать новое изображение на основе фильтрации.

Лабораторная работа №3

Построить методом Брезенхема отрезок по начальной и конечной точкам, задаваемым с помощью мыши (обработка кликов мыши).

пример

В приведенном примере строятся только отрезки, с наклоном от 0 до 45 градусов. Необходимо иметь возможность строить все возможные отрезки (с углом наклона от 0 до 360 градусов).

Лабораторная работа №4

Для исходного изображения применить фильтр Собеля для выявления границ и сформировать новое изображение на основе фильтрации.

Лабораторная работа №5

Выполнить процедуру отсечения отрезков произвольным многоугольником по методу Цируса-Бека.

пример

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

Лабораторная работа №6

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

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

пример

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

Лабораторная работа №7

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

пример

В приведенном примере надо добавить проверки и обработку ситуаций, когда стороны многугольника горизонтальны или вертикальны.

Лабораторная работа №8

Лабораторная работа №9

3D. Зададть координаты трех точек плоскости, координаты источника света и цвет треугольника (в цветовых координатах RGB). Для плоскости определить нормаль и угол падения луча из источника света до произвольной точки плоскости. заполнить треугольник, определяющий плоскость цветом, определяемым исходным цветом, где каждая из цветовых координат уменьшена в cos(угла падения) раз.

пример

В приведенном примере необходимы проверки из лабораторной работы 7 При желании, можно дополнить работу дополнительно учитывая, что отраженный луч не направлен напрямую к наблюдателю. Т. о., необходимо цвет плоскости уменьшить еще в косинус раз для угла, образованного отраженным (по геометрической оптике) лучом и нормалью к экрану (ось Oz)

About

Computer Graphics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages