Кіріспе
Цифрлық суреттерді компьютерлік негізде жасау
2D компьютерлік графика – компьютерлік негізде цифрлық суреттерді жасау, көбінесе екі өлшемді модельдерден (мысалы, 2D геометриялық модельдер, мәтін және цифрлық суреттер) және оларға тән әдістер арқылы жүзеге асырылады. Бұл осы әдістерді қамтитын компьютерлік ғылым саласына немесе модельдердің өзіне қатысты болуы мүмкін. 2D компьютерлік графика негізінен дәстүрлі баспа және сызу технологияларында дамыған қолданыстарда қолданылады, мысалы типография, картография, техникалық сызу, жарнама және т.б. Осындай қолданыстарда екі өлшемді кескін нақты әлемдегі нысанның бейнесі ғана емес, сонымен қатар қосымша семантикалық құндылығы бар тәуелсіз туынды; сондықтан екі өлшемді модельдерге басымдық беріледі, себебі олар 3D компьютерлік графикаға қарағанда кескінді тікелей басқаруға мүмкіндік береді (олардың тәсілі типографияға, фотографияға қарағанда жақын). Көптеген салаларда, мысалы, үстелдік басылымдарда, инженерлік және бизнес жүйелерінде, 2D компьютерлік графика әдістеріне негізделген құжаттың сипаттамасы, сәйкес цифрлық кескінен 1/1000 немесе одан да көп есе кіші болуы мүмкін. Бұл бейнелеу әртүрлі шығыс құрылғыларына сәйкес әртүрлі ажыратымдылықта көрсетілуі мүмкін болғандықтан, икемдірек болып табылады. Осы себептерге байланысты құжаттар мен иллюстрациялар көбінесе 2D графикалық файлдар түрінде сақталады немесе жіберіледі. 2D компьютерлік графика 1950 жылдары векторлық графикалық құрылғылар негізінде пайда болды. Келесі онжылдықтарда олардың орнын негізінен растрлық құрылғылар басты. PostScript тілі және X Window System протоколы осы саладағы маңызды жетістіктер болды. 2D графикалық модельдер геометриялық модельдерді (векторлық графика деп те аталады), цифрлық суреттерді (растрлық графика деп те аталады), мәтінді (мазмұны, қаріп стилі мен мөлшері, түсі, орны және бағыты бойынша анықталады), математикалық функциялар мен теңдеулерді және тағы да басқаларын біріктіре алады. Бұл компоненттер аударма, айналу және масштабтау сияқты екі өлшемді геометриялық түрлендірулер арқылы өзгертілуі және басқарылуы мүмкін. Объектіге бағытталған графикада кескін өзін-өзі көрсету әдісімен жабдықталған объект арқылы жанама түрде сипатталады – бұл сурет пиксельдеріне кез келген алгоритм арқылы түстерді тағайындайтын процедура. Күрделі модельдер объектіге бағытталған бағдарламалау парадигмаларында қарапайым объектілерді біріктіру арқылы құрылуы мүмкін.
Негізгі мәліметтер (геометрия)
Евклидтік геометрияда трансляция (геометрия) әрбір нүктені белгіленген бағытта тұрақты қашықтыққа жылжытады. Трансляцияны қатаң қозғалыс ретінде сипаттауға болады: басқа қатаң қозғалыстарға айналымдар мен көріністер жатады. Трансляцияны әрбір нүктеге тұрақты вектор қосу ретінде немесе координаталар жүйесінің бастапқы нүктесін жылжыту ретінде де қарастыруға болады. Трансляция операторы – егер v тұрақты вектор болса, онда Tv трансляциясы Tv(p) = p + v ретінде әрекет етеді. Егер T трансляция болса, онда T функциясы астындағы A жиынының бейнесі A-ның T бойынша трансляциясы болады. Tv бойынша A-ның трансляциясы көбінесе A + v деп жазылады. Евклид кеңістігінде кез келген трансляция изометрия болып табылады. Барлық трансляциялардың жиыны трансляция тобы T-ні құрайды, ол кеңістіктің өзіне изоморфты және Евклид тобы E(n)-нің нормальды кіші тобы. E(n) мен T-нің факторлық тобы O(n) ортогоналды тобына изоморфты:
E(n) / T ≅ O(n).
If v is a fixed vector, then the translation Tv will work as Tv(p) = p + v.
If T is a translation, then the image of a subset A under the function T is the translation of A by T. The translation of A by Tv is often written A + v.
In a Euclidean space, any translation is an isometry. The set of all translations forms the translation group T, which is isomorphic to the space itself, and a normal subgroup of Euclidean group E(n ). The quotient group of E(n ) by T is isomorphic to the orthogonal group O(n ):
E(n ) / T ≅ O(n ).
Айналу
Сызықтық алгебрада айналу матрицасы — Евклид кеңістігінде айналуды жүзеге асыру үшін қолданылатын матрица. xy картезиандық жазықтықтағы нүктелерді картезиандық координаттар жүйесінің төңірегінде θ бұрышына қарсы сағат тілі бағытында айналдырады. Айналу матрицасы R арқылы айналуды орындау үшін, әрбір нүктенің орны v бағана векторы түрінде көрсетілуі керек, онда нүктенің координаттары болады. Айналған вектор Rv матрицалық көбейту арқылы алынады. Матрицалық көбейту нөлдік векторға (яғни координаттардың бастапқы нүктесіне) әсер етпейтіндіктен, айналу матрицаларын координаталар жүйесінің бастапқы нүктесін айналдыруды сипаттау үшін ғана қолдануға болады. Айналу матрицалары мұндай айналымдардың қарапайым алгебралық сипаттамасын ұсынады және геометрия, физика және компьютерлік графикадағы есептеулерде кеңінен қолданылады. 2 өлшемді кеңістікте айналуды айналу бұрышы θ арқылы қарапайым түрде сипаттауға болады, бірақ оны 2 қатар және 2 бағаннан тұратын айналу матрицасының 4 элементі арқылы да көрсетуге болады. 3 өлшемді кеңістікте кез келген айналуды берілген бұрышпен айналу осінің бойымен айналу деп қарастыруға болады (Эйлердің айналу теоремасына қараңыз), сондықтан оны бұрышпен және 3 элементі бар вектормен қарапайым түрде сипаттауға болады. Дегенмен, оны 3 қатар және 3 бағаннан тұратын айналу матрицасының 9 элементі арқылы да көрсетуге болады. Айналу ұғымы 3 өлшемнен жоғары өлшемдерде жиі қолданылмайды; айналу ығысу ұғымы бар, оны матрицамен көрсетуге болады, бірақ оған сәйкес бір ғана ось немесе бұрыш жоқ. Айналу матрицалары — нақты элементтері бар шаршы матрицалар. Нақтырақ айтқанда, оларды 1-ге тең детерминанты бар ортогоналды матрицалар ретінде сипаттауға болады: n өлшемдегі мұндай матрицалардың жиыны топты құрайды, ол арнайы ортогоналды топ SO(n) деп аталады.
The set of all such matrices of size n forms a group, known as the special orthogonal group SO(n).
Координаттар жүйесінің стандартты емес бағыты
Егер стандартты оң жақ карталық координаттар жүйесі қолданылса, x осі оңға, y осі жоғары қарай бағытталған болса, айналу R(θ) сағат тіліне қарсы бағытта болады. Егер сол жақ карталық координаттар жүйесі қолданылса, онда x оңға бағытталған, ал y төменге бағытталса, R(θ) сағат тілімен болады. Мұндай стандартты емес бағдарлар математикада сирек қолданылады, бірақ 2D компьютерлік графикада жиі кездеседі, онда көбінесе координаталардың бастапқы нүктесі сол жақ жоғарғы бұрышта орналасқан және y осі экранның немесе беттің төменгі жағына қарай бағытталған болады. Айналу матрицасы арқылы туындайтын айналу бағытын өзгерте алатын басқа да конвенциялар туралы төменде қараңыз.
Кеңейтілген түсті үлгілер
Мәтін, пішіндер және сызықтар клиент белгілеген түспен көрсетіледі. Көптеген кітапханалар мен графикалық карталар түс градиенттерін ұсынады, олар тегіс өзгеретін фондар, көлеңке эффектілері және т.б. жасауға ыңғайлы. (Сондай-ақ Gouraud көлеңкелеуіне қараңыз). Пиксельдердің түсін текстурадан, мысалы, цифрлық кескінден алуға болады (осылайша экрандағы түстерді және бұрын тек мультфильмдерде ғана кездесетін клеткалы бояуды имитациялауға болады). Пикселді белгілі бір түспен бояу әдетте оның бұрынғы түсін жаңа түспен алмастырады. Дегенмен, көптеген жүйелер мөлдір және жартылай мөлдір түстермен бояуды қолдайды, бұл тек бұрынғы пикселдің мәнін өзгертеді. Екі түс күрделірек әдістермен де біріктірілуі мүмкін, мысалы, олардың биттік эксклюзивті немесе (XOR) операциясын есептеу арқылы. Бұл әдіс түсті инверсиялау немесе түсті кері қайтару деп аталады және графикалық интерфейстерде бөліп көрсету, резеңке тартқыш сызу және басқа да уақытша бояулар үшін жиі қолданылады, себебі бірдей пішіндерді бірдей түспен қайта бояу бастапқы пикселдердің мәнін қалпына келтіреді.
Қабаттар
2D компьютерлік графикада қолданылатын модельдер әдетте үш өлшемді пішіндерді немесе жарық, көлеңке, шағылысу, сыну сияқты үш өлшемді оптикалық құбылыстарды қамтамасыз етпейді. Дегенмен, олар әдетте бірнеше қабатты (тұжырымдамалық тұрғыдан сия, қағаз немесе пленка; мөлдір емес, жартылай мөлдір немесе мөлдір) белгілі бір ретпен жинақтай алады. Реттеу әдетте бір санмен анықталады (қабаттың тереңдігі немесе көрерменнен қашықтығы). Қабатталған модельдер кейде "2½D компьютерлік графика" деп аталады. Олар фильм мен қағазға негізделген дәстүрлі сызу және басып шығару техникаларын, мысалы, кесу және қоюды имитациялауға мүмкіндік береді, сондай-ақ пайдаланушыға басқа қабаттарға әсер етпей кез келген қабатты өңдеуге мүмкіндік береді. Осы себептерге байланысты олар көптеген графикалық редакторларда қолданылады. Қабатталған модельдер күрделі суреттердің кеңістіктік антиалиазингін жақсартуға және митерленген түйіндер мен жұп-тақ ереже сияқты кейбір техникалар үшін дұрыс модельді ұсынуға мүмкіндік береді. Қабатталған модельдер сонымен қатар пайдаланушыға құжатты қарау немесе басып шығару кезінде қажетсіз ақпаратты жасыруға мүмкіндік береді, мысалы, картадан жолдар немесе теміржолдар, интегралды схемадан белгілі бір процестік қабаттар немесе іскерлік хаттан қолмен жазылған түсіндірмелер. Қабатқа негізделген модельде мақсатты кескін әр қабатты виртуалды кенепке азайған тереңдік ретімен "бояу" немесе "жабыстыру" арқылы жасалады. Тұжырымдамалық тұрғыдан алғанда, әр қабат бастапқыда өздігінен рендерингтеледі, нәтижесінде қажетті ажыратымдылықтағы сандық кескін пайда болады, содан кейін ол пиксел бойынша кенепке боялады. Әрине, қабаттың толық мөлдір бөліктерін рендерингтеудің қажеті жоқ. Рендеринг пен бояу параллель түрде жүргізілуі мүмкін, яғни әр қабат пикселі рендеринг процедурасымен жасалғаннан кейін бірден кенепке боялады. Күрделі геометриялық нысандардан (мәтін немесе полилиниялар сияқты) тұратын қабаттарды қарапайым элементтерге (сәйкесінше әріптер немесе сызық сегменттері) бөлуге болады, содан кейін олар белгілі бір ретпен жеке қабаттар ретінде боялады. Дегенмен, бұл шешім екі элемент бір пикселге жапқанда жағымсыз алиасинг артефактілерін тудыруы мүмкін. Сондай-ақ, Портативті құжат форматы#Қабаттарды қараңыз.
Бағдарламалық жасақтама
Көптеген графикалық пайдаланушы интерфейстері (GUI), соның ішінде macOS, Microsoft Windows немесе X Window System, негізінен 2D графикалық тұжырымдамаларға негізделген. Мұндай бағдарламалық қамтамасыз ету компьютермен өзара әрекеттесу үшін визуалды ортаны қамтамасыз етеді және әдетте пайдаланушыға әртүрлі қосымшаларды ажыратуға көмектесетін терезе менеджерінің кейбір түрлерін қамтиды. Жеке бағдарламалық жасақтамалардың ішіндегі пайдаланушы интерфейсі де, әдетте, 2D болып табылады, бұл, ішінара, ең көп таралған енгізу құрылғыларының, мысалы, тышқанның, қозғалыстың екі өлшемімен шектелгендігіне байланысты. 2D графикалық элементтер принтерлер, графикалық машиналар, парақ кесу машиналары және т.б. сияқты басқару перифериясында өте маңызды. Олар сонымен қатар көптеген ертедегі бейнеойындарда қолданылған; және әлі күнге дейін солитер, шахмат, маджонг және т.б. сияқты карталық және үстел ойындарында қолданылады. 2D графикалық редакторлар немесе сурет салу бағдарламалары – 2D компьютерлік графикалық примитивтерді тікелей манипуляциялау (тышқан, графикалық планшет немесе ұқсас құрылғы арқылы) арқылы суреттер, диаграммалар мен иллюстрациялар жасау үшін қолданбалық деңгейдегі бағдарламалық қамтамасыз ету. Бұл редакторлар әдетте геометриялық примитивтерді, сондай-ақ цифрлық бейнелерді ұсынады; кейбіреулері тіпті процедуралық модельдерді қолдайды. Иллюстрация әдетте ішкі жағынан қабатты модель ретінде бейнеленеді, көбінесе редакциялауды ыңғайлы ету үшін иерархиялық құрылыммен. Бұл редакторлар әдетте қабаттар мен примитивтер бастапқы түрінде бөлек сақталатын графикалық файлдарды шығарады. 1984 жылы Macintosh компьютерлер желісімен бірге енгізілген MacDraw осы кластың алғашқы үлгісі болды; соңғы мысалдар – коммерциялық өнімдер Adobe Illustrator және CorelDRAW, xfig немесе Inkscape сияқты тегін редакторлар. Сондай-ақ, электрлік, электрондық және VLSI диаграммалары, топографиялық карталар, компьютерлік қаріптер және т.б. сияқты белгілі бір суреттер үшін мамандандырылған көптеген 2D графикалық редакторлар бар. Сурет редакторлары, негізінен, еркін қол суреті/салуы және сигнал өңдеу операциялары арқылы цифрлық суреттерді өңдеуге маманданған. Олар әдетте тікелей сурет салу парадигмасын қолданады, онда пайдаланушы виртуалды қаламдарды, щеткаларды және басқа да еркін қолды көркемдік құралдарды виртуалды кенепке бояуды қолдануға басқарады. Кейбір кескін редакторлары бірнеше қабатты модельді қолдайды; дегенмен, сигнал өңдеу операцияларын қолдау үшін, әр қабатты әрдайым цифрлық кескін ретінде бейнелейді. Сондықтан редактор ұсынған кез келген геометриялық примитивтер бірден пиксельге айналып, кенепке боялады. Растрлық графикалық редактор атауы кейде векторлық графиканы да басқаратын жалпы редакторларға қарама-қайшы осы әдісті қолдану үшін қолданылады. Алғашқы танымал кескін редакторларының бірі Apple компаниясының MacPaint, MacDraw-дың серігі болды. Қазіргі мысалдар – тегін GIMP редакторы және коммерциялық өнімдер Photoshop және Paint Shop Pro. Бұл топқа медицина, қашықтан зондтау, цифрлық фотосурет және т.б. салалар бойынша мамандандырылған редакторлар кіреді.