Графикалық функциялар


ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ

“Есептеу техникасы және

ақпараттық жүйе” кафедрасы

«С++ тілінде программалау» пәні бойынша

КУРСТЫҚ ЖОБА

Тақырыбы: «Графикалық режим жұмыс функциялары»

Орындаған: «Ақпараттық жүйелер»

мамандығының ___топ студенті

Тексерген:

Орал, 2013ж.

Мазмұны
Мазмұны: Кіріспе . . .
: 3
Мазмұны: 1 С++ программалау тіліндегі графикалық режим . . .
: 5
Мазмұны: 1. 1 Графикалық режимде сурет салу . . .
: 5
Мазмұны: 1. 2 Графикалық режимде суреттер салатын құралдар немесе канвалар . . .
: 7
Мазмұны: 1. 3 C++ Builder программалау ортасының графикалық мүмкіншіліктері . . .
: 8
Мазмұны: 2 С++ Builder программалау ортасында графикалық режим функцияларымен жұмыс . . .
: 17
Мазмұны: 2. 1 Паравоздың суретін салатын программаны құру . . .
: 17
Мазмұны: 2. 2 Тіктөртбұрыш пен эллипсті түрлі тәсілдермен бейнелеу және қылқаламдарды қолдану . . .
: 18
Мазмұны: 2. 3 Кеменің суретін салатын программа құру . . .
: 19
Мазмұны: 2. 4 С++ программалау тілінде мәтіндерді шығару . . .
: 21
Мазмұны: 2. 5 Графикалық режимде паралелопипедтің сурет салу . . .
: 22
Мазмұны: 2. 6 API функциясының көмегімен Borland C++ Builder ортасында графиканы программалау . . .
: 23
Мазмұны: Қорытынды . . .
: 25
Мазмұны: Қолданылған әдебиеттер тізімі . . .
: 27

Кіріспе

С++ программалау тілі заманауи обьектіге бағытталған программалауға бағыт беретін кілт болып табылады. Бұл тіл басқа программалау тілдері мен көптеген деректерді өңдеуге арналған заманауи құрылғылар тәуелді болып келетін концептуалды фрагментті қамтамасыз етеді.

1980 жылы Бьярна Страуструптың қабілеттілігінің арқасында ANSI - дің өкілі - С++ программалау тілі пайда болды. С++ тілі С тіліне қарағанда программистке дәстүрлі құрылымдық және объектілік бағытталған программаларды жасауға мүмкіндік береді. С++ тілі көмегімен профессионалды жоғары деңгейдегі программаларды жазуға болады. Қазіргі таңда C# және Java тілдері С++ программалау тілінің негізінде құрылған, олар бірдей базалық синтаксис пен өңдеу принциптерін қамтиды.

С++ тілі - тасымалданатын тіл. Бұл ортада жазылған қолданбалы программалар бір компьютерден екінші компьютерге оңай тасмалданады. Сонымен қатар тіл - оңай компиляцияланатын тіл болып табылады. Ол жүйелік программаларда пайдаланылады.

Программаның объектілік құрылымы ең алғаш күрделі жүйелерді имитациялық модульдеудің simula (ХХ ғасыр 60-шы жылдар) қолданған болатын. Объектілік тұрғыда программалаудың Delphi, C++ Builder Visual C++ құралдары кеңінен таралған.

Бұл курстық жұмыста С++ программалау тілінің графикалық режимінде графикалық объектілердің бейнеленуі үшін әр түрлі функциялар мен процедуралар қарастырылады.

Курстық жұмыстың тақырыбы - «Графикалық режим жұмыс функциялары». Курстық жұмыстың негізгі мақсаты: С++ программалау тілінде графикалық режимнің жұмыс функцияларының мүмкіндіктерін зерттеу. Мақсатқа жету үшін мынадай міндеттер орындалуы тиіс:

  • С++ программалау тілінде графикалық режимді зерттеу;
  • Графиканың толық мүмкіндіктерін тереңірек зерттеу;
  • Графикалық жүйені басқару функцияларын зерттеу;
  • С++ программалау тілінде обьектілер мен фигураларды салу;
  • Графиктің режимде тәжірибелік жұмыс ретінде есептер шығару.

Графикалық режимде минималды объект, бағдарламашы басқара алатын қорытынды болып «Пиксель» мен «Элемент» табылады. Пиксель бейнелерге қарағанда аз мөлшерде болады. Оның геометриялық өлшемесі монитордың шешімі арқылы анықталады. Монитордың шешімі әдетте былай беріледі: rx*ry, мұндағы rx-экрандағы пиксельдердің, ал ry-тігінен орналасқан пиксельдердің саны. Машықта өнімдік емес, кейбір шешімдердің белгілі мағыналары қолданылады.

Графикалық режимде жұмыс жасау барысында мына қағидаларды есте сақтау қажет:

  • Графикалық режимде экран нүктелердің жиынтығын білдіреді, олардың әрқайсысы 16 түстің біріне боялуы мүмкін;
  • Нүктенің координатасы солдан оңға қарай және жоғарыдан төменге қарай артады. Сол жақ жоғарғы нүктесі (0, 0) координатасына ие болса, оң жақ төменгі нүктенің координатасы (639, 479) тең;
  • Программа экранға графикалық фигураларды (сызық, шеңбер, тіктөртбұрыш) шығару үшін графикалық режимді іске қосу керек.


1 С++ программалау тіліндегі графикалық режим

1. 1 Графикалық режимде сурет салу

Деректерді экранға шығарудың түрлі тәсілдері бар. Қазір қарастырылып отырған GDI (Graphics Device Interface) интерфейсі ағылшын тілінен аударғанда «құрылғының графикалық интерфейсі» деп аталады. Windows-та құрылғылардың жанамасы (DC) деп аталатын тағы бір термин бар. Ол сурет салуда канваны белгілеу үшін қолданылады. Жанама құрылғымен API функциясының деңгейінде әрекеттесу келесіге негізделген. Барлық графикалық обьектілер Handle қасиетін қолданады, ол обьектінің дескрипторын құрайды. Содан жанама құрылғының дескрипторын алу керек. Кейін қажетті обьектілерді алу керек: қалам, қылқалам және қаріптер. Содан соң ғана суретті салуға болады, ал салып болғаннан кейін ұсталған ресурстарды босату керек.

HDC DC;

DC=GetDC(Handle) ;

HBRUSH Brush=CreateSolidBrush(RGB(0, 0, 255) ) ;

SelectObject(DC, Brush) ;

Ellipse(DC, 20, 20, 150, 250) ;

ReleaseDC(Handle, DC) ;

Графикалық суреттердің екі түрі бар: растрлық (bitmap) және векторлық. Растрлық графика экрандағы әрбір нүкте туралы ақпарат (нүктенің түсі) береді. Векторлық графика суретті сызықтар мен фигуралар жиыны ретінде сипаттайды.

Графикалық режимге көшудің кең таралған тәсілі режимді орнататын, рұқсатты да беретін әрі EGAVGA. BGI-ға жол сілтейтін initgraph функциясын қолдану болып табылады. Оның синтаксисі:

initgraph(*int far grdriver, *int far grmode, char *path) ;

Бірінші аргумент видеоадаптердің типін білдіреді. Ол сандық мәнді қабылдайды. Аргумент grdriver:

Кесте 1.

Видеоадаптердің типтері

Видеоадаптердің типі
Аргументтің мәні:
Видеоадаптердің типі: Автотану
Аргументтің мәні:: DETECT немесе 0
Видеоадаптердің типі: CGA
Аргументтің мәні:: 1
Видеоадаптердің типі: MCGA
Аргументтің мәні:: 2
Видеоадаптердің типі: EGA
Аргументтің мәні:: 3
Видеоадаптердің типі: EGA64
Аргументтің мәні:: 4
Видеоадаптердің типі: EGA-Mono
Аргументтің мәні:: 5
Видеоадаптердің типі: Тіркелгені
Аргументтің мәні:: 6
Видеоадаптердің типі: Mono Hercules
Аргументтің мәні:: 7
Видеоадаптердің типі: ATT400
Аргументтің мәні:: 8
Видеоадаптердің типі: VGA
Аргументтің мәні:: 9
Видеоадаптердің типі: PC3270
Аргументтің мәні:: 10

Екінші аргумент - графикалық режим, шешімділік беру болып табылады.

Кесте 2.

Графикалық режимнің аргументтік мәндері

Режим
Аргументтің мәні
Режим: VGA 640x200 16 түс (төменгі шешімділік)
Аргументтің мәні: 0
Режим: VGA 640x350 16 түс (орташа шешімділік)
Аргументтің мәні: 1
Режим: VGA 650х480 16 түс (жоғары шешімділік)
Аргументтің мәні: 2
Режим: EGA 640x200 16 түс (төменгі шешімділік)
Аргументтің мәні: 0
Режим: EGA 640x350 16 түс (орташа шешімділік)
Аргументтің мәні: 1

Үшінші аргумент - EGAVGA. BGI драйверінінің файлына жол сілтеу. Егер бұл файл c:\tc\bgi\ папкасында орындалса, оның мәні мынадай болады: c:\\tc\\bgi\\. Си тілінде барлық жолдар екі слэшпен жазылады. Егер библиеотекалық файлға жол сілтенетін болса, тырнақшаға алынады:

#include "c:\tc\bin\my\biblioteka. h"

Сонымен компьютерді графикалық режимге ауыстыру үшін барлығы дайын.

#include <conio. h>

#include<graphics . h>

void main()

{
clrscr() ;
cprintf("Мәтіндік режим. ") ;

getch() ;
//Графикалық режимге көшу!

int a=9, b=2;

initgraph(&a, &b, "c:\\tc\\bgi\\") ;

outtext("Бұл графикалық режим!") ;

getch() ;
closegraph() ;
cprintf("\n Мәтіндік режим!") ;

getch() ;
}
Графикалық режимнің қалпы келесі түрде жазылады:

// графикалық программаның қалпы

#include <graphics. h>

#include <conio. h>

#define PATHTODRIVER "c: WborlandcWbgiW"

void main (void)

{

int gdriver = DETECT; // драйвер

int gmode; // режим

int errorcode; // қателік коды

initgraph(&gdriver, &gmode, PATHTODRIVER) ;

errorcode = graphresult{) ;

if (errorcode != grOk) // графикалық режимді

// инициялдау қателігі

{

printf("Қателік: %d\n", errorcode) ;

puts("Программаны аяқтау үшін <Enter> басыңыз")

getch() ;

return;

// келесі программаның нұсқауы

closegraph() ; // графикалық режимнің аяқталуы

}

1. 2 Графикалық режимде суреттер салатын құралдар немесе канвалар

Кенеп түсінігі. TCanvas классын енгізу графикалық қосымшалардың жазылуын жеңілдетеді. Ол сурет салынатын канвалардың орнын белгідеу үшін қолданылады: терезе облысында, жұмыс үстелінде, принтерге шығаруды және тағы басқалары.

TCanvas классы келесі қасиеттерге ие:

  • Brush - геометриялық фигураларды бояу кезінде қалып пен құю түсін анықтайды;
  • Font - мәтінді шығаруға арналған қаріптер;
  • Handle - API функциясын шақыру үшін қолданылатын канваның дескрипторы;
  • Pen - сызықтың стилі мен түсін анықтайды;
  • CopyMode - суреттің орындалу тәсілін анықтайды (инверсті, қалыпты және т. б. ) ;
  • ClipRect - канвадағы тіктөртбұрышты облысты салу.

Контурларды салу үшін Pen айнымалысы қолданылады, облыстарды бояу үшін Brush айнымалысы қолданылады. TСanvas түрлі фигураларды салуға арналған көптеген тәсілдерден тұрады, мәтін шығарады, шығарылатын суреттің масштабын анықтайды және тағы басқалары. Канваны қолдана отырып келесі кодты жазуға болады:

Canvas->Brush->Color=clBlue;

Canvas->Ellipse(20, 20, 150, 250) ;

Brush құралы - қылқалам, бұл фигураны бояу тәсілін анықтайды.

  • Color - қылқалам түсі. Штрихтау кезінде -штрих сызығының түсі;
  • Style - қылқалам стилі, құю түрлерін береді (тегіс, мөлдір немесе штрихтаудың түрлері) ;
  • Bitmap - штрихтаудың өзіндік типін беруге мүмкіндік беретін қасиет.

1. 3 C++ Builder программалау ортасының графикалық мүмкіншіліктері

C++ Builder программалау ортасы Windows GDI функцияларын түрлі деңгейде инкапсуляциялайды. Мұндағы маңызды тәсілдердің бірі монитор экранына графикалық компоненттер көмегімен өз суреттерін бейнелеуі. GDI функциясын тікелей шақыру кезінде оларға құрылғы контекстінің дескрипторын (device context handle) жіберіп отыру қажет, соның көмегімен сурет салу құралын - қалам, қылқалам және қаріптерді таңдауға береді. Графикалық суреттермен жұмыс аяқталғаннан кейін құрылғы контекстін бұрынғы қалпына келтіру керек.

Қолданушының графикалық компоненттермен жұмыс жасауы кезіндегі негізгі қызметі бұл - қолданылып отырған сурет салу құралын сипаттау болып табылады. Мұнда құралдарды таңдауда, құру кезінде жүйелік ресурстарды қадағалаудың қажеттілігі жоқ. Оның барлығына канвалар жауап береді.

C++ Builder программалау ортасында графикамен жұмыс жасау кезіндегі басты артықшылық: жүйенің графикалық ресурстары үшін кэш жадының қолданылуы. Егер программа белгілі бір түрдегі мысалы, қаламды қайта құрып, қайта қолданып, қайта босататын болса, онда программада бұл қадамды қаламды пайдаланған сайын қайталап отыру қажет болады. C++ Builder программалау ортасы графикалық ресурстарды сақтау үшін кэш жады қолданғандықтан, кэш жадыдағы сурет салуға қолданылатын құрал қайтадан таңдалатындығының ықтималдылығы артады. Осылайша, графикалық қосымшаларда қайталанатын операциялардың тиімділігі артатындығына тағы да көз жеткізуге болады. Келесі мысалда кодтың екі үзіндісі берілген, мұнда C++ Builder программалау ортасы графикалық программалауды қаншалықты жеңілдететіндігін байқауға болады. Бірінші үзінді Windows үшін OWL қосымшасының терезесіне көк контурлы сары эллипсті салу үшін GDI стандартты функциясын қолданады. Екінші үзіндіде дәл осы есеп сурет салуға арналған канвалар арқылы жүзеге асады.

Программаның орындалуы:

void TMyWindow::Paint(TDC& PaintDC, bool erase, TRect& rect) {

HPEN PenHandle, OldPenHandle;

HBRUSH BrushHandle, OldBrushHandle;

PenHandle = CreatePen(PS_SOLID, 1, RGB(0, 0, 255) ) ;

OldPenHandle = SelectObject(PaintDC, PenHandle) ;

BrushHandle = CreateSolidBrush(RGB(255, 255, 0) ) ;

OldBrushHandle = SelectObject(PaintDC, BrushHandle) ;

Ellipse(10, 10, 50, 50) ;

SelectObject(OldBrushHandle) ;

DeleteObject(BrushHandle) ;

SelectObject(OldPenHandle) ;

DeleteObject(PenHandle) ;

}

void_fastcall TFormI::FormPaint(TObject *Sender) {

Canvas->Pen->Color = clBlue; // контурдың түсін таңдау

Canvas->Brush->Color = clYellow; // бояудың түсін таңдау

Canvas->Ellipse(10, 20, 50, 50) ; // эллипсті салу }

Канваның обьектілік класстары түрлі деңгейде, жоғары деңгейдегі функциядан бастап сызықтарды, фигураларды және мәтінді салуда, Windows графикалық функцияларын инкапсуляциялайды. Кейін орта деңгейдің сурет салу үшін канваны басқаруға арналған қасиеттер мен тәсілдер шығады. Төменгі деңгейде Windows GDI функцияларының өзіне қол жетімділік қамтамасыз етіледі. Төмендегі кестеде канваның негізгі тәсілдері мен қасиеттері сипатталған.

Кесте 3.

Канваның қасиеттері мен тәсілдері

Деңгей
Іс-әрекет
Тәсілдер
Қасиеттер
Деңгей: Жоғары
Іс-әрекет: Қаламның ағымдағы орнын анықтайды
Тәсілдер: MoveTo
Қасиеттер: PenPos
Деңгей: Берілген нүктеге шейін түзу сызады
Іс-әрекет: LineTo
Тәсілдер: PenPos
Деңгей: Берілген өлшемде тіктөртбұ-рышты салады
Іс-әрекет: Rectangle
Тәсілдер:

Деңгей: Берілген өлшемде эллипсті салады
Іс-әрекет: Ellipse
Тәсілдер:

Деңгей: Мәтіндік жолды шығарады
Іс-әрекет: TextOut
Тәсілдер:
Деңгей: Мәтіндік жолды шығару үшін ұзындық береді
Іс-әрекет: TextHeight
Тәсілдер:
Деңгей: Мәтіндік жолды шығару үшін енін береді
Іс-әрекет: TextWidth
Тәсілдер:
Деңгей:
Іс-әрекет: Тіктөртбұрыштың ішіне мәтінді шығару
Тәсілдер: TextRect
Қасиеттер:
Деңгей:
Іс-әрекет: Көрсетілген тіктөртбұрышты түспен және ағымдағы қылқа-лам текстурасымен бояу
Тәсілдер: FillRect.
Қасиеттер:

3-Кестенің жалғасы

Берілген түспен канва облысын бояу
FloodFill
: Орта
Берілген түспен канва облысын бояу: Қаламның түсін, стилін, енін және режимін орнату үшін қолданылады
FloodFill:

: Pen
:
Берілген түспен канва облысын бояу: Канваның фоны мен графикалық фигураларды бояу кезінде түс пен текстураны беру үшін қолданылады
FloodFill:

: Brush
:
Берілген түспен канва облысын бояу: Берілген түсте, өлшемде және стильде қаріпті орнату үшін қолданылады
FloodFill:

: Font
:
Берілген түспен канва облысын бояу: Канваның пикселінің түсін жазу мен оқу үшін қолданылады
FloodFill:
: Pixels
:
Берілген түспен канва облысын бояу: Канваның тіктөртбұрышты облысын CopyMode режиміне көшіреді
FloodFill: CopyRect
: CopyMode
:
Берілген түспен канва облысын бояу: Канваның тіктөртбұрышты облысын түстік ауысумен көшіреді
FloodFill: BrushCopy
:

:
Берілген түспен канва облысын бояу: Канваның берілген орнында биттік бейнені, пиктограмманы, метафайлды салады
FloodFill: Draw
:

:
Берілген түспен канва облысын бояу: Биттік бейнені, пиктограмманы, метафайлды берілген тіктөртбұрышта түгелдей толтыру үшін салады
FloodFill: StretchDraw
:

: Төменгі
Берілген түспен канва облысын бояу: Windows GDI функциясын шақыру параметрі ретінде қолданылады.
FloodFill:

: Handle

C++Builder программалау ортасында графикаға қатысты үш негізгі обьект бар:

  • Канва формаға, графикалық компонентке, принтерге немесе басқа да биттік бейнеге сурет салу үшін кеңістіктің биттік картасын көрсетеді. Канва өз алдына дербес обьект болып есептелмейді, ол әрқашан қандай да бір графикалық обьекттің қасиеті болып табылады.
  • Графика кейбір файлдардың немесе ресурстардың (биттік бейнедегі, пиктограммалар немесе метафайл) растрлық суретін ұсынады. C++Builder TGraphic базалық класынан өңделетін TBitmap, Ticon және Tmetafile кластарын анықтайды. Tgraphic қосымшада барлық түрдегі графиканы қолдану үшін минималды стандартты интерфейсті ұсынады.
  • Сурет графика үшін контейнерді ұсынады, яғни ол графикалық обьектілердің кез келген класын құрауы мүмкін. Осылайша, TPicture контейнерлік класы қолданушы анықтайтын биттік бейнені, пиктограмманы, метафайлды немесе басқа да графикалық типті құрай алады, ал қосымша стандартты түрде контейнердің барлық обьектілеріне жолыға алады. Суретті басқару компоненттері TPicture обьект типінің Picture қасиетін иеленеді, ол графиканың алуын түрлі суреттерін көрсетуге мүмкіндік береді.

«Сурет» обьектісі канваны (жалғыз ғана канвасы бар стандартты графикалық класс бұл - TBitmap) қажет ететін графиканы құрайды. Суреттермен жұмыс жасай отырып, TPicture контейнер арқылы қол жетімділікке ашылатын графикалық обьекттің тек қажетті ғана бөлігімен жұмыс істеуге болады. Егер контейнерлік графикалық обьектіге қол жетімділікті көрсету керек, ол берілген суреттің Graphic қасиетінде беріледі.

C++Builder программалау ортасында жұмыс жасау кезінде ол суреттерді және графикаларды суреттер файлдарында стандартты форматта сақтауға, жүктеуге мүмкіндік береді.

Файлдағы суретке бейнені жүктеу үшін суреттің мына әдісін қолдану керек LoadFromFile. Суретті файлда сақтау үшін суреттің SaveToFile әдісін сақтау керек. LoadFromFile әдісі құрылатын немесе жүктелетін графикалық обьект түрін тану үшін файлдың кеңейтілуін қолданады. SaveToFile тәсілі сақталатын графикалық обьекттің кеңейтілу түріне сәйкес файлды сақтайды.

Келесі мысал биттік бейнені суреттің компоненттік обьектіне жүктеу үшін кодтық модульдің мәтінінде жазылуы керек құрылымды құрайды. Биттік бейнені clouds. bmp файлынан жүктеу үшін сипаттаманың жазылуы:

void_fastcall TFormI::FormCreate(TObject *Sender) {

Imagel->Picture->LoadFromFile("c:\\windows\\clouds. bmp") ;

}

Сурет . bmp стандартты кеңейтілуіндегі биттік бейнедегі файлды таниды және TBitmap класының обьекті түрінде өзінің графикасын құрады, кейін LoadFromFile әдісін атауы берілген файлдан суретті жүктеу үшін шақырады.

C++Builder программалау ортасы суретті бір канвадан екіншісіне көшірудің төрт әдісін қарастырады. Олардың сипаттамалары төмендегі кестеде көрсетілген (Кесте 4) .

Кесте 4.

Биттік бейнені көшіру

Қажетті нәтиже
Әдіс
Қажетті нәтиже: Графиканы толық көшіру
Әдіс: Draw
Қажетті нәтиже: Масштабтау арқылы көшіру
Әдіс: StretchDraw
Қажетті нәтиже: Канваның тіктөртбұрышты бөлігін көшіру
Әдіс: CopyRect
Қажетті нәтиже: Растрлық опрециямен көшіру
Әдіс: BrushCopy

Графиканы жүктеу мен сұрыптау. Төмендегі кодты сипаттауда файлдағы суретті жүктеу үшін және сұрыптау үшін TBitmap класы қолданылады. Программаның нәтижесінде көрсетілгендей биттік бейненің барлық аумағы қамтылмаған, мұнда тек оның алғашқы 8*8 пикселі қолданылған.

// TBitmap обьектін құру

Graphics::TBitmap* gBitmap = new Graphics::TBitmap;

// Онда сурет жүктеледі

gBitmap->LoadFromFile("1. bmp") ;

// Канваға жүктелген сурет салынады

Canvas->Draw(10, 10, gBitmap) ;

// Жүктелген сурет қылқалам ретінде алынады

// оның тек 8*8 пикселі қолданылады

Canvas->Brush->Bitmap = gBitmap;

// Эллипс салынады

Canvas->Ellipse(85, 10, 160, 85) ;

Барлық функцияның параметрлері белгілі болады немесе мөлдір болады. Программаның нәтижесі 1-суретте көрсетілген.

graphics_3.jpg

Сурет 1. TBitmap класын пайдалану

. ico және . emf форматындағы графика үшін коды толық аналогты:

Graphics::TIcon* gIcon = new Graphics::TIcon;

Graphics::TMetafile* gMFile = new Graphics::TMetafile;

gIcon->LoadFromFile("1. ico") ;

gMFile->Enhanced=true;

gMFile->LoadFromFile("1. emf") ;

Canvas->Draw(10, 10, gIcon) ;

Canvas->Draw(50, 50, gMFile) ;

delete gIcon;

delete gMFile;

Графиканы сұрыптау үшін StretchDraw() функциясын қолдануға болады.

Для отрисовки графики можно использовать функцию StretchDraw(), ол Draw() функциясына қарағанда суретті салып қана қоймайды, сонымен қатар суретті масштабтайды.

TRect tRect(10, 10, 50, 50) ;

Canvas->StretchDraw(tRect, gBitmap) ;

TRect tRect1(100, 100, 150, 150) ;

Canvas->StretchDraw(tRect1, gIcon) ;

TRect tRect2(250, 250, 350, 350) ;

Canvas->StretchDraw(tRect2, gMFile) ;

CopyRect() тәсілі графиканы сұрыптап, суреттің берілген облысын немесе Tcanvas обьектісінде берілген суреттің канвадағы бөлігін орналастыруға арналған. Көшіру канваның CopyMode қасиетін пайдалану режимінде жүзеге асады.

// TBitmap обьектін құру

Graphics::TBitmap* gBitmap = new Graphics::TBitmap;

// Онда сурет жүктеледі

gBitmap->LoadFromFile("1. bmp") ;

// Көшіру облысының өлшемін анықтау

TRect tRectFrom(0, 0, 25, 25) ;

TRect tRectTo(10, 10, 35, 35) ;

// CopyMode cmSrcCopy - тура көшіру

Canvas->CopyMode=cmSrcCopy;

// Суреттің бөлігін көшіру

Canvas->CopyRect(tRectTo, gBitmap->Canvas, tRectFrom) ;

TBitmap, TIcon, Tmetafile қасиеттері мен басқа да әдістері. Олардың ішіндегі қасиеттердің маңыздылары:

  • gBitmap->Handle, gBitmap->Palette - биттік карта мен оның палитрасының дескрипторы.
  • HandleAllocated() - берілген элементтегі компоненттің дескрипторының бар екендігін тексереді. Егер дескрипторы бар болса, true мәні қайтарылады. Handle қасиетін тексергенге қарағанда, бұл әдіс дескриптор жоқ болған кезде оның құрылуына әкеліп соқпайды.
  • ReleaseHandle() и ReleasePalette() - сурет дескрипторын және сәйкесінше палитра дескрипторын қайтарады (босатады) . Бір обьект бірнеше дескрипторды иелене слатындығын ескеру қажет. Биттік картаның кез келген уақытта дескрипторға сырттай жолығуы кезінде және оның канвасына сурет салуға ниет білдіру кезінде обьект дескриптор құрамынының өздік көшірмесін алады.
  • ReleaseMaskHandle() - нүктелік суреттегі маскасының дескрипторын босатады.
  • Mask() - ағымдағы растрлық суретті бір түсті маскаға конверттейді. TransparentColor-ды ақ түспен, ал қалғандарын қара түспен алмастырады. Ол басқа биттік карталар үшін биттік картаны маскаға айналдыру үшін қолданылады. Айналдыру үшін MaskHandle қасиеті мен ReleaseMaskHandle() оқиғасы қолданылуы мүмкін.
  • HandleType қасиеті - bmDIB немесе bmDDB мәндерін қабылдай алады және суреттің типін (DDB немесе DIB) тексеруге мүмкіндік береді.
... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Мектеп математика курсында функцияны оқытудың мақсаттары
Паскаль тілінің түсініктері
Турбо Паскальда графикалық процесстерді қолдану
Турбо Паскальдағы Graph модулі
Дәріс кешені с/с++ тілдері
Ақикат кестесін құру
Мектеп оқушыларына тригонометриялық функциялардың графиктерін салуды түсіндіруде есептеулерді жүргізу
Қаз ҰТУ мамандықтары туралы мәлімет алу (Turbo C)
Математикалық есептеулерге арналған программалық жүйелер
Графика және анимация
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz