Layar monitor komputer memiliki dua modus pemakaiannya, modus text dan modus grafik. Pada modus text yang dapat ditampilkan layar monitor adalah berupa karakter – karakter. Banyaknya karakter yang ditampung dalam satu layar penuh adalah 4000 karakter ( untuk mode layar yang biasa dipakai ) yaitu 80 karakter mengisi lebar layar dan 25 karakter mengisi tiinggi layar.
Lainnya dengan modus grafik, layar monitor dapat menampilkan objek hanya berupa titik – titik yang dapat menampung pada suatu layar penuh bervariasi sesuai dengan mode grafik yang kita pergunakan. Dalam pemograman grafik menggunakan bahasa pascal kita akan memerlukan file – file sebagai berikut :
Ø File driver grafik, yaitu file – file yang berakhiran BGI ( Boolean Grafik Interface) Untuk dipergunakan sesuai dengan monitor yang dipergunakan
Ø File Graph. TPU adalah fil eyang berisi definisi dari fungsi – fungsi grafik yang dipergunakan
Ø File Hurup adalah file – file yang memiliki akhiran CHR yang bersifat optimal jika tidak terdapat file – file ini setiap karakter dicetak menggunakan Jenis huruf default .
Untuk dapat menggunakan fasilitas layar grafik terlebih dahulu harus melakukan inialisasi yaitu memberikan kode pada komputer untuk memperlakukan layar monitor sebagai layar grafik. Setelah dilakukan inisialisasi ini cara penulisan ke layar berbeda dengan cara penulisan yang dilakukan pada bab – bab sebelumnya. Dalam Pemograman grafik dipergunakan InitGraph. Syntax penulisannya :
InitGraph(GrDriver, GrMode, DrivePath);
GraphDriver
Parameter ini berupa parameter variabel bertipe integer yang menyatakan driver layar yang akan dipergunakan, yang tidak lain menyatakan jenis layar monitor apa yang dipergunakan. Dengan menugaskan DETECT pada variabel ini maka complier akan mendeteksi monitor apa yang terpasang pada komputer yang kita pergunakan. File – file Driver berikut ini :
Nama File | Perangkat (Keras) |
CGA,BGI | IBM CGA,MCGA |
EGAVGA,CGI | IBM EGA, VGA |
HERC,BGI | Hercules Monokrom |
ATT,BGI | AT & T |
PC3270,BGI | IBM 3270 PC |
IBM8514,BGI | IBM - 8514 |
Nama Konstanta | Nilai |
CurretDriver | -128 |
DETECT | 0 |
CGA | 1 |
MCGA | 2 |
EGA | 3 |
EGA84 | 4 |
EGAMono | 5 |
IBM8514 | 6 |
Hercules Monokrom | 7 |
ATT40 | 8 |
VGA | 9 |
PC3270 | 10 |
GraphMode
Parameter ini berupa variabel bertipe integer yang menyatakan modes grafik yang akan kita pergunakan. Bila variabel ini dipergunakan tidak diinialisasikan (=), maka complier akan mencari resolusi tertinggi yang mampu ditampilkan oleh driver layar. Mode – mode grafik dalam bahasa pascal sebagai berikut :
Nama File | | Ukuran | Warna | |
CGACO | 0 | 320 X 200 | Palet 0 : LightGreen, LightRed, Yellow | 1 |
CGAC1 | 1 | 320 X 200 | Palet 1 : LightCyan, LightMagenta, White | 1 |
CGAC2 | 2 | 320 X 200 | Palet 2 : Green, Red, Brown | 1 |
CGAC3 | 3 | 320 X 200 | Palet 3 : Cyan, Magenta, LightGray | 1 |
CGAH1 | 4 | 640 x 200 | | |
MCGACO | 0 | 320 X 200 | Palet 0 : LightGreen, LightRed, Yellow | 1 |
MCGAC1 | 1 | 320 X 200 | Palet 1 : LightCyan, LightMagenta, White | 1 |
MCGAC2 | 2 | 320 X 200 | Palet 2 : Green, Red, Brown | 1 |
MCGAC3 | 3 | 320 X 200 | Palet 3 : Cyan, Magenta, LightGray | 1 |
MCGACMed | 4 | 640 x 200 | | 1 |
MCGACHi | 5 | 640 x 480 | | 1 |
EGALO | 0 | 640 x 200 | 16 Warna | 4 |
EGAHi | 1 | 640 x 350 | 16 Warna | 2 |
EGAL64LO | 0 | 640 x 200 | 16 Warna | 1 |
EGAL64Hi | 1 | 640 x 350 | 4 Warna | 1 |
EgaMonoHi | 3 | 640 x 350 | | |
HerMonoHi | 0 | 720 x 350 | | 2 |
ATT400C0 | 0 | 320 X 200 | Palet 0 : LightGreen, LightRed, Yellow | 1 |
ATT400C1 | 1 | 320 X 200 | Palet 1 : LightCyan, LightMagenta, White | 1 |
ATT400C2 | 2 | 320 X 200 | Palet 2 : Green, Red, Brown | 1 |
ATT400C3 | 3 | 320 X 200 | Palet 3 : Cyan, Magenta, LightGray | 1 |
ATT400Med | 4 | 640 x 200 | | 1 |
ATT400Hi | 5 | 640 x 200 | | 1 |
VGALO | 0 | 640 x 200 | 16 Warna | 4 |
VGAMed | 1 | 640 x 350 | 16 Warna | 2 |
VGAHi | 2 | 640 x 480 | 16 Warna | 1 |
PC3270Hi | 0 | 720 X 350 | | 1 |
IBM8514LO | 0 | 640 X 480 | 256 Warna | |
IBM8514Hi | 1 | 1024 X 768 | 2561 Warna | |
Drive Path
Parameter string yang menyatakan letak direktorin dari file driver ( program tersebut di simpan dimana drive c atau d (c:/tp/bgi ). Setelah selesai menggunakan. Modus layar harus dikembalikan lagi ke modus text, Hal ini dilakukan dengan menggunakan perintah :
CloseGraph;
Perintah – Perintah Grafik
Ø GetMaxX dan GetMaxY adalah untuk mendapatkan nilai maxsimum dari koordinat X dan koordinat Y adalah titk paling bawah layar. Koordinat layar pada monitor komputer adalah seperti :
|
Ø PutPixel adalah perintah untuk mencetak titik pada suatu koordinat tertentu seperti dibawah ini :
PutPixel(X,Y,Warna);
X dan Y koordinat titik, dan warna adalah warna titik
Ø Line adalah perintah untuk menggambar garis pada layar seperti dibawah ini :
Line( X1, Y1, X2, Y2 );
X1 dan Y1 adalah koordinat awal garis dan X2 dan Y2 adalah koordinat akhir garis
Ø Line To adalah perintah untuk menggambar garis dari posisi aktif ke koordinat tertentu seperti di bawah ini :
LineTo( X, Y );
X dan Y adalah koordinat ujung garis.
Ø MoveTo adalah perintah untuk memindahkan posis aktif ke posisi tertentu seperti dibawah ini :
MoveTo ( X, Y);
X dan Y adalah posisi aktif baru.
Ø Rectangle adalah perintah untuk menggambar sebuah kotak pada layar seperti di bawah ini :
Rectangle( X1, X2, Y1, Y2);
Ø Circle adalah perintah untuk mengambar lingkaran pada layar seperti dibawah ini :
Circle ( X, Y, Radius ); Radius adalah jari – jari lingkaran.
Ø Ellipse adalah perintah untuk mengambar Ellips pada layar seperti di bawah ini :
Ellipse( X, Y, Sudut awal, Sudut Akhir, RadiusX, RadiusY );
Sudut awal dan sudut akhir adalah bilangan antara 0 – 360 Derajat.
Latihan –Latihan Program
Program Perintah_menggambar;
Uses Crt, Graph;
Type
GrDrv,GrMode : Integer;
Begin
GrDrv := DETECT;
InitGraph(GrDrv, GrMode,’’);
If GraphResult <> GrOk Then
Init := false;
Else init := true;
End;
Procedure Tulis( X,Y: integer; ST:S30);
Begin
OuttextXY(X,Y,’ < - -‘+ ST);
End;
Procedure Gambar;
Var
I : Integer;
Begin
{Menggambar Garis}
LineTo(GetMaxX, GetMaxY);
Tulis( 20,10,’ LineTo’);
Line(100,100,300,150);
Tulis( 250,120,’ Line’);
{Menggambar Kotak}
Rectangle(200,200,300,300);
Tulis( 205,250,’Rectangle’);
Bar(60,250,80,300);
Tulis( 85,275,’Bar’);
Bar3D(60,350,80,380,10,True);
Tulis( 85,365,’Bar3D’);
{Menggambar Lingkaran}
Circle(GetMaxX div 2, GetMaxY div 2,50);
Tulis(380, GetMaxX div div 2,’Circle’);
Ellipse(400,100,0,360,10,20);
Tulis( 420,100,’Ellips’);
{Menggambar Titik}
For I:=1 to 10 do
Begin
PutPixel(5*I,400, LIGHTRED);
Tulis(55,400,’PuPixel’);
Readln;
CloseGraph;
End
If Init Then Gambar;
End.
Program Animasi_Bunga;
Uses Crt; Graph;
Var
GD,GM,I : Integer;
Begin
Repeat
GD:=VGA;
GM:=VGHi;
InitGraph( GD,GM,’’);
For I:=1 to 30 do
Begin
Setcolor( I );
Settextstyle(4, Horizdir,4);
OuttextXY(300,40,’Bunga’);
Circle(310,240,5+I);
Circle(300,170,5+I);
Circle(270,310,5+I);
Circle(350,310,5+I);
Circle(230,240,5+I);
Circle(400,260,5+I);
Circle(370,190,5+I);
Sound(200);
Delay ( 10 );
noSound;
End;
Until KeyPressed;
CloseGraph; Readln;
End.
Program Gelombang_Sinus;
Uses Graph;
Type
Data = Array[0..360] Of PointType
Var
DataSinus :Data;
Frek, Amp :Integer;
Function Init : Boolean;
Var
GrDrv,GrMode :Integer;
Begin
GrDrv := DETECT;
InitGraph(GrDrv, GrMode,’’);
If GraphResult <> GrOk Then
Init := false;
Else init := true;
End;
Procedure Sumbu;
Begin
Line( 0, GetMaxY div 2, GetMaxX, GetMaxY div 2);
Line( GetMaxX div 2, 0 , GetMaxX div 2, GetMaxY);
End;
Procedure Sinus( Frek, Amp : integer; Var SinBuffer : Data);
Var
I : Integer;
Begin
For I:= 0 to 360 do
Begin
SinBuffer[I].X := Round(I/360 * GetMaxX);
SinBuffer[I].Y := (GetMaxY div 2 ) – Round(Amp * Sin (Frek * Pi * I / 180));
End;
End;
Begin
Writeln(‘%%%%% Menggambar Gelombang Sinus %%%%%’);
Write(‘ Frekuensi = ‘);Readln(Frek);
Write(‘ Amplitudo = ‘);Readln(Amp);
If Init then
Begin
Sumbu;
Sinus(Frek,amp,DataSinus);
DrawPoly( 360, DataSinus);
Readln;CloseGraph;
End
Else Write(‘ Grafik Error !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!’);
End.
No comments:
Post a Comment