Алгоритм Брезенхема для генерации окружности.


Формирование растра. Растровая развертка в реальном времени. Методы группового и клеточного кодирования. Буфер кадра. Разложение в растр нелинейных фрагментов рассмотрим на примере окружности. Брезенхемом предложено одно из наиболее удачных решений.

Способы формирования растра. Растровая развертка в реальном времени.


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

Метод клеточного кодирования.


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

Адресация растра. Формула вычисления адреса пиксела.


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

Изображение отрезков.


Попробуем использовать адресацию буфера кадра, в качестве дисплея на ЗЭЛТ. Предварительно буфер кадра очищается, либо устанавливается в фоновую интенсивность (или цвет).

Использование свертки. Уравнение свертки. Пример.


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

Применение аппроксимации для ликвидации ступенчатости. Приемы. Примеры.


Аппроксимация полутонами. Метод, позволяющий получить сглаживание граничного края с использованием соответствующих комбинаций минимального количества уровней интенсивности (Рис.5). Известен давно. Еще в 1880 г. Стефан Хаген изобрел современную полутоновую печать.

Свет в компьютерной графике. Отражение и преломление. Закон косинусов Ламберта.


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

Основы метода трассировки лучей и излучательности


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

Лабораторная работа № 1. Visual Prolog/


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

Унификация


Одним из наиболее важных аспектов программирования на Прологе являются понятия унификации (отождествления) и конкретизации переменных. Пролог пытается отождествить термы при доказательстве, или согласовании, целевого утверждения. Например, в программе имеется факт собака(рекс). Для согласования запроса ?- собака(Х) целевое утверждение собака(X) будет отождествлено с фактом собака (рекс), в результате чего переменная Х станет конкретизированной: Х= рекc.

Использование предикатов fail, not, cut (неуспех, отрицание и отсечение).


Предикат cut (или ! ) – отсечение – его основное назначение в ограничении пространства поиска при вычислении за счет динамического сокращения дерева поиска. Отсечение можно использовать для отбрасывания бесплодных путей вычислений, которые не могут привести к решению. 

Задания по Прологу


Используя отсечение, неуспех и отрицание, написать программу: 1.Написать программу-классификатор, которая бы спортсменов некоторого клуба делила бы на группы: а) победители – те, кто ни разу не проиграл ни одного боя; б) бойцы – те, кто и выигрывал, но и был побежденным; в) спортсмены – те, кто пока не выиграл ни одного боя,

Базы знаний


Построить базу знаний «Рабочая смена»: Мария работает в дневную смену. Сергей работает в вечернюю смену. Борис работает в вечернюю смену. Валентина работает в вечернюю смену.

Логические задачи


1) Коля и Саша носят фамилии Шилов и Гвоздев. Какую фамилию носит каждый из них, если Саша с Шиловым живут в разных домах? 2) В соревновании по бегу Юра, Гриша и Толя заняли три первых места. Какое место занял каждый ребенок, если Гриша занял не второе и не третье место, а Толя — не третье?

Рекурсивные правила


Рекурсия – алгоритмический метод, часто используемый в Прологе. В рекурсивном правиле более сложные входные аргументы выражаются через менее сложные. Классическим примером рекурсивного определения в Прологе может служить программа «Предок», состоящая из двух правил:

Рекурсивные процедуры


Рекурсивная процедура — это процедура, которая вызывает сама себя. Рассмотрим пример вычисления факториала числа N: Если N равно 1, то факториал равен 1. Иначе найти факториал N-1 и умножить его на N.

Использование команды «cut»


Довольно просто сделать рекурсивный вызов в последней подцели последнего предложения. Но как гарантировать, что в любых других вызываемых процедурах нет альтернатив? Команда cut (!) позволяет отвергать все существующие альтернативы. Чтобы установить ее, необходимо использовать директиву компилятора check_determ. 

СПИСКИ


Списки — это объекты, которые имеют конечное число элементов. Объявляют их добавляя «*» (звездочку) в конце предварительно определяемого типа.

Упражнения по ПРОЛОГУ


1. Определите отношение последний(Элемент, Список) так, чтобы Элемент являлся последним элементом списка Список. Напишите два варианта определения: с использованием отношения append и без него.

Лабораторная работа № 5. ДЕРЕВЬЯ


Деревья относятся к рекурсивным структурам данных (Рис.1). Важно, чтобы каждая ветвь дерева сама являлась деревом, поэтому структура рекурсивна.

Обход дерева


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

Принципы построения экспертных систем


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

Структура экспертных систем


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

Представление знаний


Представление знаний — это множество соглашений по синтаксису и семантике, согласно которым описываются объекты. Хорошее правило при проектировании представления знаний — это организация знаний в такой форме, которая позволяет легко осуществлять доступ с.помощью естественных и простых механизмов. «Чем проще, тем лучше» — правило, которое нужно помнить при работе по представлению знаний.

Методы вывода


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