İster C# kullanın ister VB kullanın; .NET ortamında çizim yapmak oldukça kolay ve hızlı bir olay. .NET çatısı altında bulunan GDI+ kütüphanesi bizim için birçok çizim araçlarını içermekte. Başka bir deyişler; kare, daire, elips vb. nesnelerin çizimini oldukça kolay hale getiren bir kütüphane. Peki genel mantık nasıl işliyor.
1. Graphics (ki kendisi çizim yapmamızı sağlayan nesnedir) nesnesini hangi yüzey üzerine çizim yapacaksak o yüzeyden oluşturuyoruz.
ÖR: eğer form üzerinde çizim yapılacaksa;
Graphics graph = this.CreateGraphics();
Yada PictureBox üzerinde çizim yapılacaksa;
Graphics graph = pictureBox1.CreateGraphics();
<!–more–>
2. Çizilecek nesnelerin koordinatları ve büyüklükleri belirtilir.//Karenin çizilmeye başlayacağı nokta
Point ptSquare = new Point(10,100);
//Karenin boyutu
Size szSquare = new Size(50,50);
Form üzerinde x=10, y=100 koordinatından başlamak üzere…
Genişlik=50, yükseklik=50….
3. Çizim rengi ve kalınlığı için Pen nesnesi
//Kırmızı renkte ve kalınlığı 2 olan kalemi elimize aldık ![]()
Pen pen = new Pen(Color.Red,2);
4. Çizim fonksiyonu çağrılır
//Kareyi Çiz
graph.DrawRectangle(pen, new Rectangle(ptSquare, szSquare));
Tabiki bu kadar değişkenlerle uğraşmayalım doğrudan çizelim diyenler için de yukarıdaki çizimi şu şekilde de yapabiliriz.
graph.DrawRectangle(new Pen(Color.Red, 2), new Rectangle(10, 100, 50, 50));
Bütün kod bloğu şu şekilde:
private void btnDraw_Click(object sender, EventArgs e)
{
//Bu nesne sayesinde çizim yapabiliyoruz. Hangi yüzey üzerine çizim
yapılacaksa o nesneden Graphics nesnesi üretilmelidir.
Graphics graph = this.CreateGraphics();
//Karenin çizilmeye başlayacağı nokta
Point ptSquare = new Point(10,100);
//Karenin boyutu
Size szSquare = new Size(50,50);
//Dairenin çizilmeye başlayaağı nokta
Point ptCircle = new Point(100,100);
//Dairenin boyutu
Size szCircle = new Size(50,50);
//Elipsin çizilmeye başlayacağı nokta
Point ptEllipse= new Point(200,100);
//Elips boyutu
Size szEllipse= new Size(100,50);
//Kırmızı renkte ve kalınlığı 2 olan kalemi elimize aldık
Pen pen = new Pen(Color.Red,2);
//Kareyi Çiz
graph.DrawRectangle(pen, new Rectangle(ptSquare, szSquare));
//Daireyi Çiz
graph.DrawEllipse(pen, new Rectangle(ptCircle, szCircle));
//Elips Çiz
graph.DrawEllipse(pen, new Rectangle(ptEllipse, szEllipse));
}