Membuat Monas dengan Coding Pascal Graph Unit

Membuat Monas dengan Coding Pascal Graph Unit - hello sobat kali ini saya akan membagikan hasil dari tugas mata kuliah saya tentang bahasa pemrograman pascal, program ini menggunakan uses unit Graph, jadi jika anda ingin membuat sebuah Graph berupa gambar-gambar shape, line dlln, anda perlu menggunakan pascal yang mempunyai Gpu.unit, sehingga aplikasi anda support dengan coding ini.

lanjut ke artikel ini, jadi ini adalah tugas dari mata kuliah grafika, sengaja saya arsipkan disini agar tidak hilang dan juga bisa berbagi kepada teman - teman Codingers disini, tentunya agar sama-sama mengerti dan bisa coding, dalam tugas grafika ini sebelumnya saya menggambarkannya pada kertas milimeter blok yang saya asumsikan titik-titik berupa pixel dan letak koordinat yang akan saya gambar dengan menyatukan garis. lebar dan panjang kertas saya asumsikan sebagai lebar layar.

dengan penggambaran awal pada kertas milimeter blok saya dapat memulai procedure-procedure apa saja yang saya lakukan di coding, dan fungsi-fungsi apa saja yang saya gunakan, Langsung saja berikut ini adalah codingnya.

program car;
uses crt,graph;
const jari=580;
var driver,mode,i:integer;
    xpusat,ypusat:integer;
begin
 clrscr;
 driver:=detect;
 initgraph(driver,mode,'');
 xpusat:=getmaxx div 2;
 ypusat:=getmaxy div 2;
 setfillstyle(1,white);
 floodfill(getmaxx,getmaxy,white); {escrim}

 setcolor(0);

 {tangga kota}
 i:=0;
 repeat
  rectangle(xpusat-200-i,getmaxy-90+i,xpusat+200+i,getmaxy-85+i);
 i:=i+5;
 until i>50;

 circle(550,200,25); //matahari

 {awan kanan}
 ellipse(xpusat+250,ypusat-150,15,180,50,30);
 ellipse(xpusat+300,ypusat-120,0,95,50,40);
 ellipse(xpusat+200,ypusat-120,180,90,30,30);
 line(xpusat+170,ypusat-120,xpusat+350,ypusat-120);

 {awan kiri}
 ellipse(xpusat-130,ypusat-80,15,180,50,30);
 ellipse(xpusat-80,ypusat-50,0,95,40,40);
 ellipse(xpusat-180,ypusat-50,180,90,30,30);
 line(xpusat-210,ypusat-50,xpusat-40,ypusat-50);

 setfillstyle(1,yellow);
 floodfill(550,200,0);

 rectangle(0,getmaxy-80,getmaxx,getmaxy);
 setfillstyle(9,green);
 floodfill(xpusat,getmaxy-20,0);

 {konstruksi monas}

 //escrim
 ellipse(xpusat,64,170,100,10,25);
 ellipse(xpusat-10,60,0,70,20,35);
 ellipse(xpusat-5,40,0,85,3,13);

 //beton
 line(xpusat-10,81,xpusat-20,getmaxy-200);
 line(xpusat+10,81,xpusat+20,getmaxy-200);
 line(xpusat,81,xpusat,getmaxy-110);
 rectangle(xpusat-140,getmaxy-200,xpusat+140,getmaxy-180);
 rectangle(xpusat-20,60,xpusat+20,65);
 rectangle(xpusat-25,65,xpusat+25,80);
 ellipse(xpusat-130,getmaxy-90,0,90,80,89);
 ellipse(xpusat+130,getmaxy-90,180,90,80,89);
 ellipse(xpusat,getmaxy-80,0,180,jari,jari+30);

 setfillstyle(1,14);
 floodfill(xpusat,57,0); {escrim}

 {wawrna kota}
 setfillstyle(1,1);
 floodfill(xpusat+50,ypusat,0);

{pewarnaan}
rectangle(xpusat-10,getmaxy-110,xpusat+10,getmaxy-90);

setfillstyle(1,8);
floodfill(xpusat+2,ypusat+153,0); {balok}
floodfill(xpusat+2,ypusat+180,0);

{kota jakarta}
i:=20;
repeat;
    setfillstyle(1,3);
    begin
    bar(350,180+i,450,200+i);
    end;
i:=i+30;
until i>400;

i:=20;
repeat
     //kotakiri
     rectangle(180+i,340-i,300+i,getmaxy-80);
     rectangle(220+i,300-i,230+i,270-i);
     rectangle(200+i,340-i,280+i,300-i);
     i:=i+140;
until i>200;

i:=20;
repeat
     //kotakanan
     rectangle(xpusat+220+i,300,xpusat+260+i,310);
     rectangle(xpusat+210+i,310,xpusat+270+i,320);
     rectangle(xpusat+200+i,320,xpusat+280+i,getmaxy-80);
     i:=i+100;
until i>200;
     //kotakanan2
     rectangle(xpusat+430,400,xpusat+500,getmaxy-80);
     rectangle(xpusat+440,390,xpusat+490,400);
     rectangle(xpusat+450,365,xpusat+460,390);
i:=20;
repeat;
    bar(xpusat+440,390+i,xpusat+490,410+i);
i:=i+30;
until i>210;

i:=20;
repeat;
    setfillstyle(1,3);
    begin
    bar(210,310+i,310,330+i);
    bar(xpusat+230,310+i,xpusat+290,330+i);
    bar(xpusat+330,310+i,xpusat+390,330+i);
    end;
i:=i+30;
until i>280;
i:=20;
repeat;
    setfillstyle(1,3);
    begin
    bar(350,180+i,450,200+i);
    end;
i:=i+30;
until i>400;

 {pintu}
 setfillstyle(1,0);
 floodfill(xpusat+2,getmaxy-108,0);
 setfillstyle(1,9);
 floodfill(xpusat,20,0);

 {akhir ellipse}
 setcolor(9);
 settextstyle(5,horizdir,3);
 outtextxy(xpusat+210,ypusat-150,'MONAS');
for i:=1 to 15 do
begin
 setcolor(i);
 settextstyle(5,horizdir,3);
 outtextxy(xpusat+180,ypusat-110,'JAKARTA');
 delay(300);
end;

 readln;
end.
dari koding di atas, maka akan menghasilkan output berikut ini :
Mungkin gambar yang dihasilkan kurang bagus seperti monas aslinya -_- , anda dapat melengkapi juga, alasannya karena saya bukan orang jakarta wkkwkw, jadi gambar aslinya di atas sebelumnya adalah Vector kalian dapat mencarinya di Google dengan kata Kunci Vector Image, dengan menggunakan vector image akan sangat mudah menerapkan atau mengimplementasikannya kedalam coding pascal Graph Unit untuk membuat suatu bentuk gambar.

Anda hanya perlu memahami sedikit gambarnya dan pemahaman juga tentang graph procedure di pascal serta, koordinat-koordinat yang ada, terpenting resolusi layar laptop/pc tempat kalian ngoding (ini sangat berpengaruh terhadap hasilnya).

Penjelasan Koding. :

Const : Jari .di dalam koding saya menerapkan konstanta atau nilai tetap yang telah saya tentukan, hal ini agar saya tidak mengulang koding. konstanta Jari ini digunakan untuk Membuat Lingkaran Biru besar pada gambar. Constanta nilainya digunakan Pada Procedure Ellipse.

Variabel i:integer : variabel "i" sebagai patokan untuk membuat suatu nilai integer, variabel ini digunakan pada perulangan REPEAT UNTIL, disini saya menggunakan Repeat Until karena lebih mudah dan lebih ringkas, dari pada harus menggunakan for to do atau while do. itu menurut analisa saya. nilai ini digunakan pada procedure rectangle (pembuatan tangga), procedure bar (kota jakarta).

Variabel xpusat,ypusat : jika kalian perhatikan pada coding, saya membuat 2 variabel baru di awal. variabel ini sebenarnya saya gunakan untuk mempersingkat fungsi graph kata Getmaxx dan getmaxy, anda dapat mengganti nama variabel seperti xp/yp, selain itu mengapa saya namakan xpusat, karena disini Getmaxx dan getmaxy saya ingin mendapatkan nilai tengahnya dengan DIV 2, sehingga titik koordinat akan tepat pada tengah layar laptop, dan semua procedure yang menggunakan nilai variabel xpusat dan ypusat sebagai koordinatnya maka akan tepat di tengah layar monitor pc/laptop anda.

contoh procedrue line dan Rectangle, Ellips pada penggambaran (konstruksi monas) , sihlakan anda cek di koding yang telah saya tandai. Untuk warna latar disini saya menggunakan setfillstyle awal warna Putih. karena akan sangat mudah untuk procedurenya melakukan pewarnaan pada garis maupun bentuk-bentuk yang lain, sehingga warna tidak akan keluar pada gambar yang ingin diberi warna.
Catatan :
hal terpenting untuk membuat Graph unit dan memberi warna adalah memberi batas untuk warna dan warna batas tidak boleh sama dengan warna bentuk procedure yang ingin anda beri warna, karena jika sama akan membuat warnanya keluar dari bentuk tersebut. Dan satu lagi anda perlu menempatkan posisi floodfill atau tempat warna pertama kali muncul harus berada pada dalam garis bukan di luar garis, contoh mewarnai kotak, maka floodfill koordinatnya harus berada pada dalam kotak.

untuk Animasi Text begerak berganti warna, di sini saya menggunakan For To do, anda dapat melihat koding paling bawah, warnanya akan berganti secara otomatis sesuai nilai variabel i yang muncul sebanyak 15x.

ok sobat codingers, itulah artikel kali ini, semoga dapat bermanfaat untuk anda pelajari, bagi yang masih bingung dapat bertanya, jangan segan untuk terus mampir ke blog ini, karena akan update selalu seputar bahasa pemrograman komputer. Terimakasih bagi kalian yang telah membaca dan setia berkunjung. thanks.

2 komentar

- Berkomentarlah Dengan Bijak.
- No link, S@ara, P#rn, etc.
- Jadilah Orang Cerdas agar anda Cerdas .wkwkwkw.
EmoticonEmoticon