Klasa grafik.

Slides:



Advertisements
Similar presentations
COMPUTER PROGRAMMING I Objective 8.03 Apply Animation and Graphic Methods in a Windows Form (4%)
Advertisements

Računarska grafika GDI+ (Graphics Device Interface Plus)
CST238 Week 5 Questions / Concerns? Announcements – HW#1 due (Project ideas) – Check-off Take Home lab#4 Recap New topics – Drawing Coming up: – GUI Bloopers.
Lecture 16: Multithreaded Programming. public partial class Form1 : Form { Thread ct; Thread rt; public static int circle_sleep = 0; public static int.
Prof: doc.dr. Samir Lemeš student: Samir Hrnjić. System restore je komponenta Microsoftovih operativnih sistema Windows Serveri ne podržavaju opciju System.
Images Part 11 dbg. 2 Images The form and several controls can display a number of different types of image files in the BackgroundImage Property. These.
Objektno orijentisano programiranje
Nikolina Đapić | Luka Ibrišimović | Jurica Šeparović
ASPECT RATIO PAŠIĆ ANELA.
Besplatni softverski alati
TABELE.
ZLATNI PRESEK Zlatni presek u matematici i umetnosti je specifični odnos između dve veličine koje zadovoljavaju sledeće pravilo: odnos njihovog zbira i.
Mrezno racunarstvo Java, niti.
Objektno-Orientisani Dizajn
RP3/predavanje08 Ugniježdeni tipovi Iznimke 10/11/2018
Java Hello world !.
Chapter 7 Arrays (Nizovi).
Programi,Podaci,Varijable,Računanje- Uvod
KONTROLE.
Grafičke kartice.
Teorema o 4 boje(Four color theorem)
PROGRAMIRANJE MENIJA.
CheckBox RadioButton RadioGroup
Naredbe ciklusa.
IF NAREDBA – naredba grananja
7. Rad sa AWT-komponentama
Mrezno racunarstvo glava 7 URLs and URIs.
Gromobranska zaštita vetroelektrana
УБАЦИВАЊЕ ОКВИРА ЗА ДИЈАЛОГ И ТЕКСТ АПЛИКАЦИЈЕ
Објектно орјентисано програмирање
KREIRANJE OBJEKATA.
Java Klase (Classes).
Uvod u programiranje - matematika – X predavanje
Šalej Mirko Iskraemeco, d.d. Kranj
RAZGRANATA STRUKTURA Zadaci i rešenja
RAZGRANATA STRUKTURA Zadaci i rešenja
Arrays and strings -2 (nizovi i znakovni nizovi)
LABORATORIJSKA VEŽBA VEŽBA 4
14 UNUTRAŠNJE I ANONIMNE KLASE
Изведене класе Вишеструко извођење Полиморфизам
Podešavanje osobina stranica
Arrays and strings -1 (nizovi i znakovni nizovi)
SIVI BALANS SIVI OMJER.
Objektno orijentisano programiranje
Kartica Insert.
Regional Center for Talented Youth Belgrade II
M-datoteke.
Element form Milena Kostadinović.
InputBox i naredba IF.
MessageBox.
Računarska grafika.
Glava 9 Polimorfizam.
Objektno orijentisano programiranje
predavanja v.as.mr. Samir Lemeš
MATEMATIČKI FAKULTET, UNIVERZITET U BEOGRADU
ProDESKTOP8.0 CRTANJE NA RAČUNARU.
Default konstruktor struct C{ int i; }; struct D{ D( ):i(1){ }
Home - Bullets & Numbering -
Objektno-orijentirano programiranje
Kontrast svjetlo-tamno
Programiranje za Internet
Skup instrukcija procesora
Naredbe u php-u.
10th International Conference on Live Maintenance
Elder Scroll V:Skyrim.
predavanja v.as.mr. Samir Lemeš
INTERPOLACIJA PO DIJELOVIMA POLINOMIMA
Vježbenica 2: struktura grananja – 2.dio
Hour of Code Coding Jetpack Jumper Mateja Hržica, MSP.
Iracionalni brojevi
Presentation transcript:

Klasa grafik

Sistemske kontrole mozemo koristiti i za crtanje raznih oblika, sto se postize i koriscenjem metoda ugradjen klase Graphics. Objekat klase Graphics predstavlja povrsinu po kojoj se crta.Prvo ga moramo kreirati ,sto se postize pozivanjem metode CreateGraphics() za neku kontrolu ,kreira se objekat klase Graphics tako da je povrsina za crtanje upravo ta kontrola. Klasa Graphics sadrzi metode za crtanje raznih oblika, izmedju ostalih i : Drav Line – za crtanje linije DrawEllipse- za crtanje elipse DrawRectangle- za crtanje pravougaonika DrawArc –za crtanje proizvoljnog luka DrawBezier-za crtanje krive linije oko cetri tacke FillELLIPSE – ZA CRTANJE POPUNJENE ELIPSE FillRectangle –za crtanje poopunjenog pravougaonika Prostor za crtanje brisemo metodom Clear klase Graphics Npr. g.Clear(Color.White); objekat klase Graphics se popunjava belom bojom

Kreirani objekat klase Graphics zauzima odgovarajuce resurse naseg Sistema pa je potrebno , po zavrsetku crtanja , osloboditi te resurse koriscenjem metode Dispose() klase Graphics . Pri koriscenju metoda za crtanje neophodno je kreirati oluvku (objekat klase Pen) ako zelimo da crtamo konture zeljenog oblika ili cetku (objekat klase SolidBrush) ako zelimo popunjeni oblik. Klasa Pen je definisana u imenskom prostoru SystemDrawing. Objektom klase Pen definisemo sirinu, boju i stil linije.Stil je definisan svojstvom DashStyle cija je vrednost tipa DashStyle definisanog u imenskom prostoru System.Drawing. Drawing2D. Objekat klase Pen kreiramo pozivom konstruktora.najcesce se poziva konstruktor kome predajemo, kao parameter redom boju i sirinu objekta. Npr objekat olovka klase Pen cija je boja crvena a sirina 5, kreiramo na sledeci nacin Pen olovka=new Pen(Color.red,5);Kad zavrsimo sa koriscenjem objekta klase Pen potrebno je osloboditi resurse koje taj objekat koristio olovka.Dispose();

1. Kreirati aplikaciju kojom se u PictureBoxu crtaju dijagonale, pravougaonik ili elipsa. Izbor realizovati korišćenjem tri kontrole Button. private void btDijagonale_Click(object sender, EventArgs e) { pictureBox1.Refresh(); Graphics g=pictureBox1.CreateGraphics(); Pen olovka=new Pen(Color.Red,3); g.DrawLine(olovka,0,0,pictureBox1.Width,pictureBox1.Height); g.DrawLine(olovka,pictureBox1.Width,0,0,pictureBox1.Height); olovka.Dispose(); // nije neophodno g.Dispose(); // nije neophodno } private void btPravougaonik_Click(object sender, EventArgs e) // kreiranje grafickog objekta // ciscenje prostora za crtanje g.Clear(Color.White); // kreiranje olovke crvene boje, sirine 3 // crtanje pravougaonika g.DrawRectangle(olovka,10,10, pictureBox1.Width-20 , pictureBox1.Height-20); olovka.Dispose(); g.Dispose();

private void btElipsa_Click(object sender, EventArgs e) { pictureBox1.Refresh(); Graphics g=pictureBox1.CreateGraphics(); Pen olovka=new Pen(Color.Red,3); g.DrawEllipse(olovka,10,10, pictureBox1.Width-20 , pictureBox1.Height-20); olovka.Dispose(); g.Dispose(); } 3. Kreirati aplikaciju kojom se a) za dato r crta slika kao na crtežu, krugovi su sa centom u sredini objekta kalse PixtureBox, prvi krug je datog poluprečnika r, a svaki sledeći je za 10 veći od prethodnog

private void btCrtez1_Click(object sender, EventArgs e) { Graphics g = pictureBox1.CreateGraphics(); Pen olovka = new Pen(Color.Blue, 2); int w = pictureBox1.Width; int h = pictureBox1.Height; g.Clear(Color.White); g.DrawLine(olovka, w / 2, 0, 0, h / 2); g.DrawLine(olovka, 0, h / 2, w / 2, h); g.DrawLine(olovka, w / 2, h, w, h / 2); g.DrawLine(olovka, w, h / 2, w / 2, 0); olovka.Width = 5; olovka.Color = Color.Red; int r = Convert.ToInt32(textBox1.Text); g.DrawEllipse(olovka, w / 2 - r, h / 2 - r, 2 * r, 2 * r); r = r + 10; }

b) crta cržek kao na slici (objekat klase PictureBox se deli na 9 jednakih delova)

private void btCrtez2_Click(object sender, EventArgs e) { Graphics g = pictureBox1.CreateGraphics(); Pen olovka = new Pen(Color.Blue, 5); int w = pictureBox1.Width; int h = pictureBox1.Height; g.Clear(Color.White); g.DrawLine(olovka, w / 3, 0, w / 3, h); g.DrawLine(olovka, 2 * w / 3, 0, 2 * w / 3, h); g.DrawLine(olovka, 0, h / 3, w, h / 3); g.DrawLine(olovka, 0, 2 * h / 3, w, 2 * h / 3); olovka.Color = Color.Red; olovka.Width = 3; g.DrawLine(olovka, 0, 0, w / 3, h / 3); g.DrawLine(olovka, w / 3, 0, 0, h / 3); g.DrawLine(olovka, 2 * w / 3, 2 * h / 3, w, h); g.DrawLine(olovka, w, 2 * h / 3, 2 * w / 3, h); SolidBrush cetka = new SolidBrush(Color.Green); g.FillEllipse(cetka, w / 3 + 5, h / 3 + 5, (w / 3 - 10), (h / 3 - 10)); cetka.Color = Color.Yellow; g.FillEllipse(cetka, w / 3 + 20, h / 3 + 20, (w / 3 - 40), (h / 3 - 40)); }