Minggu, 29 Maret 2015

Mencoba untuk menduplikat aplikasi paint


Asslamualaikum semuanya, 

aplikasi Paint merupakan aplikasi yang selalu ada di setiap computer pada umumnya, walaupun sudah banyak saingan paint seperti Photoshop, Corel Draw, dan lain sebagainya. Namun aplikasi ini masih tetap digunakan sebagian orang. Saya sering menggunakan aplikasi ini untuk meng-screenshoot tampilan yang ini dijadikan gambar.Contoh nya saja setiap gambar yang saya tampilkan pada tutorial -tutorial pemograman sebelumnya.

Nah, disini kita coba untuk menjadi salah satu saingan paint J walaupun tidak sehebat corel dan photoshop, hehe

Berikut adalah cara membuat aplikasi paint sedernaha, namun sebelumnya, ayo kita coba dulu membuat dasar pemograman paint untuk menampilkan free graph

1)      Buka visual studio, pilih new project. Kemudian pilih Windows Form Application, lalu ganti nama untuk memudahkan proses dokumentasi file, klik OK

2)      Inilah  tampilan awal dari Windows Form Application. Pada form yang kosong, kita dapat mendesain view dari aplikasi yang kita buat. Kita akan sering menggunakan Toolbox dan Properties

Oiya, adalah satu hal yang ingin saya sampaikan, untuk membuat paint, ada penambahan satu fungsi program yaitu pada mouse, mouse digunakan untuk control penggambaran. Pada umumnya, ada tiga event mouse yang digunakan dalam penggambaran.
Mouse Down     è Ketika mouse di-klik
Mouse Move     è Ketika mouse di_drag
Mouse Up           è Ketika mouse dilepas
Cara mengakses event-event diatas yaitu
a)      Klik form

b)      Klik Event pada Properties (gambar petir)

c)       Klik event-event diatas untuk diisi kodingannya

3)      Berikut adalah setingan awal untuk program paint

4)      Ini adalah Program untuk event mouse

Inilah hasil dari pemogramannya.

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.