Minggu, 29 Maret 2015

MEMBUAT APLIKASI PAINT SEDERHANA



Bagaimana sih cara membuat aplikasi paint sederhana.
dibawah ini akan di jelaskan bagaimana cara membuat aplikasi sederhana menggunakan bahasa pemograman c# dengan Windows Form Application di visual studio 2012

ini cara nya, selahkan diikuti dan di kembangkan lagi
1. buka Visual studio 2012


2. pilih new project lalu Windows Forms Application, kasih judul dan oke


3. ambil tools apa saja yang akan kita gunakan di toolbox lalu tarik ke form1 anda


4. desain form1 seperti ini


“Sumbu x” adalah garis horizontal dan “sumbu y” adalah garis vertikal,
“panjang” adalah panjang garis yang telah kita buat.


untuk warna kita memakai button dan di beri warna sesuai nama dengan mengubah properties backimage.
sedangkan line, elips, rectangle,triangle dan clear, kita beri gambar yang dimasukkan dari background image.


5. jika sudah masukkan program ini
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //vARIABEL GLOBAL
        int tebal = 1, initialX, initialY;
        Pen p;
        Color wrn, wrn1;
        private Graphics objGraphic;
        private bool shouldPaint = false, warna = false;
        Boolean line, rectang, circle, triangle;
        double px, py, vector, angle;
        //VARIABEL LINE
        private Point preCoor, newCoor;
        //VARIABEL RECTANG
        int width, height;
        //VARIABEL CIRCLE
        int cirW, cirL;
        //VARIABEL TRIANGLE
        private List<Point> points = new List<Point>();
        Point a, b, c;
        Point[] list = new Point[3];

        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            objGraphic = panel1.CreateGraphics();
        }

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            tebal = (int)numericUpDown1.Value;
        }

        private void clear_Click(object sender, EventArgs e)
        {
            cleartext(); buttoncolor(); numericUpDown1.Value = 1;
        }
        //RESET BOlEAN OF BUTTON
        void reset()
        {
            line = false;
            rectang = false;
            circle = false;
            triangle = false;
        }
        //FUNGSI
        void color()
        {
            warna = true;
            p = new Pen(wrn);
            if (tebal == 0)
            {
                DialogResult box;
                box = MessageBox.Show("Masukkan nilai Width", "Error",    MessageBoxButtons.RetryCancel);
                if (box == DialogResult.Cancel)
                {
                    this.Dispose();
                }
            }
        }
        //FUNGSI RUMUS-RUMUS
        void rumusline()
        {
            px = newCoor.X;
            py = newCoor.Y;
            vector = Math.Sqrt((Math.Pow(px, 2)) + (Math.Pow(py, 2)));
            angle = Math.Atan(py / px) * 180 / Math.PI;
            display();
        }
        void rumusrectang()
        {
            px = width;
            py = height;
            vector = px * py;
            if(rectang == true)
            {
                angle = 0;
            }
            display();
        }
        void rumuscircle()
        {
            px = cirW;
            py = cirL;
            vector = Math.PI * 0.5 * (cirW + cirL);
            if(circle == true)
            {
                angle = 360;
            }
            display();
        }
        void rumustriangle()
        {
            px = b.X - a.X;
            py = c.Y;
            vector = 0.5 * px * py;
            if(triangle == true)
            {
                angle = 180;
            }
            display();
        }
        //TAMPILKAN INFORMATION
        void display()
        {
            textBoxX.Text = Convert.ToString(px);
            textBoxY.Text = Convert.ToString(py);
            textBoxL.Text = vector.ToString("#.##");
            textBoxAng.Text = angle.ToString("#,0.00");
        }
        //CLEAR TEXT
        void cleartext()
        {
            panel1.Invalidate();
            this.textBoxX.Clear();
            this.textBoxY.Clear();
            this.textBoxL.Clear();
            this.textBoxAng.Clear();
        }
        //BUTTON COLOR
        void buttoncolor()
        {
            Line.BackColor = Color.Snow;
            Rectang.BackColor = Color.Snow;
            Circle.BackColor = Color.Snow;
            Triangle.BackColor = Color.Snow;
        }
        //EVENT MOUSE
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left && warna == true)
            {
                if (line == true)
                {
                    shouldPaint = true;
                    preCoor = e.Location;
                    newCoor = preCoor;
                    panel1.Invalidate();
                }
                else if (rectang == true)
                {
                    shouldPaint = true;
                    initialX = e.X;
                    initialY = e.Y;
                    panel1.Invalidate();
                }
                else if (circle == true)
                {
                    shouldPaint = true;
                    initialX = e.X;
                    initialY = e.Y;
                    panel1.Invalidate();
                }
                else if (triangle == true)
                {
                    shouldPaint = true;
                    Point a = e.Location;
                    points.Add(a);
                    panel1.Invalidate();
                }
            }
        }

        private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            if (shouldPaint == true && warna == true)
            {
                if (line == true)
                {
                    ControlPaint.DrawReversibleLine(panel1.PointToScreen(preCoor), panel1.PointToScreen(newCoor), wrn1);
                    newCoor = new Point(e.X, e.Y);
                    ControlPaint.DrawReversibleLine(panel1.PointToScreen(preCoor), panel1.PointToScreen(newCoor), wrn1);
                }
                else if (rectang == true)
                {
                    this.Refresh();
                    p.Width = tebal;
                    width = e.X - initialX;
                    height = e.Y - initialY;
                    Rectangle rect = new Rectangle(Math.Min(e.X, initialX), Math.Min(e.Y, initialY), Math.Abs(e.X - initialX), Math.Abs(e.Y - initialY));
                    objGraphic.DrawRectangle(p,rect);
                }
                else if (circle == true)
                {
                    this.Refresh();
                    p.Width = tebal;
                    cirW = Math.Abs(e.X - initialX);
                    cirL = Math.Abs(e.Y - initialY);
                    Rectangle rec = new Rectangle(Math.Min(e.X, initialX), Math.Min(e.Y, initialY), Math.Abs(e.X - initialX), Math.Abs(e.Y - initialY));
                    objGraphic.DrawEllipse(p,rec);
                }
                else if (triangle == true)
                {
                    Point a = e.Location;
                    points.Add(a);
                    p.Width = tebal;
                    System.Diagnostics.Debug.WriteLine(e.Y);
                    a = points[0];
                    a.X = (points[0].X + points[points.Count - 1].X) / 2;
                    b = points[points.Count - 1];
                    b.X = points[0].X;
                    c = points[points.Count - 1];
                    list[0] = a;
                    list[1] = b;
                    list[2] = c;
                }
            }
        }

        private void panel1_MouseUp(object sender, MouseEventArgs e)
        {
            if (shouldPaint == true && warna == true)
            {
                if (line == true)
                {
                    p.Width = tebal;
                    ControlPaint.DrawReversibleLine(panel1.PointToScreen(preCoor), panel1.PointToScreen(newCoor), wrn1);
                    objGraphic.DrawLine(p, preCoor, newCoor);
                    rumusline();
                    shouldPaint = false;
                }
                else if (rectang == true)
                {
                    rumusrectang();
                    shouldPaint = false;
                }
                else if (circle == true)
                {
                    rumuscircle();
                    shouldPaint = false;
                }
                else if (triangle == true)
                {
                    this.Refresh();
                    objGraphic.DrawPolygon(p, list);
                    foreach (Point el in points)
                    System.Diagnostics.Debug.WriteLine(el);
                    rumustriangle();
                    shouldPaint = false;
                }
            }
        }

        private void panel1_MouseClick(object sender, MouseEventArgs e)
        {
            if (line == false &&rectang == false && circle == false && triangle == false)
            {
                DialogResult box2;
                box2 = MessageBox.Show("Pilih Bentuk", "Error", MessageBoxButtons.RetryCancel);
                if (box2 == DialogResult.Cancel)
                {
                    this.Dispose();
                }
            }
            if (warna == false)
            {
                DialogResult box1;
                box1 = MessageBox.Show("Pilih Warna", "Error", MessageBoxButtons.RetryCancel);
                if (box1 == DialogResult.Cancel)
                {
                    this.Dispose();
                }
            }
            if (tebal == 0)
            {
                DialogResult box;
                box = MessageBox.Show("Tentukan Ketebalan", "Error", MessageBoxButtons.RetryCancel);
                if (box == DialogResult.Cancel)
                {
                    this.Dispose();
                }
            }
        }
        //WARNA
        private void buttonBlack_Click(object sender, EventArgs e)
        {
            buttonBlack.FlatAppearance.BorderColor = System.Drawing.Color.White;
            wrn = Color.Black;
            wrn1 = Color.Black;
            color();
        }

        private void buttonRed_Click(object sender, EventArgs e)
        {
            buttonRed.FlatAppearance.BorderColor = System.Drawing.Color.White;
            wrn = Color.Red;
            wrn1 = Color.Cyan;
            color();
        }

        private void buttonOrange_Click(object sender, EventArgs e)
        {
            buttonOrange.FlatAppearance.BorderColor = System.Drawing.Color.White;
            wrn = Color.Orange;
            wrn1 = Color.DeepSkyBlue;
            color();
        }

        private void buttonYellow_Click(object sender, EventArgs e)
        {
            buttonYellow.FlatAppearance.BorderColor = System.Drawing.Color.White;
            wrn = Color.Yellow;
            wrn1 = Color.Blue;
            color();
        }

        private void buttonGreen_Click(object sender, EventArgs e)
        {
            buttonGreen.FlatAppearance.BorderColor = System.Drawing.Color.White;
            wrn = Color.Green;
            wrn1 = Color.Green;
            color();
        }

        private void buttonBlue_Click(object sender, EventArgs e)
        {
            buttonBlue.FlatAppearance.BorderColor = System.Drawing.Color.White;
            wrn = Color.Blue;
            wrn1 = Color.Yellow;
            color();
        }

        private void buttonPurple_Click(object sender, EventArgs e)
        {
            buttonPurple.FlatAppearance.BorderColor = System.Drawing.Color.White;
            wrn = Color.Purple;
            wrn1 = Color.Purple;
            color();
        }

        private void buttonMagenta_Click(object sender, EventArgs e)
        {
            buttonMagenta.FlatAppearance.BorderColor = System.Drawing.Color.White;
            wrn = Color.Magenta;
            wrn1 = Color.Lime;
            color();
        }
        //EXIT BUTTON
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (e.CloseReason == CloseReason.UserClosing)
            {
         DialogResult result = MessageBox.Show("Serius mau keluar", "Warning",
         MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    Environment.Exit(0);
                }
                else
                {
                    e.Cancel = true;
                }
            }
        }
        //BUTTON SHAPE
        private void Line_Click(object sender, EventArgs e)
        {
            reset();
            cleartext();
            line = true;
            buttoncolor();
            Line.BackColor = Color.LightCyan;
        }

        private void Rectang_Click(object sender, EventArgs e)
        {
            reset();
            cleartext();
            rectang = true;
            buttoncolor();
            Rectang.BackColor = Color.LightCyan;
        }

        private void Circle_Click(object sender, EventArgs e)
        {
            reset();
            cleartext();
            circle = true;
            buttoncolor();
            Circle.BackColor = Color.LightCyan;
        }

        private void Triangle_Click(object sender, EventArgs e)
        {
            reset();
            cleartext();
            triangle = true;
            buttoncolor();
            Triangle.BackColor = Color.LightCyan;
        }        
    }
}
   
6. jika sudah lakukan running program


ini adalah hasilnya jika sudah berhasil sob

demikian tutorial program c# untuk membuat paint sederhana di visual studio menggunakan windows form application.
semoga bermanfaat untuk kita semua.

0 komentar:

Posting Komentar