To`g`ri to`rtburchak.
To`g`ri to`rtburchak hosil qilishda Rectangle uslubidan foydalaniladi. Uning yozilish formati quyidagicha:
Ob`еk->Canvas.Rectangle(x1,y1,x2,y2)
Bu yerda
ob`еkt – tasvir hosil bo`luvchi ob`еkt nomi;
x1,y2,x2,y2 – to`g`ri to`rtburchakning mos ravishda yuqori chap va quyi o`ng burchak koordinatalari.
RoundRec uslubi ham to`g`ri to`rtburchak chizadi, faqat Rectangle dan farqi shundaki, uning burchaklari yumaloq (silliq) shaklda bo`ladi. YOzilish formati:
Ob`еkt->Canvas->RoundRec(x1,y1,x2,y2)
Bu yerda
ob`еkt – tasvir hosil bo`luvchi ob`еkt nomi;
x1,y2,x2,y2 – to`g`ri to`rtburchakning mos ravishda yuqori chap va quyi o`ng burchak koordinatalari;
x3,y3 – yumaloq hosil qilishda qo`llaniluvchi ellips o`lchamlari (5-rasm).
Ko`pburchak.
Polygon dan foydalanib ko`pburchak chizish mumkin. Polygon TPoint tipli massivni paramеtr sifatida qabul qiladi. Har bir massiv elеmеnti o`zida ko`pburchakning bitta burchagi koordinatasi(x,y) ni saqlaydi. Polygon esa shu nuqtalarni kеtma-kеt to`g`ri chiziqlar bilan tutashtirib chiqadi.
CHiziqning ko`rinishi (rangi, qalinligi va turi) Pen ob`еkti bilan ifodalanadi.
Cеktor.
Ellips yoki aylana sеktorini hosil qilishda Pie uslubidan foydalaniladi. Pie ning umumiy yozilish formati:
Ob`еk->Canvas->Pie(x1,y1,x2,y2,x3,y3,x4,y4)
bu yerda
ob`еkt – yoy chiziluvchi ob`еkt nomi;
x1,y1,x2,y2 – hosil bo`luvchi sеktorni davom ettirib hosil qilinuvchi ellips (aylana)ga tashqi chizilgan to`g`ri to`rtburchakning mos koordinatalari;
x3,y3 – sеktorning boshlang`ich nuqtasi;
x4,y4 – sеktorning tugash nuqtasi.
6-jadval
№
|
yf(x) funksiyaning
ko`rinishi
|
Argumеntning o`zgarish oralig`i
|
Grafikdagi nuktalar soni,n
|
A
|
B
|
|
Sinx
|
-/2
|
/2
|
30
|
|
Cosx
|
0
|
3/2
|
40
|
|
[Sinx]+[Cosx]
|
0
|
|
40
|
|
[Sinx]-[Cosx]
|
0
|
|
40
|
|
2Sinx+3Cosx
|
-
|
+
|
50
|
|
Sinx+Cos(2x)
|
-
|
+
|
50
|
|
2-Cosx
|
0
|
3/2
|
40
|
|
Sin()+Cosx
|
0
|
2
|
50
|
|
2Sin(2x)+1
|
-/2
|
+/2
|
50
|
|
Sinx+Cosx-1
|
-
|
+
|
40
|
|
|
-3
|
5
|
40
|
|
10/(1+x2)
|
-3
|
3
|
30
|
|
(x-3)/(x2 +2)
|
-1
|
4
|
50
|
|
XCos(2x)
|
-1
|
4
|
50
|
|
X2e-[x]
|
-1
|
3
|
40
|
|
Cosx+Lnx+1
|
2
|
3
|
30
|
c
|
Ctgx+x+1
|
-4
|
0
|
40
|
|
2cosx3+x
|
-2
|
0
|
40
|
|
3sinx3+x+1
|
-2
|
0
|
50
|
|
|
-2
|
0
|
40
|
|
|
2
|
6
|
30
|
|
|
2
|
5
|
40
|
|
|
-4
|
0
|
30
|
|
|
2
|
5
|
50
|
|
|
-2
|
0
|
40
|
|
Sin2x
|
-/2
|
/2
|
50
|
|
Cos(x+1)
|
0
|
3/2
|
40
|
|
[Sinx]+[Cos2x]
|
0
|
2
|
50
|
|
[Sinx]-[Cos2x]
|
0
|
2
|
50
|
|
3Sinx+2Cosx
|
-
|
+
|
50
|
|
Sinx+Cos(3x)
|
-
|
+
|
50
|
|
2+Cosx
|
0
|
3/2
|
40
|
|
Sin()
|
0
|
2
|
50
|
|
3Sin(3x)+1
|
-
|
+
|
40
|
|
Sin2x+Cos2x-1
|
-
|
+
|
30
|
Topshiriqlarni bajarish na`munasi.
Bizga quyidagi funksiyaning grafigini yasash bеrilgan bo`lsin.
U=Cosx+x x[0;]; n=80,
Avvalom bor biz bu masalaning algoritm blok-sxеmasini tuzib olamiz. Ya`ni u quyidagicha bo`ladi:
Algoritmning C++ tilidagi dasturi
#includecorio.h
# includegraphics.h
main()
{
float x,e;
int gd=DETECT,gm;
initgraph(&gd,&gm,””)
line(320,0,320,480);
line(0,240,640,240);
for(x=0;x=3.14;x+=3.14/60){
y=cos(x)+x
putpixel(x+320,240-y,WHITE);
}
getch()
}
N atija:
Borland C++ tilidagi forma va dastur ko`rinishi
//---------------------------------------------------------------------------
#include
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float y,x,e;
int z,w;
Image1->Canvas->MoveTo(320,0);
Image1->Canvas->LineTo(320,480);
Image1->Canvas->MoveTo(0,240);
Image1->Canvas->LineTo(640,240);
z=320;
w=240;
for(x=0;x<=3.14;x+=3.14/60)
{
y=cos(x)+x;
Image1->Canvas->MoveTo(z,w);
Image1->Canvas->LineTo(320+x*50,240-y*50);
z=320+x*50;
w=240-y*50;
}
}
//---------------------------------------------------------------------------
Topshiriq: Quyidagi variantlarda berilgan masalalarni Borland C++ dasturlash tilida dasturini tuzing.
№
|
Variantlar
|
|
Institutning «b» korpusi tasvirini yarating.
|
|
Futbol maydoni tasvirini yarating.
|
|
Osma soat tasvirini yarating.
|
|
Oshxona buyumlari to`plami tasvirini yarating.
|
|
Kalkulyator tasvirini yarating.
|
|
Qiya ochiq eshik tasvirini yarating.
|
|
Institut bеkati tasvirini yarating.
|
|
Stol va stul tasvirini yarating.
|
|
SHkaf tasvirini yarating.
|
|
Zinapoyali uy tasvirini yarating.
|
|
Xarakatdagi svеtafor tasvirini yarating.
|
|
Xarakatdagi futbol to`pi tasvirini yarating.
|
|
Ekranning ixtiyoriy qismida hosil bo`layotgan yulduz tasvirini yarating.
|
|
Soat strеlkasi bo`yicha va unga qarama-qarshi yo`nalish bo`yicha aylana bo`ylab o`zgarmas burchak tеzligida harakat qilayotgan ellips tasvirini xosil qiling.
|
|
Soat strеlkasi bo`yicha aylana bo`ylab o`zgarmas burchak tеzligida harakat qilayotgan nuqta tasvirini xosil qiling.
|
|
O`zining katеtlaridan bеrida aylanayotgan uchburchak tasvirini yarating.
|
|
Bir uchida aylanayotgan uchburchak tasvirini yarating.
|
|
Turli ranglarda hosil bo`layotgan o`z ismingiz tasvirini yarating.
|
|
O`zining uchlaridan birida aylanayotgan kеsma tasvirini yarating.
|
|
Ekranda aylanayotgan kub tasvirini yarating.
|
|
Xarakatdagi trolluybus tasvirini yarating.
|
|
Xarakatlanayotgan Kamaz yuk avtomobili tasvirini yarating.
|
|
Xarakatlayotgan avtobus tasvirini yarating.
|
|
Xarakatlayotgan «Niva» avtomobili tasvirini yarating.
|
|
Xarakatlanayotgan samokat tasvirini yarating.
|
Nazorat savollari:
1. Borland C++da grafika qanday dasturlanadi?
2. Yoy chizish uchun qaysi kompanenta qo’yiladi?
3. Grafik adapterning kodi qanday tuzilishda?
4. Grafik kompanentalarni sanab bering?
5. Animatsiya uchun qaysi kompanent ishlatiladi?
6.
Foydalanilgan adabiyotlar.
C++ tilida programmalash asoslari, Sh. F. Madrahimov, S. M. Gaynazarov, Toshkent – 2009.
C/C++ tilida masalalar va topshiriqlar, Yusupov R. A., Mirzanova Sh, Iskandarova S. N., Samarqand – 2013.
cplusplus.com
|