// Çizim Temelleri | www.aliakyildirim.com | Ali AKYILDIRIM
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;
using System.Drawing.Drawing2D;
// Çizim Temelleri | www.aliakyildirim.com | Ali AKYILDIRIM
namespace CizimTemelleri
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2();
            frm.Show();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            // www.aliakyildirim.com
        }
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawLine(Pens.DarkRed, 10, 10, 100, 10);
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            g.DrawEllipse(Pens.DarkSeaGreen, 15, 15, 50, 50);
            g.FillEllipse(Brushes.Yellow, 75, 15, 50, 50);
            g.FillPolygon(Brushes.Red, new Point[] { new Point(35, 75), new Point(10, 125), new Point(75, 125), new Point(35, 175), new Point(35, 175) });
            g.Dispose();
        }
        Point p1 = new Point();
        Point p2 = new Point();
        int tiklanmaSayisi = 0;
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            if (tiklanmaSayisi % 2 == 0)
            {
                p1.X = e.X;
                p1.Y = e.Y;
            }
            else
            {
                p2.X = e.X;
                p2.Y = e.Y;
                Graphics g = panel1.CreateGraphics();
                g.DrawLine(Pens.Navy, p1, p2);
                g.Dispose();
            }
            //Graphics g = panel1.CreateGraphics();
            //g.DrawLine(Pens.Navy, p1, p2);
            //g.Dispose();
            tiklanmaSayisi++;
        }
        void PastaGrafigiCiz(double[] yuzdeler, Color[] renkler, Graphics alan, Point yer, Size boyut)
        {
            double toplam = 0;
            foreach (double yuzde in yuzdeler)
            {
                toplam += yuzde;
            }
            if (toplam != 100)
            {
                throw new Exception("Yüzde Degerlerinin Toplami 100 Olmalidir..!");
            }
            if (renkler.Length != yuzdeler.Length)
            {
                throw new Exception("Her Dilime Bir Renk Eslesmelidir..!");
            }
            double toplamYuzde = 0;
            alan.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            for (int i = 0; i 
            {
                alan.FillPie(new SolidBrush(renkler[i]),
                            new Rectangle(yer, boyut),
                             (float)(toplamYuzde * 360 / 100),
                             (float)(yuzdeler[i] * 360 / 100));
                toplamYuzde += yuzdeler[i];
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            PastaGrafigiCiz(new double[] { 10, 20, 50, 20 }, new Color[] { Color.Purple, Color.Beige, Color.LightCoral, Color.Orange }, panel2.CreateGraphics(), new Point(10, 10), new Size(200, 200));
        }
        private void panel3_Paint(object sender, PaintEventArgs e)
        {
            Rectangle rec = new Rectangle(20, 20, 200, 200);
            LinearGradientBrush renk = new LinearGradientBrush(rec, Color.FromArgb(0, 0, 0), Color.FromArgb(120, 120, 255), 255);
            Graphics g = e.Graphics;
            g.SmoothingMode = SmoothingMode.HighQuality;
            g.FillEllipse(renk, 20, 20, 170, 170);
            // 3 Boyutlu hale getirmek için kullanicilari kandiriyoruz :)
            renk.LinearColors = new Color[] { Color.FromArgb(120, 120, 255), Color.FromArgb(0, 0, 0) };
            g.FillEllipse(renk, 30, 30, 150, 150);
        }
    }
}
// Çizim Temelleri | www.aliakyildirim.com | Ali AKYILDIRIM
Kaynak: Bu Örnek, Bilge Adam egitimi Sirasinda Türkay Ürkmez Tarafindan Yapilmis ve Yazilimcik.com ailesi tarafindan gelistirilmistir.