Кодирование графической информации

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

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

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

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

Программные системы, ориентированные на растровую графику предназначены на работу с готовыми изображениями (фотошоп). Системы векторной графики предназначены для создания графических объектов (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, поэтому его конец определить нетрудно.

Табличные структуры данных (матрицы) – это упорядоченные структуры, в которых адрес элемента определяется номером строки и номером столбца, на пересечении которого находится ячейка, содержащая искомый элемент.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: