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.
0 komentar:
Posting Komentar