Экран обьектісі

Графиканы жете меңгеру үшін мен экрандық обьектілердің класын дайындадым.

Бұл класс franca.h.бастапқы файлдан құралған. Осылардың кейбірі:

  • ақпараттық рамкалар
  • квадраттар
  • айналасы

Экрандағы квадраттар және айналасы олардың центрі бойынша анықталады, ал рамкалары- сол жақ жоғарғы бұрыш координатасымен.

Экрандық бейнелер үшін келесі операцияларды орындауға болады:

  • Оларды экранның кез –келген орнына жылжытуға болады.

Place(x,y) функциясы (х,у) координата нүктесінде обьектіні ауыстырады. Мысалы: ball . place (20.20);

  • Экранда оларды бейнелеуге болады (обьектілер автоматты түрде бейнеленбейді ). Show функциясы обьектіні ағымды экран нүктесінде бейнелейді (салады) .

 Мысалы: ball. Show( );

  • Оларды экранда бетінде тазалап тастауға болады. Erase( )функциясы обьектіні жояды (тазалайды), оны ақ түске бояйды.

Мысалы: ball. Erase(); Обьектіні жылжытар(орын ауыстыру) алдында оны өшірмеу қажет.

  • Олардың өлшемін өзгертуге болады. Үнсіз келісім бойынша экран обьектісі 20 пиксельге тең. Оның өзгеруіне бір немесе екі аргументтің тапсырмасы қажет болады. Өлшемді өзгерту үшін екі resize () және absize () функциясы қажет.
  • Олардың түсін өзгертуге болады. Ол үшін color( ) функциясы қажет болады. Негізінде үнсіз келісім бойынша экрандық обьектілер құрылуы бойынша ішкі жағы ақ түспен боялған, ал контуры қара түске боялған. Бір түсті белгілей тұра, обьектіні осы түс бойынша бояп, ішкі жағын да , контурды да солай бояуға болады. Мысалы: ball. Color(2);. Обьектіні екі түспен бояуға болады.Мысалы: ball. Color(2,4);.

Box экрандық обьектісі арқылы кейбір арнайы операцияларды орындауға болады:

  • Ақпараттық рамка ішіне хабар енгізуге болады. Мысалы: егер message ауыспалы

Box типін жарияласақ , онда message. Say( “Here!”)инструкциясы; бұл ішкі рамкада “Here” хабарының пайда болуына себепкер болады. Аргумент сапасы бойынша барлық сандар немесе жүзуші нүкте сандарын қолдануға болады.

Информациялы рамканың іс-қимылы (әрекеті) басқа экрандық обьектілердің іс-қимылынан айырмашылығы бар, бірақ олар автоматты түрде пайда болады. Тек қана егерде біз Say( ) функциясын қолдансақ қана. Басқа сөзбен айтқанда , рамканы экранға шығарып жатпаймыз. Сонымен қатар, рамка координаты өзінің сол жақ жоғарғы бұрышына қатынасады, центріне емес.

Экрандық обьектілерді басқару функциялары.

Хабар Анықтама Аргументтер
Place (float,float)

Show()

 

Erase()

 

Resize(float)

 

Absize(float)

 

Color(int,int)

Scale(float,float)

Origin (float,float)

 

Обьектіні қозғалту

Экранға обьектіні шығару

Экранды обьектіден тазарту

Обьектінің өлшемін өзгерту

Обьектінің абсолютті өлшемін өзгерту

Обьектінің түсін өзгерту

Масштабты өзгерту

Есеп берудің бастамасын өзгерту

 

Х,у координаты

Жоқ

 

Жоқ

 

Жаңа өлшем

 

Жаңа өлшем

 

Түс

Жаңа масштаб

Х,у координаты

Ақпараттық рамкалар сонымен қатар экрандық обьектілер болып саналады, оларға place(), show() және erase() функциясын қолдануға болады.

Circle() обьектісін жариялаған кезде үнсіз келісім бойынша, оның айналасы 20 пикселге тең.

Содан кейін оның өлшемін өзгертуге болады. Мысалы: келесі фрагментте диаметрі 10 пиксель келтірілген:

Circle mycircle;

Mycircle. Resize(10);

Түс

Экран обьектілерін әр түрлі түстерге бояуға болады. Обьектіде екі түс қатысуы мүмкін – ішкі және контур түсі.

Мысалы: айналасы қара, ішкі жаға қызыл болуы мүмкін. Түстер келесі сандармен кодталады:

0 – ақ

1 — қызыл

2 – ашық жасыл

3 – көгілдір

4 – ашық көк

5 – күлгін

6 – сары

7 – қараша

TPaintBox

Бұл функция бізге графикада тек қана тік төрт бұрышты аймақта сурет салуға мүмкіндік береді.Егерде TpaintBox қолданылса, онда программада сурет салу жолдың жоғарғы жағында атқарылады, яғни OnPciinl көмегімен.Түс және шрифт Color и Font арқылы орындалады. Егерде барлық формада сурет салғыңыз келсе, онда OnPaint формасын қолданған жөн.

Экран обьектілерін құрған кезде үнсіз мына жағдайлар орындалады:

♦ Ақпараттық рамкалар бірінен кейін бірі вертикалды экранның оң жағында орналасады;

♦ Барлық обьектілер ақ, қара контурмен құралады.

Координаттар пиксельде берілгеніне қарамастан, экрандық обьектілер координат және өлшем жүзуші нүкте санын қолдайды.

Келесі программалық кодттың фрагменті нүктені (50,50) орталықта құрып және оны экранда көрсетеді.

#include“franca.h”

Void mainprog()

Int x,y;

X=50;

Y=50;

Circle mycircle;

Mycircle. Place(x,y);

Mycircle.show()

Программадағы қолданған барлық экран обьектілер алдын – ала жариялануы керек.

Кез-келген сурет салу, яғни нүктені экран ауданынан басқа жерде салуымыз, бізге диалогтық терезеден қате жайлы хабардың пайда болуына әкеліп соқтырады, яғни Object out of range.

(х немесе у) координаты берілген қателік экранның сол жақ бұрышында пайда болады.

Енді мен “Hello World” хабарын графикалық Windows-тің графикалық интерфейс жүйесін пайдаланып экранға шығарамын.

♦ File(New Application) менюін таңдап, жаңа проект құрамыз. Сонымен жаңа конструктор формасын ашамыз. Обьект инспекторы оның сыйымдылығын көрсетеді.

♦ Caption сыйымдылығынан Properties бетін таңдаймыз. Онда оның мағынасы “Hello World” екенін байқайсыз.

Осыдан кейін біраз командаларды орындап, ақыр соңында Message кнопкасын басамыз. Exit кнопкасы программа жұмысын аяқтайды, яғни оның басты терезесін жабады. Төменде қарастырылған программа көрсетілген:

  • Анимация құру

Енді біз сандық деректерді өңдеуді, экрандық обьектілердің координатасын санауды білсек, енді бізге оларды қозғалтып, анимация құру қажет.

Анимация құру процесі өте қарапайым. Ол келесі этаптардың қайталануынан құралады:

  1. Экранда берілген нүктеде обьектіні қозғалту;
  2. Берілген аз уақытта обьектіні экранда шығару;
  3. Обьектіні жою немесе құрту.

Егерде бір уақытта бірнеше экрандық обьектілердің орнын ауыстыру керек боласа, онда программа ұзын және көптеген қайталанулардан тұратын болуы қажет. Осы жағдайды болдырмас, біз обьект типі Stage- жаңа экран обьектілерімен танысамыз. Оның көмегімен біз бірнеше обьектіні бір обьект болып көрсету үшін пайдаланамыз.

Математикалық функцияда график құру

Обьектіні экранда құруды, координат және масштабын өзгертуді білсеңіз, онда сіз функция графигін құра аласыз. Берілген y=f(x)функциясын құрамыз, (xf(x)) координат маңында нүктені қозғалту.

Айталық, біз y=x²-x+1 интервалында х=-5 және х=20 нүкте аралығында функция графигін алғымыз келеді.

С++ функция тілінде математикалық функцияны анықтайық:

Сурет салу процедурасы өте қарапайым:

♦ dot обьектісін кішігірім аймақ ретінде жариялау;

♦Бастапқы және аяқталған мәндерді анықталған интервалдан кейін (Мысалы:0,01); келесі қадамды әртүрлі мәндерде х қайталау;

♦ dot обьектісін жаңа координатамен бірге жылжыту;

♦ dot обьектісін экранда көрсету;

Обьекті экран бетіне шығып тұрғандығына куәләну. Өзіңіздің мәніңізді санаңыз және масштабын өзгерт, яғни төмендегі мәндерді орындау:

♦ х мәні 0-ден 640 интервалында жату керек;

♦ у мәні 0-ден 480 интервалында жату керек;

Масштабты есептеуде немесе х және у осін салу керек болса, онда оны график салардың алдында істеу қажет. Егерде график құру үшін басқа программа құру керек болса, онда сізге дайын функция болады.