2. Векторні формати зображень
Ці графічні формати служать для збережених зображень у вигляді сукупності геометричних примітивів — ліній, дуг, прямокутників, еліпсів тощо. Графічні формати цього типу складаються або зі списку примітивів, або містять у собі набір інструкцій, команд для побудови примітивів. Не виключається й комбінація цих способів. У векторному вигляді зберігають інформацію системи автоматизованого проектування, наприклад, AutoCAD, програми, що створюють ілюстративну графіку, такі як CorelDraw. Векторні плоттери обробляють зображення тільки у векторних форматах. Векторні формати можуть містити або впроваджені у файл растрові об'єкти, або посилання на растровий файл (технологія ОРІ).
Векторні зображення зустрічаються в Інтернеті не дуже часто, хоча зараз досить швидко поширюється формат Shockwave Flash фірми Macromedia. Цей формат спеціально розроблявся для використання в Інтернеті, він здатний зберігати гіпертекстові посилання, графіку, анімацію тощо. Для перегляду Flash-графіки потрібний спеціальний програмний модуль, який вільно поширює фірма Macromedia.
При передачі даних з одного векторного формату в іншій, виникають ускладнення, пов'язані з використанням програмами різних описів графічних примітивів, різних алгоритмів при побудові векторних об'єктів і опису растрів. Фірмою Aldus розроблена технологія ОРІ (Open Prepress Interface), яка дозволяє імпортувати замість оригінальних файлів їхні образи, створюючи в програмі лише копію низької роздільності (ескіз) і посилання на оригінал. У процесі друку на принтері ескізи замінюються на оригінальні файли. Застосування ОРІ дає можливість заощаджувати ресурси комп'ютера (насамперед, пам'ять) і підвищувати його продуктивність. ОРІ широко використовується при роботі з імпортованими графічними файлами, зокрема, у програмах FreeHand і QuarkXPress [94].
Формат DXF
Формат DXF (Drawing Exchange Format) розроблено фірмою AutoDesk у 1982 році для обміну кресленнями та іншими графічними документами в середовищі AutoCAD. Незважаючи на вік цього формату та його недоліки, DXF зараз підтримується багатьма програмами як формат обміну даними.
Файл DXF складається з пар
<код групи>
<команда>
Код групи пояснює те, що міститься в наступному рядку. Наприклад, послідовність пар
0 (означає початок нового елементу) LINE
10 (далі буде значення першої координати X) 12.354
20 (перша координата Y) -34
11 (наступна координата X) 23.08
21 (наступна координата Y) 5.7
визначає лінію.
Наведемо декілька кодів групи (табл. 6.21).
Загальна структура файлу DXF така:
Кожна секція описується так:
Головним недоліком формату DXF можна вважати великий об'єм файлів. У середовищі системи AutoCAD для роботи з документами використовується більш компактний формат — DWG, однак він є внутрішнім форматом, його не розуміють інші програми.
Формат MIF-MID
Тут ми дещо відхилимося від тематики "класичної комп'ютерної графіки" й розглянемо приклад векторного формату, який використовується в геоінформаційних системах (ГІС). Ці системи описують просторові об'єкти сукупністю метричних та атрибутивних (семантичних) даних. Формат MIF-MID є найпопулярнішим векторним форматом обміну даними для ГІС. Він розроблений фірмою MapInfo для власної ГІС, однак зараз використовується майже усіма ГІС як формат експорту-імпорту.
Опис просторових об'єктів у цьому форматі складається з двох файлів — *.MIF та *.МID. Файл із розширенням MIF містить загальний опис та координати вузлових точок об'єктів. Об'єкти можуть бути точковими, лінійними або площинними. Графічні примітиви: Arc, Ellipse, Line, Pline, Point, Rect, Region, Roundrect та Text.
Кольори та стилі показу об'єктів позначаються записами Brash, Pen та Symbol.
Заголовок файлу MIF містить таку інформацію:
• версія формату;
• кодова сторінка для символів;
• символ-роздільник для файлу MID;
• опис системи координат;
• кількість та формат стовпців таблиці атрибутів.
У файл MID (не плутати з файлами формату MIDI) записується таблиця атрибутивних даних. Один рядок файлу містить атрибути відповідного об'єкта, розділені спеціальним символом-роздільником (найчастіше комою).
Файли MIF та MID є текстовими файлами ASCII.
Розглянемо приклад опису об`єктів. На рис. 6.17 показано сім простеньких об'єктів.
Тут маємо два точкових об'єкти ("пункті" та "пункт2"), позначених умовними знаками — прапорець та зірка. Три лінійних об'єкти — лінія, полілінія (3 вузли) та мультиполілінія (декілька поліліній). Два площинних об'єкти — чотирикутник та регіон. Регіон тут у вигляді двох островів, один з яких із отвором. Для об'єктів записані атрибутивні дані у відповідних рядках таблиці.
Тепер надамо опис цих об'єктів у файлах MIF, MID. Зміст файлу MIF:
3. Засобами бібліотеки Opengl забезпечити зміну кольору створеного трикутника при подвійному натисненні лівої кнопки миші
(мал. №1 )
(мал. №2 )
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
OpenGL;
type
TfrmGL = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
hrc: HGLRC;
h : GLfloat;
end;
var
frmGL: TfrmGL;
Vert:array[1..6,1..10] of GLfloat;
mx,my:byte; //коефіцієнти збільшення/зменшення
implementation
{$R *.DFM}
procedure TfrmGL.FormPaint(Sender: TObject);
begin
wglMakeCurrent(Canvas.Handle, hrc);
glViewPort (0, 0, ClientWidth, ClientHeight);
glClearColor (0.5, 0.5, 0.75, 1.0);
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (2.0, 0.0, 0.8); // текущий цвет примитивов
glBegin (GL_TRIANGLES);
glVertex3f (-1, -1, h);
glVertex3f (-1, 1, h);
glVertex3f (1, 0, h);
glEnd;
SwapBuffers(Canvas.Handle); // содержимое буфера - на экран
wglMakeCurrent(0, 0);
end;
procedure SetDCPixelFormat (hdc : HDC);
var
pfd : TPixelFormatDescriptor;
nPixelFormat : Integer;
begin
FillChar (pfd, SizeOf (pfd), 0);
pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;
nPixelFormat := ChoosePixelFormat (hdc, @pfd);
SetPixelFormat (hdc, nPixelFormat, @pfd);
end;
procedure TfrmGL.FormCreate(Sender: TObject);
begin
SetDCPixelFormat(Canvas.Handle);
hrc := wglCreateContext(Canvas.Handle);
h := 0.0;
end;
procedure TfrmGL.FormDestroy(Sender: TObject);
begin
wglDeleteContext(hrc);
end;
procedure TfrmGL.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If Key = VK_ESCAPE then Close;
If Key = VK_SPACE then
begin
If ssShift in Shift
then h := h + 1
else h := h - 1;
Caption := Floattostr (h);
Refresh
end;
end;
procedure TfrmGL.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = '-' then mx:=mx+1;
if key = '+' then mx:=mx-1;
FormPaint(Sender);
end;
end.
4. Для попереднього практичного завдання вашого варіанту забезпечити операцію маштабування використовуючи клавіши + та -.
Потім для точного виконання завдання виконати слідуючий алгоритм дій при цьому використати згідно варіанту клавіші «+» та «-», що по умові завдання виконують наближення та відділення фігури на фоні:
procedure TfrmGL.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = '-' then mx:=mx+1;
if key = '+' then mx:=mx-1;
InvalidateRect(Handle, nil, False);
end;
end.
Список використаної літератури:
1. С.В.Глушаков, Г.А.Крабе Компютерная графика, Харьков 2002
2. Блінова Т.О., Порєв В.М. Комп’ютерна графіка / За ред. В.М.Горєва. – К.: Видавництво “Юніор”, 2004.
3. OpenGl, технология ставшая символов, Учебник в примерах.
4. Конспект лекцій.
5. Мережа Інтернет.
... і господарства і ін. Найпоширенішими є учбово-виробничі майстерні. В таблиці 1.5 представлений перелік необхідних майстерних, кабінетів і лабораторій, які необхідні для вивчення теми: «Векторний графічний редактор Corel Draw» Таблиця 1.5 – Перелік необхідних майстерень, кабінетів і лабораторій по предметах професійно-технічного циклу. Кабінети Лабораторії 1. Основ програмування. 2. ...
... використовують цей формат. Формат X Формат X— це "рідний" формат DirectX для тривимірних моделей. Він використовувався тільки Direct3D:RM, але й Direct3D:IM можна було "примусити" працювати з цим форматом. Direct3D:Retained Mode (Direct3D:RM) — це набір АРІ, створений для легшого програмування тривимірної графіки (порівняно з більш низькорівневим Direct3D:Immediate Mode (Direct3D:IM), на ...
... і Інтернету. Ця версія оптимізована для використання з новітніми операційними системами Windows і продовжує традиції розвитку професійних графічних пакетів для ПК. 3. Способи та процеси векторної трасировки растрових зображень в Corel Drow Взагалі, якщо отримати інструмент для переведення вектора в растр (трасування) без втрат якості – це була б казка! Це вічна проблема пакету Corel Drow, ...
... ів» (Tools Palette), яка дозволяє (як у PageMaker) переключатися між виділеними рамками та редагувати їх вміст. При запуску програми ця панель не з’являється і її потрібно спеціально викликати із меню «Графика» (Graphics) — погодьтесь, це досить неочікуване місце для цієї команди. Програма підтримує тільки один рівень відкату, у той час як багато інших пакетів підтримують до ста таких рівнів. ...
0 комментариев