Раздел: Графика
Джефф Уилсон — ведущий мировой аниматор
Джефф Уилсон рассуждает о следующем поколении анимации лица, программе Softimage и вообще о CG индустрии в целом. Каким образом вы оказались в СG индустрии задолго до популяризации данного направления в компьютерной среде?
Мой отец работает инженером и занимается настройкой различных автоматических систем, поэтому компьютеры вошли в мою жизнь с появления VIC — 20. В действительности были и другие компьютеры до этого, но именно Commodore приоткрыл мне удивительный мир компьютерных технологий. На крючок CG я попался с появления Koala Paint для С64. Далее,...
Векторная графика
В отличие от растровой графики в векторной графике изображение строится с помощью математических описаний объектов, окружностей и линий. Хотя на первый взгляд это может показаться сложнее, чем использование растровых массивов, но для некоторых видов изображений использование математических описаний является более простым способом. Ключевым моментом векторной графики является то, что она использует комбинацию компьютерных команд и математических формул для объекта.
Это позволяет компьютерным устройствам вычислять и помещать в нужном...
Области применения компьютерной графики
Области применения компьютерной графики:
Научная графика
Первые компьютеры использовались лишь для решения научных и производственных задач. Чтобы лучше понять полученные результаты, производили их графическую обработку, строили графики, диаграммы, чертежи рассчитанных конструкций. Первые графики на машине получали в режиме символьной печати. Затем появились специальные устройства — графопостроители (плоттеры) для вычерчивания чертежей и графиков чернильным пером на бумаге. Современная научная компьютерная графика дает возможность...
Растровая графика и пиксел
Компьютерная графика в настоящее время сформировалась как наука об аппаратном и программном обеспечении для разнообразных изображений от простых чертежей до реалистичных образов естественных объектов. Компьютерная графика используется почти во всех научных и инженерных дисциплинах для наглядности и восприятия, передачи информации. Применяется в медицине, рекламном бизнесе, индустрии развлечений и т. д. Конечным продуктом компьютерной графики является изображение. Это изображение может использоваться в различных сферах, например,...
Преимущества и недостатки векторной графики
Достоинства векторной графики
Самая сильная сторона векторной графики в том, что она использует все преимущества разрешающей способности любого устройства вывода. Это позволяет изменять размеры векторного рисунка без потери его качества. Векторные команды просто сообщают устройству вывода, что необходимо нарисовать объект заданного размера, используя столько точек сколько возможно. Другими словами, чем больше точек сможет использовать устройство вывода для создания объекта, тем лучше он будет выглядеть.
Растровый формат файла точно...
Виды компьютерной графики
Различают три вида компьютерной графики. Это растровая графика, векторная графика и фрактальная графика. Они отличаются принципами формирования изображения при отображении на экране монитора или при печати на бумаге. В растровой графике изображение представляется в виде набора окрашенных точек. Такой метод представления изображения называют растровым. Растровую графику применяют при разработке электронных (мультимедийных) и полиграфических изданий. Иллюстрации, выполненные средствами растровой графики, редко создают вручную с помощью...
Компьютерная графика
Компьютерная графика прочно вошла в нашу жизнь. Появляется все больше клипов, сделанных с помощью компьютерной графики. Нет спору, компьютерная графика расширяет выразительные возможности. При творческом ее использовании реклама приобретает удивительную силу воздействия на зрителя. С помощью одной только компьютерной графики очень трудно донести до зрителя рекламную идею. И если в клипе лишь компьютерная графика, лишь созданный ее средствами сюрреалистический мир, то зритель остается холодным, хотя увиденное и поражает воображение....
Вводный курс программирования
Во вводных курсах программирования, как правило, основное внимание бывает направлено скорее на изучение свойств конкретного языка программирование, чем на рассмотрение более широких аспектов искусства программирования. Да и учебники по программированию в основном посвящены описанию свойств языков. В некоторых учебниках ничего кроме этого содержится, хотя в лучших из них рассматриваются те же вопросы стиля и методологии программирования. Однако для достижения ясности они фактически не выходят за рамки тех методов программирования,...
Как пользоваться этими публикациями
Люди, как правило, начинают свою программистскую карьеру с изучения языка программирования, обычно при помощи вводного курса. Неизбежно поэтому, что на ранних стадиях их внимание в основном сосредоточено на овладении конструкциями языка и основными правилами приведения задачи к такой форме, для которой эти конструкции можно было бы применить. Некоторые вводные курсы так много внимания уделяют языку и тому, как им пользоваться для описания решений задач, что все остальное фактически остается вне поля зрения, хотя в лучших из этих курсов...
Порядок следования глав
В порядке следования глав есть своя логика, но это не единственно возможный логический порядок. В первой главе рассматривается общий подход, после чего приводятся принципы проектирования программ, хотя непосредственно к описанию проектирования мы не переходим, потому что еще не рассмотрены вопросы пользования литературой; пакетами программ и т. п. Изобретение велосипеда может встретиться во всех отраслях человеческой деятельности, но в программировании это явление обычное. Поэтому цель первой главы —подчеркнуть те моменты, щ которые...
Стратегия и проектирование
Написание программы во многом напоминает пошив одежды или постройку дома. Прежде чем начинать что-либо делать, Вы должны тщательно обдумать, что Вы хотите получить в результате, и составить план работы. В этой главе рассматривается начальный этап проектирования, включая пути, позволяющие вообще избежать написания новой программы
Подход к решению задачи
Человек в период изучения вводного учебного курса часто обнаруживает, что написанная им программа работает не так, как предполагалось, и выясняется, что во время написания программы он...
Спецификация
Для этого нужно записать на бумаге спецификацию того, что должно быть сделано: исходные данные, что должно получиться, средства для достижения этого, ограничения (например, время или деньги), которые необходимо соблюсти и т. п. Это уже само по себе помогает собраться с мыслями, однако бывает полезно показать спецификацию соответствующим образом подготовленному коллеге и спросить его, может ли он все понять либо указать на какие-нибудь недостатки, неопределенности или упущения.
Если задача поставлена не Вами (обычно это случается, когда...
Представление о проекте
Вот почему так важно составить полное представление о проекте для того, чтобы попытаться оценить, какие факторы, па всей вероятности, будут доминирующими, и определить относительные приоритету критериев, используемых при выборе из нескольких возможностей. Более того, об этих соображениях нужно не забывать в процессе разработки. Может получиться так, что первоначальные решения окажутся ошибочными или станут неверными при изменении условий.
Девиз фирмы IBM Думай — популярная шутка в мире программистов, но это не отменяет того факта,...
Пользование литературой
Поскольку наиболее существенным в любом проекте является обдумывание, внимательное рассмотрение того, что должно быть сделано, хороши любые средства, способствующие уверенности в полном понимании решаемой задачи. Значение работы уже установлено в процессе обсуждения задачи с другими людьми — будущим пользователем, руководителем проекта, коллегой. Однако из полного понимания проблемы никак не следует ни то, что решение тут же появится само собой, ни то, что с точки зрения вычислительной техники тоже все сразу прояснится (например,...
Алгоритм
После этого правильный алгоритм был найден, закодирован и пропущен на машине за считанные часы. Но в большинстве случаев дело заключается не в том, что способ решения задачи неверен, а в том, что он не лучший для конкретного оборудования или режима работы, поскольку пользователь неспециалист в вычислительной технике. Однако в любой ситуации общее .правило остается тем же: не принимайте на веру предлагаемый метод, проверьте его настолько, насколько можете, будьте особенно внимательны к неявным предположениям, которые могут оказаться неправильными.
Когда...
Численные алгоритмы
При таком выборе возможностей для компромисса либо вообще не существует, либо их немного. Подобные ситуации возникают во всех областях применения вычислительной техники — от численных алгоритмов, используемых в научных расчетах, до методов сортировки, поиска и обработки файлов во многих коммерческих программах. Здесь обращение к литературе необходимо для проверки правильности использования метода.
Дополнительная трудность заключается в том, что постоянно появляются новые методы решения задач. Сюда входит использование и новых алгоритмов,...
Машинно-ориентированные источники
В дополнение к таким машинно-ориентированным источникам существуют также и предметно-ориентированные источники. Некоторые из них, такие как SPSS для статистики или СОМРАХ для коммерции, представляют собой пакеты, написанные на широко доступном языке или языках, например на Фортране или Коболе, и реализованные на различных классах ЭВМ. Они разработаны профессиональными программистами, например в учреждениях, специализирующихся на разработке программного обеспечения, и можно рассчитывать на то, что эти пакеты хорошо документированы и...
Разработка алгоритмов
Введение. Программы, которые пишутся как упражнения на начальных этапах обучения программированию, представляют собой несложные задания, выполненные при помощи недостаточно еще знакомых средств языка программирования. Такие упражнения направлены на то, чтобы помочь начинающему овладеть элементами языка. Поскольку задания, которые предлагаются в упражнениях, просты, для нахождения способа их выполнения практически не приходится раздумывать. На последующих этапах такого обучения методы, при помощи которых выполняются задания, приобретают...
Пять характеристик алгоритмов
Мы рассмотрим пять признаков, которыми можно охарактеризовать алгоритмы: вход алгоритма, его выход, определенность его шагов, выполнимость его шагов и конечность.
Обратившись к алгоритму умножения, можно установить, что для того, чтобы он начал работу, нужно задать числовые значения А и N — это и есть вход алгоритма. Вычисляемая величина Л/является его выходом. В хорошо разработанном алгоритме имеются два четко различимых самостоятельных множества данных, образующие вход и выход алгоритма. Элементы этих двух множеств называются параметрами...
Выполнимость
Обеспечить выполнимость — значит исключить из алгоритма невыполнимые инструкции; обеспечить определенность — значит исключить неясные или бессмысленные инструкции.
В отличие от двух последних свойств конечность является свойством алгоритма в целом, а не отдельных его инструкций. Приведем простой пример алгоритма, который никогда не заканчивается:
Шаг 1. Присвоить I значение 1.
Шаг 2. Присвоить / значение I + 1.
Шаг 3. Перейти к шагу 2.
Заметим, что множества входных и выходных параметров этого алгоритма пусты, однако это нигде специально...
Умножение
Предположим теперь, что мы пытаемся умножить эту дробь на 10 — сначала путем непосредственного умножения, которое дает ответ 3.3, а потом путем девяти последовательных операций сложения, которые дали бы последовательность результатов: 0.66, 0.99,1.3 (в этот момент мы теряем третий разряд, поскольку наша ЭВМ может запоминать только два разряда), 1.6, 1.9, 2.2, 2.5, 2.8, 3.1.
С точки зрения чистой математики, предполагающей всеобщую точность, оба метода дадут одинаковый ответ, но, поскольку в машинном алгоритме таится возможность появления погрешности округлений,...
Типы хода выполнения
На рис. в подобной форме представлен алгоритм умножения. В этом алгоритме содержатся примеры трех существующих типов хода выполнения: последовательный, циклический и разветвленный. Этих трех типов достаточно для описания любых ситуаций, кроме тех, которые встречаются в одном специфическом классе алгоритмов, а именно в алгоритмах, включающих в себя так называемое параллельное выполнение. Об этом будет рассказано позже, а для начала рассмотрим три основных типа.
Последовательный ход соответствует такому типу выполнения, при котором шаги...
Алгоритмы для ЭВМ
Принято считать, что алгоритмы вообще и алгоритмы для ЭВМ в частности необходимы для решения очень сложных задач, которое в свете предыдущего утверждения может показаться недостижимой или даже нереальной целью. Разрешается это видимое противоречие довольно просто: если задача настолько трудоемка и сложна, что один алгоритм для ее решения был бы громоздок и сложен, следует разбить ее на меньшие и более простые подзадачи и для каждой из них разработать отдельный алгоритм. Практически уже первое разбиение на подзадачи может иметь такую...
Параллельность и одновременность
Во введении к этому разделу алгоритм был определен как набор, а не как последовательность инструкций. Различие между этими двумя терминами состоит в том, что второй предполагает некоторую упорядоченность инструкций, тогда как первый этого не предполагает. Однако все алгоритмы, которые мы рассматривали до сих пор, в некотором смысле были упорядочены. Например, были пронумерованы шаги, и мы ссылались на нормальный порядок выполнения, который соответствовал этой нумерации. Отсюда возникают вопросы: так ли необходимо было слово набор? Существуют...
Способы перехода
Для данного критерия определения эффективности существуют два основных способа перехода от заданного алгоритма к более эффективному. Первый из них состоит в том, чтобы, сохранив основную идею алгоритма, попытаться извлечь из него лучшее при помощи оптимизации его частей или совершенствования способа реализации. Такой путь рассматривается в разд. 3.3 с точки зрения основных ресурсов ЭВМ — времени и памяти, поэтому здесь мы на нем останавливаться не будем Второй способ заключается в разработке совершенно другого алгоритма. Для иллюстрации...
Метод решения конкретной задачи
Из приведенного выше примера можно сделать вывод о том, что для метода решения конкретной задачи часто существует путь к обобщению. В этом примере подсчет слов основывался на том, что одно слово отделяется от другого пробелом. Исходя из этого нетрудно было провести аналогию с тем фактом, что предложения отделяются друг от друга другим специфическим знаком — точкой.
В предыдущих рассуждениях игнорировались возможные сложности, например проблемы, вызванные наличием группы пробелов в конце абзаца (их обойти сравнительно легко) или...
Рекурсия
Очень элегантным и универсальным методом, заслуживающим рассмотрения в отдельном подразделе, является рекурсия. Рекурсия была разработана специалистами по фундаментальной математике как средство для определения функций и в дальнейшем применялась в математической логике. Поскольку эти науки тесно связаны с теоретическими основами вычислительной техники, рекурсия является важным для нас понятием. -С этой точки зрения важность рекурсии заключается в том, что она позволяет описывать алгоритмы в элегантной и сжатой форме. Рекурсивные...
Область численных функций
Рекурсия как способ определения не ограничена областью численных функций. Она находит свое применение и в таких чрезвычайно важных областях, как разработка компиляторов, символьная обработка и комбинаторная математика. Выразительные возможности рекурсивного определения очень широки. Можно показать, что существуют функции, которые нельзя определить при помощи обычных знаков арифметических операций +, —, X и /, помещаемых между обычными переменными а можно только использовав рекурсию. Такой функцией является представленная ниже функция...
Реализация компилятора
На практике он возникает в тех случаях, когда при помощи рекурсии можно четко описать алгоритм, но основным недостатком является неэффективность такого описания с точки зрения выполнения алгоритма на ЭВМ. Можно возразить, что это скорее относится к способу реализации компилятора, а не к свойствам самого метода, однако справедливость этого возражения не заставит программу работать быстрее Эффективность рекурсии относительно времени и памяти рассматривается в разд. 3.3. Что касается разработки алгоритмов, то, если рекурсивный алгоритм...
Написание программы
Обратимся теперь непосредственно к процессу написания программ. В первом разделе рассматривается вопрос о выборе языка программирования, во втором — связанный с ним вопрос о стандартах языков программирования, который важен, если программа должна эксплуатироваться на различном оборудовании. В разделе обсуждается выбор способов ввода и вывода, который иногда вызывает большие трудности, в разделе — конкретные вопросы обеспечения взаимодействия человек — ЭВМ. Наконец, в разделе описываются методы программирования, получившие...
