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 cizim2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//textbox'tan girilen değerleri bir değişkene atıyoruz
int a = Convert.ToInt32(textBox1.Text);
int b = Convert.ToInt32(textBox2.Text);
int c = Convert.ToInt32(textBox3.Text);
int d = Convert.ToInt32(textBox4.Text);
//textboxlara girilen değerlerin 360 derecelik pastadaki % kaç açıya sahip
//olacağını hesaplayan matematiksek hesaplamalar yapılıyor
//ör)a değişkeninin kaç dereceye eşit olduğunu deg1 diye bir değişkene atıyoruz
float toplam = a + b + c + d;
float deg1 = (a / toplam) * 360;
float deg2 = (b / toplam) * 360;
float deg3 = (c / toplam) * 360;
float deg4 = (d / toplam) * 360;
//daire çizimi için kalemimizin rengini ve kalınlığını belirleriz
Pen p = new Pen(Color.Red, 2);
//grapfik sınıfını kullanarak çizimimize başlarız
Graphics g = this.CreateGraphics();
//çizimimizin yapılacağı alan için rectangle sınıfını kullanırız.
//bunun için önce textbox1'in x noktasındaki koordinatının üzerine genişliği,y koordinatı,genişlik ve yükseklik tanımlarız
//böylece çizim yapacağımız alanı belirleriz
Rectangle rec = new Rectangle(textBox1.Location.X + textBox1.Size.Width + 10, 12, 150, 150);
//brush sınıfını daire çizildikten sonra içini boyamak için kullanacaz
//farklı renkler yaratılır
Brush b1 = new SolidBrush(Color.Red);
Brush b2 = new SolidBrush(Color.Black);
Brush b3 = new SolidBrush(Color.Blue);
Brush b4 = new SolidBrush(Color.Yellow);
g.Clear(Form.DefaultBackColor);
//drawpie ile pie chart çizimine başlanılır
//drawpie ilk parametresi dairenin çizimi için yarattığımız pen parametresini alır
//ikinci parametre çizim yapılacak alan
//üçüncü parametre çizim yapılacak başlangıç açısı
//dorduncu parametre kaç derecelik açı çizileceği
//başlangıç açısını 0 kabul ediyoruz,deg1 değişkenindeki açı büyüklüğü kadar çizim yapıyor
g.DrawPie(p, rec, 0, deg1);
//fillpie ile çizilen pasta grafiğindeki dilimlerin içini boyamak için kullanıyoruz
//aldığı birinci parametre yukarıda tanımladığımız brush sınıfından tanımladığımız nesnenin rengini alıyor
//ikinci parametre hangi alandaki grafik boyanacak
//üçüncü parametre boyanacak dilimin başlangıç açısı
//dördüncü parametre kaç derecelik boyanacak alan
g.FillPie(b1, rec, 0, deg1);
g.DrawPie(p, rec, deg1, deg2);
g.FillPie(b2, rec, deg1, deg2);
g.DrawPie(p, rec, deg2+deg1, deg3);
g.FillPie(b3, rec, deg2+deg1, deg3);
g.DrawPie(p, rec, deg3+deg2+deg1, deg4);
g.FillPie(b4, rec, deg3+deg2+deg1, deg4);
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
|