Rabu, 06 Maret 2013

GRAFIKA KOMPUTER

Assignments (Tugas) / Project

Tugas 1

Buat sebuah image dengan format PNG menggunakan class GD::Simple. Image yang dibuat harus memiliki:
  1. Minimal 10 bentuk (shape) yang berbeda, misalnya kotak, ellipse, garis, lingkaran yang diposisikan dalam canvas sehingga membentuk gambar yang menarik.
  2. Canvas berukuran minimal 500 x 300 pixel.
  3. Tulisan dengan 4 jenis font dengan ukuran yang berbeda.
  4. Minimal 3 dari 10 bentuk yang dibuat dengan warna yang transparent (tidak memiliki isi berwarna).


Source Code

#!/usr/bin/perl -w

use strict;
use GD::Simple;

# create a new image
my $img = GD::Simple->new(600,600);

#skybackground
$img->bgcolor(106,226,244);
$img->fgcolor('black');
$img->rectangle(1,1,599,599);

#sun
$img->fgcolor(255,255,0);
$img->penSize(9);
$img->bgcolor(255,213,0);
$img->moveTo(500,100);
$img->ellipse(100,100);
$img->penSize(3);

# draw a oval
$img->fgcolor('green');
$img->bgcolor(undef);
$img->moveTo(100,60);
$img->ellipse(120,70);

#membuat tulisan
$img->moveTo(60,70);
$img->fgcolor('black');
$img->font('Avdira');
$img->fontsize(20);
$img->string('PEACE');


# membuat smile
$img->penSize('2');
$img->fgcolor('black');
$img->bgcolor('yellow');
$img->moveTo(90,150);
$img->ellipse(100,100);

$img->fgcolor('white');
$img->bgcolor('black');
$img->moveTo(70,140);
$img->ellipse(20,20);

$img->fgcolor('white');
$img->bgcolor('black');
$img->moveTo(110,140);
$img->ellipse(20,20);

$img->fgcolor('black');
$img->penSize('4');
$img->moveTo(113,175);
$img->angle(90);
$img->line(2);                       
$img->turn(10);
for(my $x=0; $x<18; $x++){
  $img->line(4);
}
$img->turn(90);
$img->line(48);

# membuat segitiga
$img->fgcolor('white');
$img->penSize('4');
my $segitiga1 = new GD::Polygon;
$segitiga1->addPt(87,350);
$segitiga1->addPt(27,200);
$segitiga1->addPt(147,200);
$img->polygon($segitiga1);   

# membuat segilima
my $segilima = new GD::Polygon;   
$segilima->addPt(87,210);
$segilima->addPt(117,225);
$segilima->addPt(107,250);
$segilima->addPt(67,250);
$segilima->addPt(57,225);       
$img->polygon($segilima);

# draw a rectangle
$img->fgcolor('black');
$img->bgcolor(undef);
$img->rectangle(200,60,370,150);
$img->moveTo(220,100);
$img->fgcolor('black');
$img->font('Analecta');
$img->string('SAFE');
$img->moveTo(280,125);
$img->fgcolor('black');
$img->font('Comic Sans MS');
$img->fontsize(23);
$img->string('GAZA');

# OK
$img->penSize('2');
$img->fgcolor('black');
$img->bgcolor(undef);
$img->moveTo(450,210);
$img->ellipse(120,80);
$img->fgcolor('black');
$img->moveTo(420,220);
$img->font('Atavyros');
$img->fontsize(31);
$img->string('OK !');
$img->moveTo(87,325);
$img->penSize('5');
$img->fgcolor('black');
$img->lineTo(87,450);

# membuat trapesium
$img->bgcolor(77,199,83);
$img->fgcolor(77,199,83);
my $trapesium = new GD::Polygon;   
$trapesium->addPt(350,280);       
$trapesium->addPt(430,280);
$trapesium->addPt(480,340);       
$trapesium->addPt(300,340);
$img->penSize('3');
$img->polygon($trapesium);

# membuat segienam
my $segienam = new GD::Polygon;
$segienam->addPt(320,320);
$segienam->addPt(340,300);
$segienam->addPt(300,260);
$segienam->addPt(280,250);
$segienam->addPt(250,270);
$segienam->addPt(310,300);
$img->polygon($segienam);

# membuat segilapan
$img->bgcolor(69,126,72);
$img->fgcolor('black');
my $segilapan = new GD::Polygon;   
$segilapan->addPt(480,340);       
$segilapan->addPt(300,340);
$segilapan->addPt(280,360);
$segilapan->addPt(280,380);
$segilapan->addPt(300,400);
$segilapan->addPt(480,400);
$segilapan->addPt(500,380);
$segilapan->addPt(500,360);       
$img->polygon($segilapan);
$img->moveTo(320,370);
$img->lineTo(460,370);
$img->moveTo(320,370);
$img->ellipse(40,40);
$img->moveTo(460,370);
$img->ellipse(40,40);

#ground
$img->bgcolor(139,105,20);
$img->fgcolor(139,105,20);
$img->moveTo(300,600);
$img->ellipse(2000,420);

$img->moveTo(200,230);
$img->font('Eunjin Nakseo');
$img->fgcolor('red');
$img->fontsize(25);
$img->string('STOP');

$img->moveTo(20,520);
$img->font('DkgHandwriting');
$img->fgcolor(0,232,255);
$img->fontsize(50);
$img->string('I LOVE GAZA');

print $img->png;










Output :



Tidak ada komentar:

Posting Komentar