Semenalidery.com

IT Новости из мира ПК
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование компьютерной графики

Программирование компьютерной графики

Программирование компьютерной графики

Информация

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

Ниже ты можешь найти ссылку на сайт, посвящённый теории трёхмерной графики, обработки изображений и собственно программированию. Показать полностью… Для того, чтобы создать классный ресурс посвящённый CG требуется масса усилий. Если ты новичок или профи в области CG и у тебя давно есть идея написать интересную статью, сделать перевод с иностранного языка, показать миру свои наработки по графике — эта группа для тебя.

Есть огромное количество интересных задач:
— написание статей
— переводы ключевых разделов различных стандартов
— написание визуализаторов
— создание галереи фракталов и множество других

Вступай в группу, создавай CG в России своими руками! Сайт: http://www.compgraphics.info/

Другое

Действия

6 записей Показать все записи

Лекции по компьютерной графике, часть 2
Часть 1: https://vk.com/wall-30666517_1385564

7. Рассматриваются этапы визуализации, представление объектов, алгоритмы удаления невидимых линий и поверхностей. Показать полностью…
8. Алгоритм трассировки лучей — метод построения реалистичных изображений. Первая лекция — базовый алгоритм трассировки лучей, поиск пересечения с объектами. Наша статья про создание компактного в смысле объема кода трассировщика лучей: https://tproger.ru/translations/business-card-raytrac..
9. Рассматриваются различные модели освещения, их использование в алгоритме трассировки лучей, построение теней и вторичных лучей.
10. Использование текстур в компьютерной графике. Проекционные и пространственные текстуры, устранение лестничного эффекта при наложении. «Гипертекстурирование», «шум» и его использование.
11. Распределенная трассировка лучей. Рассматривается: удаление эффекта ступенчатости, объемные источники света, мягкие тени, нечеткие отражения, глубина резкости.
12. Компьютерная графика реального времени. На заключительной лекции рассматриваются некоторые аспекты программирования задач компьютерной графики в реальном времени. Сравниваются библиотеки OpenGL и DirectX, фиксированный и программируемый графический конвейер, рассматриваются некоторые прикладные техники, анимация.

Лекции по компьютерной графике, часть 1

1. Основы организации графического интерфейса: от аппаратных аспектов до высокоуровневых библиотек.
2. Основные алгоритмы растровой (2D) графики.
3. Использование цвета в компьютерной графике. Показать полностью…
4. Рассмотрены 2D/3D преобразования системы координат, однородные координаты и матричное представление преобразований, примеры (привязка координат, warping изображений).
5. Продолжение четвертой лекции.
6. Рассмотрены пространственные и плоские кривые, кубические сплайны, рациональные сплайны (NURBS), бикубические поверхности, трикубические пространства.

[ПОЛНАЯ ПРОГРАММА ФЕСТИВАЛЯ]

Встречайте полное расписание фестиваля «Пора рисовать!» Рассказывайте друзьям, сохраняйте полноразмерную картинку, закачивайте на телефон, печатайте на принтере, стройте маршрут! Показать полностью…

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

[лекторий 1] #фест_порарисовать_лекторий
12:05–13:10 Лекция «Как стать художником компьютерной графики?» Никита Березин
13:25–14:30 Лекция «Графический дизайн в брендинге:
создание логотипа и фирменного стиля» Ксения Михайлова
14:45–15:50 Лекция «Скетч в действии. От эскиза к готовому продукту» Мария Мусиенко
16:05–17:10 Лекция «Городские зарисовки в творчестве разных художников» Екатерина Хозацкая
17:25–18:30 Лекция-МК «Иллюстрация мелом» Анастасия Холодилова

[лекторий 2] #фест_порарисовать_лекторий
12:50–13:55 Лекция «Чему художник может научиться у ребенка» Даша Ротнова
14:10–15:15 Лекция «Как стать иллюстратором: от мечты к действию» София Коловская
15:30–16:35 Лекция «Организация персональной выставки: от слов к делу» Катя Красная
16:50–17:55 Лекция «Свободный доход для дизайнеров: микростоки, принтшопы и другие способы продажи своих работ в интернете» Ольга Ублинских
18:10–19:15 Лекция «Создание книжной обложки. Скрытые посылы» Ева Елфимова

[зона каллиграфии] #фест_порарисовать_каллиграфия
12:00–13:00 МК «Весенние линии» Анна Уппит
13:00–14:00 Лекция «О каллиграфии» Татьяна Петренко
14:00–16:00 МК «Знакомство с русской вязью» Ольга Варламова
16:00–18:00 МК «Знакомство с остроконечным пером» Сабина Алиярова
18:00–19:00 Лекция «Каллиграфическая линия в рисовании» Пётр Чобитько
19:00–20:00 МК«Каллиграфическая линия в рисовании» Пётр Чобитько

[зона набросков] #фест_порарисовать_наброски
12:00–14:00 Натюрморт
14:00–16:00 Мужская обнаженная модель
16:00–18:00 Женская обнаженная модель
18:00–20:00 Костюмированный образ

[зона ручной печати] #фест_порарисовать_печать
12:30–14:30 МК «Набойка на ткани» Валентина Сундукова
12:30–14:30 МК «Шелкография» @yazzhevik (Peach) Print
14:00–16:00 МК «Создание линогравюры» Олеся Нарыжная
14:50–16:50 МК «Самая простая гравюра на свете» Алиса Красникова
16:20–17:40 МК «Печать линогравюры» Олеся Нарыжная
17:20–19:20 МК «Ручная набойка» Алтай Коновалов
18:00–20:00 МК «Создание линогравюры» Олеся Нарыжная

[зона цифровой графики] #фест_порарисовать_цифроваяграфика
12:00–14:00 Лекция «Цифровая живопись. С чего начать?» Елизавета Парфенова
14:15–16:30 МК «Создание 2D персонажа из простых форм» Ринат Хабиров
16:45–19:00 МК «Создание трехмерной скульптуры в ZBRUSH» Елизавета Титова

[зона татуировки] #фест_порарисовать_тату
13:00–14:00 Лекция «Основы работы с тату-оборудованием» Анна Молкс
15:00–18:00 Лекция «Основы создания татуировки» Владимир Архипкин и Александр Сода
19:00-20:00 Лекция «Об организации рабочего места тату-мастера» Максим Брушневский

[зона аэрографии] #фест_порарисовать_аэрография
12:30–13:50 МК «Роспись футболки» Елизавета Querra
14:00–15:20 МК «Открытый урок для начинающих» Ксения Елисеева
15:30–16:50 МК «Аэрография. Новые возможности» Максим Самигулин
15:30–16:50 МК «Роспись пряников пищевыми красками» Ксения Леви
17:20–18:20 МК «Аэрография на мототехнике» Your Life

[зона комиксов] #фест_порарисовать_комиксы
12:30–13:30 Лекция «Как историю сделать комиксом» Полина Митяева
13:40–14:15 МК «Построение визуального ряда и композиции в комиксе» Полина Митяева
14:30–16:00 Лекция «Создание авторского комикса» Ольга Лавреньтева
16:20–17:20 Лекция «История комикса» София Коловская
17:40–20:00 Лекция, МК и конкурс по рисованию маркерами FAT&SKINNY Илья Q2

[детская зона] #фест_порарисовать_дети
12:00–12:50 МК «Основы аквагрима» Анастасия Девяткина
12:00–12:50 МК «Коллаж: кошки большие и маленькие» Ирина Ванеева (от 3 лет)
13:00–13:50 МК «Декупаж: Волшебный горшочек» Ирина Быстрова (от 5 лет)
14:00–14:50 МК «Аппликация: Чудесная совушка» Лёва Невская (от 5 лет)
15:00–15:50 МК по книге «Точка» Таня Шулаева (от 6 лет)
15:00–15:50 МК «Маски из бумажных тарелочек» Ирина Мартынова (от 3 лет)
16:00–16:50 МК по иллюстрированию книги «Рассказы про Франца» Катя Толстая (от 6 лет)
17:00–18:30 МК «Мой первый комикс» Таня Киселева (от 7 лет)

Добро пожаловать на наш блог Академии дизайна

Компьютерная графика, это такое научно-технологическое направление, которая занимается задачами по созданию, обработке и хранению изображений с помощью компьютера и его аппаратных и программных возможностей. Изображения на ПК хранятся в виде двоичного кода — координат, колера цвета, обозначенного в какой-либо цветовой модели. Сегодня мы поговорим о том, какие виды компьютерной графики существуют…

5 видов компьютерной графики

Способы отображения иллюстраций на экране выделяются по следующим типам:

  • Двухмерная (2D);
  • Векторная;
  • Растровая;
  • Фрактальная;
  • Трехмерная (3D).

Что такое двухмерная графика

Двухмерная графика – это, простая картинка, которая выглядит плоской, вследствие того, что в нем применяются только два измерения – ширина и высота. Несмотря на подобный вид у иллюстрации можно добиться объема с помощью света и теней, но не реалистичности, за исключением фотографий. 2D рисунки обычно используют для создания логотипов, макетов веб-сайтов, рекламных баннеров, интерфейсов, мультипликации и кинематографа.

Читать еще:  Что такое алфавит языка программирования

Векторная графика

Векторный рисунок можно представить в облике элементарных геометрических объектов: точки, прямые, кривые, окружности, многоугольники, и т.д. Фигурам присваиваются какие-либо качества, например, толщина линий, цвет заливки. Для создания иллюстраций используются формулы и координаты. К примеру, чтобы нарисовать треугольник нужно указать его вершины, цвет заполнения и обводку. Для сложных рисунков используют набор геометрических фигур, которые собираются вместе как аппликация из бумаги на уроке труда в начальной школе, но при этом сохраняется возможность в дальнейшем редактировать получившеюся картинку.

Преимуществами векторной графики считаются:

  • Малый объем занимаемой памяти на ПК;
  • Трансформация и масштабирование без потери качества;
  • Выглядит всегда одинаково, независимо от характеристик устройства отображения.

Отрицательными сторонами векторов являются:

  • Невозможность представления всех изображений с помощью примитивов;
  • Трудоемкий процесс перевода растровых изображений в векторные;
  • Отсутствие автоматического ввода;
  • Проблемы с совместимостью программ просмотра и создания.

Векторные картинки широко востребованы на предприятиях, занимающихся проектированием, конструкторских бюро, в рекламных агентствах, типографиях, и т. д. Графические редакторы, работающие с данным иллюстрациями, являются: Adobe Illustrator, Corel Draw, AutoCad, ArhiCad.

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

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

Растровые изображения обладают следующими характеристиками:

  • Разрешение – количество пикселей, приходящихся на единицу площади;
  • Размер – ширина и высота в пикселях;
  • Цветовое пространство – метод отображения цветов в координатах какой-либо цветовой системы;
  • Глубина цвета – наибольшее количество оттенков цветов, которое может содержать изображение.

К плюсам растра относится:

  • Реалистичность;
  • Возможность автоматизированного ввода информации;
  • Быстрая обработка трудных иллюстраций;
  • Адаптивность под всевозможные устройства и программы просмотра.

К минусам растровых изображений можно отнести следующее:

  • Большой размер занимаемой памяти;
  • Невозможность деформации и масштабирования без потери качества.

Фрактальная графика

Во фрактальной графике реализован принцип наследования геометрических качеств, передающихся от одного элемента к другому. Основана данная модель на математических вычислениях (формулах) и так как детализированного описания мелких составляющих не требуется, то обрисовать такой объект можно несколькими уравнениями, результаты которых в дальнейшем машина отображает автоматически, и не требует хранения в памяти компьютера каких-либо объектов. Фрактальный принцип отображения графики нашел широкое применение во многих областях компьютерной графики, науки и искусства. Фракталы широко применяются в растровой, векторной и 3D графике. Можно отметить несколько программ для генерирования фракталов: Fractal Explorer, Apophysis, Mandelbulb3D.

Трехмерная графика

Трехмерная графика работает с объектами в трёхмерном пространстве – ширина, высота и глубина. Предметы моделируются и перемещаются в виртуальном пространстве и могут быть рассмотренными под различным углом.

Трехмерные модели могут быть двух типов:

  • Полигональная – совокупность вершин, ребер и граней, которые определяют форму многогранного объекта, обволакивая пустое 3D пространство;
  • Воксельная – совокупность элементов объемного изображения, содержащая значение растра, которые выкладываются в объёмные модели объектов, имеющие внутренности.

Трехмерная графика встречается повсеместно и используется в создании изображений во всевозможных областях деятельности человека: машиностроение, архитектура, дизайн интерьера, реклама, игровая и кино индустрия, интерактивные обучающие проекты. Можно выделить следующие редакторы: 3ds Max, Autodesk Maya, Cinema 4D, Blender.

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

Позвоните чтобы узнать подробнее

Программирование компьютерной графики

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

История компьютерной графики

О компьютерной графике заговорили после опытов Джей У. Форрестера (инженер компьютерной лаборатории Массачусетского технологического института) в 1951 году.

К предшественникам компьютерных рисунков можно отнести первые не­затейливые картинки из точек и букв, получаемые на телетайпах телеграфа, а позже — на печатающих устройствах, подключенных к ЭВМ.

Итак, в начале были точки и простые линии. Этот набор стремительно обогащался. 1970-е годы стали временем широкого использования машинной графики. Одно из важнейших отличий современных ПК состоит в воз­можности вывода на экран графического изображения.

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

Направления компьютерной графики

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

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

Используется в работе учреждений.

Создание плоских и трехмерных изображений.

Используется в работе инженеров-конструкторов.

Системы автоматизированного проектирования (САПР)

Создание произвольных рисунков и чертежей.

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

Графические редакторы (со сложным математическим аппаратом)

Создание движущихся изображений на экране монитора. Слово «анимация» означает «оживление».

Аналоговый и дискретный способы представления

Человек способен воспринимать и хранить информацию в форме образов ( зрительных, звуковых, осязательных, вкусовых, обонятельных ).

Зрительные образы могут быть сохранены в виде изображений (рисунков, фотографий, …)

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

При дискретном представлении физическая величина принимает конечное множество значений, причем ее величина изменяется скачкообразно .

аналогового представления графической информации

может служить живописное полотно, цвет которого изменяется непрерывно.

дискретного представления графической информации

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

Все органы чувств человека имеют дело с аналоговыми сигналами.

Любая информация, используемая в технических системах, также начинается и заканчивается аналоговым сигналом.

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

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

Растровое изображение представляет собой мозаику из очень мелких элементов — пикселей.

Читать еще:  Инструментарий программирования это

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

Качество кодирования изображения зависит от :

— размера точки — чем меньше её размер, тем больше количество точек в изображении

— количества цветов (палитры) — чем большее количество возможных состояний точки, тем качественнее изображение

Достоинства растровой графики:

1. Каждому видеопикселю можно придать любой из миллионов цветовых оттенков. Если размеры пикселей приближаются к размерам видеопикселей, то растровое изображение выглядит не хуже фотографии. Таким образом, растровая графика эффективно представляет изображения фотографического качества.

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

Недостатки растровой графики:

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

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

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

2. Проблемой растровых файлов является масштабирование:

— при существенном увеличении изображения появляется зернистость, ступенчатость

— при большом уменьшении существенно снижается количество точек, поэтому исчезают наиболее мелкие детали, происходит потеря четкости

Для обработки растровых файлов используют редакторы: MS Paint, Adobe Photoshop

Низкоуровневое программирование компьютерной графики

Суть:
Низкоуровневое программирование – это когда в программе мы непосредственно обращаемся к регистрам.
Преимущества:
Можно сделать нестандартные решения.
До средины 90-х годов функции для рисования графики были в малом количестве и с очень ограниченными возможностями, железо было медленное.
Для преодоления тупика по быстродействию программирование в те времена выполнялось на ассемблере.

1. Чтобы уметь писать программу нужно четко знать стандарт описания работы до такта. Последний официальный стандарт в 87 году и называется VGA. После этого все фирмы начали делать свои версии адаптеров, все вместе они называются SVGA
SVGA – это VGA + нечто (у каждой фирмы свое)
Все сегодняшние фирмы вставляют внутренние шины (198 бит шина внутри адаптера), существует не меньше 30 акселераторов (ускорение в 1000 100000 раз). Акселераторы выполняют в 1000 раз быстрее свои функции, генерируя алгоритм Бронзенхерма.
В SVGA постоянно расширяют и развивают добавки.

2) Основной язык для создания таких программ – это ассемблер, но ассемблер самый тяжелый по записи язык, преимущества ассемблера заключается в прямом обращении к регистрам портам и компьютер должен был беспрекословно выполнять все команды, но такой язык хорош для одно-командных прцессоров.
Начиная с 90-х годов все процессоры конвеерные.
Конвеер — процессор сам аналезирует подаваемый код, автоматически выполняя оптимизацию и поэтому очень часто меняет текст машинных команд и последовательность их выполнения. Нужно знать архитектуру адаптера.
Архитектура графического адаптера программисту доступно только VGA.

Каждый функциональный узел имеет свои порты. Обычно для доступа к функциональному узлу нужно обратиться сначала по адресу, а потом менять значения.

Все регистры 8-ми битовые.
Внешний регистр 3С2h, 3С3h – эти порты главные, разрешают/запрещают доступ к графическому адаптеру; 3BAh, 3DAh – определяют состояния луча.

Графический адаптер – осуществляет обмен данными между цифровым адаптером и процессором, можно управлять режимом работы и виполнять маскирования цветов.

Синхронизатор – управления параметрами работы адаптера, доступ к его слоям, определения структуры памяти.
Преобразователь последовательности – узел который управляет потоковыми данными, здесь находятся системные шрифты.
Контр. атрибутов – управляет цветовыми характеристиками, находится 16 цветовых регистров т.е. 16 цветов.
Контроллер ЭЛТ – контроллер монитора. С его помощью мы можем сделать строчную или векторную развертку.
ЦАП – до появления VGA, сигнал от адаптера имел цифровой характер, VGA – выдает аналоговый сигнал, а для преобразования цифровой информации в аналоговую ставят цифро-аналоговый преобразователь.

256 рег. 24 битное появление дало возможность рисовать 256 цветов, с помощью этого узла можно делать очень эффективную и быструю анимацию.

Задача
Необходимо создать программу, которая делает бордюр в виде не непрерывного цвета, а в виде разноцветных полос, которые перемещаются.

Стандартные графические средства не позволяют решить эту задачу.
Современные адаптеры используют строчную развертку. Автоматически в каждом адаптере заложено формирования изображения бордюра. Смысл бордюра — основное изображение рисуется внутри этого прямоугольника, а все выводимое изображения взято в рамку (по умолчанию она черного цвета ). Назначения бордюра — при различных неприятных смещений ЭЛТ может, не меняя режим работы адаптера не изменяя размер изображения, его можно сместить. Этот бордюр используется как вспомогательный элемент интерфейса, используется при смеш. цветов.
Задача программы определять моменты времени, когда луч находится в режиме рисования бордюра, а перед этим задавать в регистр цвета линий нужный цвет. Для каждой новой строки новый цвет, при переходе со строки на строку в момент, когда идет обратный код, мы должны изменить цвет.

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

В момент обратного хода изменить цвет бордюра. Ждать до тех пор пока не начнет рисоваться линия.

Изменения в парамертрах адаптера(ячейки видеопамяти, регистрах управления) нельзя делать когда луч что то рисует на экране.

Моменты окончания и начала рисования строки , кадра нельзя получить автоматически. Для этого придется делать бесконечные приемы на языке ассемблер.

Схема алгоритма

Обновлять цвета строк начинается с начала кадра. Ищется конец строки и меняем параметр(цвет строки).
При создании сложных программ (компьютерные игры) изменение идет во время обратного хода кадра.

Текст программы:

program border;
uses crt;
var i, j, k : integer;
begin
goto (1, 25);
write (‘ ’ : 30, ‘Выход «Esc»’); инструкция по выходу
asm
cli ; запрещаем прерывания во время работы программы
@@10:
mov cx, 4001 ; регистр cx используется как счетчик числа
; последоват. нарисованных строк
@@20:
mov dx, 3DAh ; заносим 3DAh
in al, dx ; читаем из al в dx
test al, 8
jz @@20
@@30: in al, dx ; читаем из al в dx
test al, 1
jz @@30
; основная задача – изменяем значение цвета в регистре бордюра 3C0h
; Внимание, при выполнении первого шага биты 5-7 записываются в 3C0h,
; должны содержать 0
mov dx, 3C0h
mov al, 11h
mov dx, al
mov ax, di
mov al, 0Fh
mov dx, al
mov al, 20h
out dx, al
@@40: mov dx, 3DAh
in al, dx
test al, 1 ; проверяем на начало рисования строки
jnz @@40 ;
; начало рисования новой строки кадра
inc di ; если cx не превышает FFFFh
loop @@30 ; то меняем цвет сроки
in al, 60h ; считываем информацию из порта клавиатуры
cmp al, 1 ; проверяем на наличие
jnz @@10 ; скан-код Esc = 1, если
sti ; его нет, то возвращаемся в начало
end;
END.

  • Писать такие программы сложно.
  • Из-за разброса стационарных графических адаптеров возможны збои в asm прграмм.
  • Asm программы не способны исполнять акселлераторы графических адаптеров.
  • Asm программа ореентирована на однокомандные процессоры.
  • Современные компьютерные программы нужно писать средствами универсяльных алгоритмических языков.
Читать еще:  Что такое синтаксис языка программирования

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

педагогические науки

  • Векслер Виталий Абрамович , кандидат наук, доцент, доцент
  • Саратовский государственный университет имени Н.Г. Чернышевского
  • ПРОГРАММИРОВАНИЕ
  • ФРАКТАЛЬНАЯ ГРАФИКА
  • РАСТРОВАЯ ГРАФИКА
  • ВЕКТОРНАЯ ГРАФИКА

Похожие материалы

Сегодня в рамках большинства технических и гуманитарных направлений изучется дисциплина «Компьютерная графика», в рамках которой студент знакомиться с понятиями растровой, векорной и фрактальной графики. Практикумы проводятся в соответствующих видам графики редакторах, это может быть Adobe Photoshop, Adobe Illustrator, Corel Photo-Paint, Corel Draw и другие. Для проведения занятий можно подобрать большое количество, из существующих, бесплатных графических редакторов.

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

Приведем примеры раскрытия данной темы используя среду программирования Visual Studio для создания графических изображений на языке С#.

На первом занятии студенты знакомятся с понятием интерфейса Windows — GDI (Graphics Device Interface, Graphical Device Interface), предназначенным для представления графических объектов и выводом их на монитор или принтер. В его задачу входит отрисовка линий, кривых, отображение шрифтов и обработку палитры. Данная технология предоставляет богатые возможности для работы с векторной и фрактальной графикой.

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

Выделим три варианта использования данного объекта:

1. объект для визуализации графических изображений возвращает метод CreateGraphics(), который имеется у всех объектов управления, производных от класса Control.

2. объект экземпляра класса Graphics можно создать, взяв за основу файл с точечным изображением:

3. ссылка на объект для рисования может быть получена из параметра PaintEventArgs, который передаётся в обработчик события Paint.

4. Graphics g = Graphics.FromHwnd(this.Handle);

Graphics.FromHwnd(this.Handle) — используемый метод FromHwnd из класса Graphics, который задает ссылку Handle на форму Windows.

Определены два этапа работы с графикой.

  1. Создание объекта Graphics.
  2. Использование объекта Graphics для рисования линий и фигур, отображения текста или изображения и управления ими.

В ходе нескальких занятий студенты знакомятся с основными механизмами рисования и анимирования объектов, получают задания для выполнения в ходе самостоятельной работы и контрольных заданий.

  1. Опишите 3 метода или свойства классов Graphics, Color, Pen и SolidBrush, не рассморенных в теоретической части.
  2. Создайте собственное приложение выводящий на форму рисунок, состоящий из различных объектов (линий, многоугольников, эллипсов, прямоугольников и пр.), не закрашенных и закрашенных полностью. Используйте разные цвета и стили линий (сплошные, штриховые, штрихпунктирные). Пользователь может по нажатию клавиш перемещать его по экрану, менять его размер и поворачивать. Представьте три варианта создания изображение: через bitmap, через параметр PaintEventArgs, через ссылку Handle на форму Windows.
  3. Постройте график функции по своему варианту из лабораторной работы. Добавьте заголовок.
  4. Создайте фрактал по своему варианту.
  5. Анимация объекта
  6. Работа с растровым изображением.

Приведем некоторые результаты решения данных задач студентами.

1. Объектом для рисования становится поверхность формы. Студентам необходимо на форме изобразить соответсвующий график, учитывая, что система координат на форме, следующая: левый верхний угол формы являтся точкой с координатами 0,0 (центр системы координат); отсчет по оси абсцисс слава-направа — положительные значения х; отсчет по оси ординат сверху-вниз — положительные значения y. Предложенно простейшее решение: расчитать координаты графика функций, с учетом предложенного шага, ось ординат перенести на линию со значением 150 (данное число впоследствии можно сделать динамическим, зависящим от высоты окна), приступить к построению графика учитывая сдвиг и расширить значения по осям.

2. Построение фрактала «Кривая дракона». Алгоритм рекурсивного построения студентами изучен. Объетом для рисования становится объект pictureBoxNew.

3. Пример анимирования объекта на форме. Случайное движение объекта (звезда). За изменение прорисовки объекта с новыми координатами отвечает Timer: вычислив новые координаты он вызывает метод Paint для новой прорисовки на форме (при этом стирать старый объект не нужно).

Рассмотренные выше примеры формируют понимание принципов создания векторного и фрактального изображений.

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

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

Электронное периодическое издание зарегистрировано в Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), свидетельство о регистрации СМИ — ЭЛ № ФС77-41429 от 23.07.2010 г.

Соучредители СМИ: Долганов А.А., Майоров Е.В.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector