В зависимости от способов формирования изображений компьютерную графику принято подразделять на растровую, векторную и фрактальную.
Растровый принцип заключается в представлении графических изображений в виде множества точек, каждая из которых представляет последовательность целых чисел (линейные координаты, цвет, яркость).
В векторной графике базовым элементом является не точка, а линия, которая описывается математически, как единый объект.
Фрактальная графика основана на математических вычислениях, но базовым элементом является сама математическая формула. Никаких объектов в памяти компьютера не хранится, и изображения строятся исключительно по уравнениям.
Программные системы, ориентированные на растровую графику предназначены на работу с готовыми изображениями (фотошоп). Системы векторной графики предназначены для создания графических объектов (CorelDrow), а системы фрактальной графики позволяют создавать объемные изображения, которые можно поворачивать и рассматривать под разными ракурсами (3D-Max).
|
|
Структуры данных. Файловые структуры.
Существуют три основных типа структур данных:
· линейная;
· табличная;
· иерархическая.
При создании любой структуры данных решается два вопроса:
1. Как разделяются элементы данных между собой?
2. Как разыскиваются необходимые элементы?
Любой информационный объект (например, отдельный документ), хранящийся во внешней памяти и имеющий название называется файлом (именованная последовательность байтов).
Информация о файлах (название, размеры, время создания, место размещения во внешней памяти) хранится в каталогах.
Каталог – это таблица, в каждой строке которой содержится информация о каком-либо файле или другом каталоге. При записи файлов сведения о них автоматически записываются в те каталоги, которые указал пользователь. Каждый файл или каталог имеет название, состоящее из двух частей, разделенных точкой. Левая – имя, правая – расширение. Расширение вместе с точкой может отсутствовать. В названии не рекомендуется использовать специальные знаки (., - и т.п.). Рекомендуется для удобства работы со списками файлы именовать с указанием расширений, а каталоги без расширений.
Линейные структуры.
Линейные структуры – это хорошо знакомы нам списки. Список – это простейшая структура данных, отличающаяся тем, что каждый элемент данных однозначно определяется своим номером в массиве. Проставляя номера на отдельных страницах рассыпанной книги, мы создаём структуру списка. Обычный журнал посещаемости занятий, например, имеет структуру списка, поскольку все студенты группы зарегистрированы в нем под своими уникальными номерами. Мы называем номера уникальными потому, что в одной группе не могут быть зарегистрированы два студента с одним и тем же номером.
|
|
В журнале посещаемости, например, каждый элемент списка заносится с новой строки, т.. разделителем является конец строки. Тогда нужный элемент можно разыскать по номеру строки.
Разделителем может быть и какой-нибудь специальный символ. Нам хорошо известны разделители между словами – пробелы. Разделителем предложения является точка. Можно использовать символ «*» (в рассмотренном классном журнале). Тогда список выглядел бы так:
Аистов Александр Алексеевич*Бобров Борис Борисович*…*Сорокин Сергей Семенович.
В этом случае для розыска элемента с номером n надо просмотреть список, начиная с самого начала, и пересчитать встретившиеся разделители. Когда будет отсчитано n – разделителей, начнется нужный элемент. Он закончится, когда будет встречен следующий разделитель.
Ещё проще можно действовать, если все элементы списка имеют равную длину. В этом случае разделители в списке вообще не нужны. Для розыска элемента с номером n надо просмотреть список с самого начала и отсчитать a(n-1) символ, где a – длина этого элемента. Со следующего символа начнётся нужный элемент. Его длина тоже равна a, поэтому конец определить не трудно.
Векторы данных – списки, состоящие из элементов равной длины.
Линейные структуры данных – это упорядоченные структуры, в которых адрес элемента однозначно определяется его номером.
Табличные структуры.
Например: таблица умножения.
Табличные структуры отличаются от списочных тем, что элементы данных определяются адресом ячейки, которая состоит не из одного параметра, как в списках, а из нескольких.
Для таблицы умножения, например, адрес ячейки определяется номерами строки и столбца. Нужная ячейка находится на их пересечении, а элемент выбирается из ячейки.
При хранении табличных данных количество разделителей должно быть больше, чем для данных, имеющих структуру списка.
Если нужно сохранить таблицу в виде длинной символьной строки, используют один символ – разделитель между элементами, принадлежащими одной строке и др. разделитель для определения строк, например так:
Меркурий*0,39*0,056**0#Венера*Марс*1,51*0,1*2#...
Для розыска элемента, имеющего адрес ячейки (m, n), надо просмотреть набор данных с самого начала и пересчитать внешние разделители. Когда будет отсчитан m – разделитель, надо пересчитать внутренние разделители. После того как будет найден n-1 разделитель, начнется нужный элемент. Он закончится, когда будет встречен любой очередной разделитель.
Планета | Расстояние до Солнца | Относительная масса | Количество спутников |
Меркурий | 0,39 | 0,056 | |
Венера | 0,67 | 0,88 | |
Земля | 1,0 | 1,0 |
Ещё проще, если все элементы таблицы имеют равную длину. Такие таблицы называют матрицами. В данном случае разделители не нужны, поскольку все элементы имеют равную длину и количество их известно. Для розыска элемента с адресом (m, n) в матрице, имеющей М строк и N столбцов, надо просмотреть её с самого начала и отсчитать a|N (m-1) + (n-1)| символ, где a – длина одного элемента. Со следующего символа начнется нужный элемент. Его длина тоже равна a, поэтому его конец определить нетрудно.
Табличные структуры данных (матрицы) – это упорядоченные структуры, в которых адрес элемента определяется номером строки и номером столбца, на пересечении которого находится ячейка, содержащая искомый элемент.