11 февруари 2011, петък

Прост графичен пакет

Основни изисквания и характеристики. Координатни системи 2D и 3D. Основни функции за изчертаване на двумерни полилинии, полимаркери, запълнени области и текст.
Създаването на програми, които графично представят резултати от компютърни изчисления чрез средствата на компютърната графика се базира на използването на така наречените графични пакети функции. Те се реализират обикновено в рамките на съответния програмен във вид на графична библиотека от подпрограми (функции), реализиращи основните алгоритми на компютърните графика. В езика C++ тази библиотека се съдържа в заглавния файл graphics.h. Използването на подпрограмите, реализиращи различни графични алгоритми, изисква включването на графичната библиотеката (заглавния и файл) заедно с другите необходими за приложението библиотеки.
Графична библиотека
Според предназначението си функциите в графичната библиотека graphics.h могат да се определят в няколко групи. Основните групи графични функции са:
- инициализиращи графичния режим;
- проверяващи и променящи назначените параметри на графичното представяне;
- свързани с извеждането на текстове;
- изобразяващи графични примитиви и стандартни двумерни и тримерни обекти;
- съхраняване и възстановяване на изображения.
Основни двумерни графични функции:
Функции за работа с текстове в графичен режим
settextstyle(font, direction, charsize) - назначава стил (font) на символите , посока на извеждане (direction) и височина (charsize) на буквите при последващо извеждане на текст в графичен режим.
outtext(string) - извежда текста, указан с параметър (string) спрямо текущата позиция на графичния курсор.
outtextxy(x,y,string) - извежда текста, указан с параметър (string) спрямо точка, зададена с координати (х,у).
Функции изобразяващи основни графични обекти
putpixel(x, у, color) - изобразява пиксел с указаните координати (х,у) и цвят (color).
moveto(x,y ) - премества графичния курсор до точка с координати (х,у).
line(x1,y1,x2,y2) - изобразява отсечка между две точки по зададените им координати съответно (x1,y1) и (х2,у2).
lineto(x,y) - изобразява отсечка между текущата позиция на графичния курсор и точка с координати (х,у).
rectangle(x1,y1,x2,y2) - изобразява правоъгълник по зададени координати на горен ляв ъгъл (x1,y1) и долен десен (х2,у2) ъгъл.
bar(x1,y1,x2,y2) - изобразява защрихован правоъгълник по зададени координати на горен ляв ъгъл (х1,у1) и долен десен (х2,у2) ъгъл.
circle(x,y, R) - изобразява окръжност с център (х,у) и радиуси R.
arc(x,y, sangle, endangle, R) - изобразява дъга от окръжност с център (х,у) и радиуси R. Дъгата от окръжността има за начало ъгъла (sangle) и за край ъгъла (endangle).
pieslice(x,y, sangle, endangle, R) - изобразява защрихован сектор от окръжност с център (х,у) и радиуси R. Дъгата на сектора има за начало ъгъла (sangle) и за край ъгъла (endangle).
ellipse(x,y, sangle, endangle, Rx, Ry) -изобразява дъга от елипса с център (х,у) и радиуси Rx, Ry. Дъгата има за начало ъгъла (sangle) и за край ъгъла (endangle).
fillelipse(x,y, Rx, Ry) - изобразява защрихована елипса с център (х,у) и радиуси Rx, Ry.
sector(x,y, sangle, endangle, Rx, Ry) - изобразява защрихован сектор от елипса с център (х,у) и радиуси Rx, Ry. Дъгата на сектора има за начало ъгъла (sangle) и за край ъгъла (endangle).
Ако вие имате за цел да генерирате подобни графики да кажем например в бизнес система или софтуер, които автоматично създава графични анализи и статистики, като да вземем една ЕРП система или друг бизнес софтуерен продукт, вие ще трябва да използвате всички горепосочени принципи и формули за работа.
Представянето на генерирания графичен обект трябва да се осъществява в някаква координатна система. В КГ са определени и използват няколко КС. Онази КС, която представя обекта в неговите реални размери, например когато става дума за компютърно проектиране на бъдещи реални обекти, се нарича световна КС (СКС). Описвайки обекта в СКС чрез съвкупност от изходни елементарни графични елементи, наречени графични примитиви, системата за КГ трябва да формира изображение на екрана на дисплея. За целта тя пренася независимите от изходното устройство световни координати върху координатите, зависещи от това устройство и използвани от апаратната част на дисплейния процесор. Така се дефинира и така наречената графична координатна система (ГКС). Обикновено преходът от СКС към ГКС се осъществява автоматично от програмните средства на системите за КГ. Съществува и още една условна КС, наречена нормализираща (НКС), която има само логически характер и представя графичната изходна информация във вид, независещ от изходното устройство. Това означава, че всички графични координати на генерирания обект се поместват в границите от 0 до 1 както по х, така и по у. Обикновено в графичните системи за проектиране, изградени върху така наречените прости графични пакети от функции за генериране на графични примитиви, НКС има начало долу, в ляво на екрана и преходът от СКС към НКС става автоматично чрез специална функция на пакета, а след това вторият преход от НКС към ГКС става също автоматично от специална функция на графичния пакет. Понякога тези две трансформации са обединени в една.
Изобразяването на обекти от тримерното световно пространство върху двумерната, така наречена видова, графична или още картинна равнина от видовото пространство на графичното изходно пространство следва да се осъществява чрез въвеждане на още няколко условности или съглашения. Те са приети в КГ относно координатните системи и изобразяваните в тях обекти. Обикновено се предполага, че тримерните обекти се проектират върху двумерната видова равнина с помощта на два вида проекции:
а) паралелна, при която обектът се пренася паралелно върху двумерната видова равнина, която мислено е разположена успоредно на равнината хОу от съответната координатна система, в която е разположен генерирания графичен обект. Това най-често е СКС.
б) централна, при която обектът се изобразява върху двумерната видова равнина така, както би се виждал той от даден център на проекция. Централната проекция е необходима за създаване на перспектива при моделирането на тримерна илюзия на представяните тримерни обекти върху двумерна графична равнина.
Освен това е нужно да бъде зададена точка Р, от която се формира проекцията. Тя се задава със своите световни координати Xp,Yp,Zp. При паралелната проекция това ще бъде точка, през която ще преминава права линия, успоредна на оста z. На нея пък ще бъдат успоредни всички линии, проектиращи контура на обекта върху видовата равнина. Последният ще се пренесе по такъв начин върху двумерната видова равнина като ще се създаде илюзия за тримерния му вид. В качеството на пример на интерпретация на разположението на трите оси относно двумерната видова равнина в зависимост и от стойностите на точката на виждане на обекта при неговото проециране.
а)Дясно ориентирана КС , при която осите преминават една в друга след завъртане на 900 обратно на часовниковата стрелка;

б)Ляво ориентирана КС, при която осите преминават една в друга след завъртане на 900 по посока на часовниковата стрелка.

Още няколко варианта на разположение на осите в зависимост от стойностите на координатите на точката на виждане за дясно ориентирана координатна система.

Обикновено генерирането на тримерни обекти се осъществява за ляво ориентирана КС, с положителни стойности на координатите на точката на виждане.

0 коментара:

Публикуване на коментар