You are on page 1of 8

JU MJEOVITA SREDNJA ELEKTROTEHNIKA

KOLA TUZLA

KOLSKA GODINA
2015./2016.

Projektni zadatak
Predmet: Programiranje
Tema: Iscrtavanje kvadrata

UENICI:
Hadir Glavi
Jasmin Hidanovi
Razred: 4T1

MENTOR:
Zermina abi dipl.ing.el

TUZLA, novembar, 2015.god.

Sadraj
1.Uvod.................................................................................................... 3
2.Izrada projektnog zadatka ................................................................... 4
2.1 Zadatak.......................................................................................... 4
2.2 Izrada ............................................................................................ 4
2.3 Programski kod ............................................................................. 6
2.4 Primjer iscrtavanja kvadrata ......................................................... 7

1.Uvod
#(CSharp) je nastao u kompaniji Microsoft I nastao je kao odgovor na nedostatke

postojeih jezika kao to su C, C++ i Visual Basic, u isto vrijeme kombinirajui njihove
dobre strane.Razvijen je od strane tima strunjaka predvoenih sa Anders Hejlsbergom i Scott Wiltamuth-om. Na tritu se pojavio 2000. godine zajedno sa .NET
platformom. C# je nastao s ciljem da bude jednostavan, siguran, moderan, objektno
orijentiran jezik visokih performansi za .NET platformu. C# je nastao na temelju objektnih
jezika Java, C++ i Visual Basic. Vrlo je slian Javi i C++ jeziku (sintaksa i semantika je
dobrim dijelom preuzeta iz Jave, koja je kao i C# potpuno objektno orijentirani jezik). Ali C#
za razliku od Jave nije neovisan o platformi, tj. operativnom sustavu, ve je kreiran za izradu
stolnih (desktop) i Internet aplikacija u .Microsoft .NET okruenju. C# sadri sve dobre odlike
potpuno objektnog programskog jezika (koje veinom preuzima iz C++ i Jave), a u sklopu
.NET platforme omoguava kreiranje vizualnih aplikacija ak i onim korisnicima koji nemaju
programerskog iskustva. Takoer daje dobar uvid u nain na koji nastaju objektne i vizualne
aplikacije, i vrlo je lako nauiti korisnike kako projektirati takve aplikacije i upravljati njihovim
koritenjem. C# ima velike mogunosti u definiranju klasa (tipova objekata), novih metoda i
svojstava, te koritenju enkapsulacije, nasljeivanja i polimorfizma kao to je to omogueno
u C++ i Javi. Takoer podrava XML stil unutar dokumenata, suelja, svojstva, dogaaje te
podrava rad s pokazivaima i ''garbage collection''. C# koristi postupak zvan garbage
collection za oslobaanje memorije koju zauzimaju objekti koji vie nisu dostupni programu.
Programer je osloboen brige o tome koji su mu objekti vie ne trebaju (garbage), jer to
umjesto njega radi sustav. Ako je objekt postojao i bio koriten neko vrijeme, moe postojati
nekoliko poziva na njega. Objekt postaje garbage tek nakon to su nestanu svi pozivi na
njega. Ranije smo rekli da je C# radi u razvojnom okruenjo nazvanom .NET platforma, a
sada emo objasniti to je to. .NET platforma je zapravo razvojni okvir koji omoguava novo
suelje za programiranje aplikacija (eng. application programming interface, tj. API) i
ujedinjuje klasino suelje Windows operativnog sustava, zajedno s brojnim tehnologijama
koje su proizale iz Microsoft-a, kao to su ASP razvojni okvir za web, XML,
objektnoorijentirani dizajn, podrku za nove web uslune protokole kao to je SOAP, WSDL,
i UDDI, sa naglaskom na Internet, a sve integrirano unutar DNA arhitekture (eng. Windows
Distributed interNet Applications Arcitecture).

2.Izrada projektnog zadatka


2.1 Zadatak
Boja kvadrata se bira iz color dijaloga, dugme boja. Kvadrati se iscrtavaju na mjestu pritiska
tastera mia ili klika mia i dok je pritisnut uveavaju se a po otputanju klika prestaje
crtanje( timer,mouse down).

2.2 Izrada
Dakle,projekat emo raditi u C# alatu kao Windows Forms Application.Kada pokrenemo
program kliknemo na New project i odabrat emo Windows Forms Application.Zatim to
emo uraditi ubacit emo u formu ono to nam je potrebno za projekat.Ubacujemo 2 buttona i
jedan textbox,timer i colordialog to moete vidjeti na slici ispod

Kvadrati e se iscrtavati na Formi a mogu pomou panela i picturebox-a.Kvadrati se


iscrtavaju dok je bilo koji taster mia pritisnut za to nam treba Event MouseDown a to emo
uraditi tako to emo kliknuti na formu I otii u desni donji ugao na ikonu u obliku munje i
odabrati event.

Deklarisat emo tri varijable:x,y,a tipa integer.U MouseDown eventu x i y dodjeljujemo da uzima x i y
koordinate a varijabla a nam je veliina kvadrata i na poetku dodjeljujemo joj vrijednost 0.Znai dok
je taster pritisnut tajmer je ukljuen.Kod za ovaj dio moete vidjeti na slici ispod.Klasu Graphics smo
deklarisali ispred u public jer ako deklariemo privatno u nekoj funkciji neemo je moi korisiti u
drugim,a trebat e nam posle

Dvostrukim klikom na Timer otvaramo funkciju timera;timer1_tick.Dok je taster pritisnut timer e da


iscrtava kvadrat i poveava njegovu veliinu tj inkrementuje za onoliko koliko vi elite u naem
sluaju je to a+=4.Dakle kreirali smo graphics klasu i objekat kv.Zatim smo objektu kv dodijeli
metodu za kreiranje grafikog elementa.Zatim smo kreirali klasu SolidBrush(brush znai kojom e
bojom biti popunjen objekat koji nacrtamo) i objekat boja i tom objektu dodijeli new
SolidBrush(colordialog.color)
.Ovom metodom objekat boja uzima boju koju odaberete iz colordialoga.Dakle na objekat se
uveava za 4,a koordinati se umanjuju za 2,da bi postigli da prilikom iscrtavanja kursor bude na
sredini kvadrata.Objektu kv smo dodijeli metodu FillRectangle koja ima 5 argumenata a to je ustvari
objekat koji e se iscrtati i biti e popunjen bojom.Prvi argument je boja;drugi i trei koordinate;etvrti
irina;peti visina

Kada pustimo taster mia koji smo pritisnuli objekat treba da prestane sa iscrtavanjem a to emo
postii tako to emo prvo odabrati event MouseUp i onda emo timer zaustaviti pomou metode
stop.To moete vidjeti na slici

Da odaberete boju koristili smo colordialog tj kada kliknete na button Izaberi boju izbaci vam
colordialog sa bojama a pored tog buttona nalazi se textbox koji uzima boju koju smo odabrali i
prikazuje je isto da znate koja je odabrana boja.Kod moete vidjeti ispod na slici

Dugme oisti slui da oisti pozadinu kada zavrite sa iscrtavanjem.Da ne biste svaki put izlazili iz
aplikacije i ponovo ulazili.To smo postigli tako to smo pozvali objekat kv i dodijeli metodu clear i
vraa poetnu boju povrine.If nam slui u sluaju ako kliknete taj button a niste nita nacrtali da
program ne bi pao jer kada pritisnete pozove se funckija od objekta koji nije kreiran tj,pokazuje na null

2.3 Programski kod


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
colorDialog.ShowDialog();
textBox1.BackColor = colorDialog.Color;
}
int x, y, a;
Graphics kv;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{

x = e.X;
y = e.Y;
a = 0;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
kv = CreateGraphics();
SolidBrush boja = new SolidBrush(colorDialog.Color);
a += 4;
x -= 2;
y -= 2;
kv.FillRectangle(boja,x,y,a,a);
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
timer1.Stop();
}
private void button2_Click(object sender, EventArgs e)
{
if(kv!=null)
kv.Clear(BackColor);
}

}
}

2.4 Primjer iscrtavanja kvadrata


Primjer sa iscrtanim kvadratima

Primjer oiene povrine nakon iscrtavanja

You might also like