1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỀ TÀI : MÔ PHỎNG CHƯƠNG TRÌNH VẼ HÌNH PAINT

14 1.7K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Đây là một tài liệu dùng để biểu diễn cơ bản thiết kế “Mô phỏng trình vẽ Paint phương pháp LTHDT”. Tài liệu này giúp ta có cái nhìn toàn vẹn về cơ cấu và cách xây dựng chương trình, cũng như chức năng của chương trình. Do thời gian có hạn nên còn chưa đầy đủ chức năng như chương trình Paint của MS. Tuy nhiên, những chức năng đó sẽ được bổ sung trong thời gian sớm nhất.

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC ………………………………………… ĐỀ TÀI : MÔ PHỎNG CHƯƠNG TRÌNH VẼ HÌNH PAINT BÁO CÁO CHI TIẾT BÀI TẬP LỚN Môn học: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Thầy hướng dẫn: TS NGUYỄN THÁI BÌNH Sinh viên thực hiện: Lớp: ĐINH KHÁNH HƯNG ĐOÀN VĂN ĐOÀN Toán Tin K57 HÀ NỘI – 2014 20111543 20121523 Lời Mở đầu Đây tài liệu dùng để biểu diễn thiết kế “Mô trình vẽ Paint phương pháp LTHDT” Tài liệu giúp ta có nhìn toàn vẹn cấu cách xây dựng chương trình, chức chương trình Do thời gian có hạn nên chưa đầy đủ chức chương trình Paint MS Tuy nhiên, chức bổ sung thời gian sớm Trong trình thiết kế thực không tránh khỏi sai xót, mong quí thầy cô bạn thông cảm có góp ý kiến quí báu nhằm hoàn thiện cho sản phẩm Xin chân thành cảm ơn! I.Giới thiệu chung Trong xu phát triển công nghệ thông tin vũ bão hiên nay, đặc biệt ngành công nghệ phần mềm ngày đòi hỏi trình độ cao kĩ thuật lập trình Chính mà phương pháp lập trình hướng thủ tục cổ điển trước không đáp ứng nhu câu đặt thời đại, phương lập trình xây dựng theo nguyên lý Alan-Kay đươc đời nhằm đáp ứng nhu cầu cấp thiết đó: “Phương pháp Lập Trình Hướng đối Tượng” Bài tập thiết kế theo phương pháp LTHDT ngôn ngữ C#, ngôn ngữ phát triển Micro Soft dựa tảng hai ngôn ngữ mạnh mẽ C++ Java Chính mà giải vướng mắc gặp phải thết kế chương trình theo thủ tục túy: • • Mã chương trình rõ ràng, dễ đọc, dễ hiểu, cô đọng Chương trình tổ chức thành Class lắp ghép lai với thành khối • thống Mỗi Class gồm nhiều Method đảm nhân vai trò khác chương • • trình Chương trình có tính mềm dẻo cao Có khả tái sử dụng tài nguyên II.Chức Năng Yêu Cầu:   Project title: demo_chuong_trinh_paint Giới thiệu tổng quát: Đây chương trình mô tả chức chương trình vẽ Paint Micro Soft xây dựng, chương trình xây dựng ngôn ngữ lập trình C# theo phương pháp Hướng Đối Tượng Chương trình đơn giản cung cấp chức vẽ bản: vẽ hình tô màu… dễ sử dụng  thân thiện với người dùng Các chức chi tiết: Giao diện chương trình xây dựng theo kiểu “windows form” Các menu theo kiểu đa cấp File • New: Tạo file(trang vẽ ) trống • • • Open: Mở tệp tin hình ảnh có sẵn Save: Lưu file vào nơi mong muốn Exit: Thoát chương trình Edit Zoom: Thực phóng to hay thu nhỏ ảnh Draw đoạn thẳng: vẽ đoạn thẳng Fill hình tròn: vẽ tô mà theo màu cọ vẽ cho hình tròn Draw đường tròn: vẽ đường tròn Fill hình chữ nhật: vẽ tô màu cọ vẽ cho hình chữ nhật Draw hình chữ nhật: vẽ hình chữ nhật rỗng Size: chon kích thươc cho chổi vẽ Chọ màu: chọn màu tô màu vẽ cho chổi vẽ Yêu cầu hệ thống:  Cấu hình máy: CPU Pentium III 650 Mhz, RAM 512, VGA 16M trở •   lên  Hệ điều hành: Window XP trở lên  Yêu cầu hệ thống: Visual Studio 2008 trở lên, Framework 4.0 trở lên Chương trình thao tác vẽ chuột Giới hạn đề tài:  Do thời gian có hạn nên chưa thể làm hết chức chương trình paint như: người dùng chưa thể vẽ tự do,giao diện sơ sài,chưa đẹp mắt III.Hình ảnh minh họa Cấu trúc chương trình: Hình ảnh minh họa: Giao diện chương trình: Chương trình thực vẽ: Chương trình thực lưu file: Chương trình thực mở file: Cấu trúc chương trình: Hình ảnh chương trình xây dựng Visual Studio 2010: Chương trình xây dựng dựa kế thừa Class xây dựng sẵn: graphics, DrawRectangle, DrawFillelipes… việc xây dựng chương trình trở nên nhẹ nhàn nhiều IV Cách xây dựng chương trình:  Cách xây dưng số tính chương trình: 1- cách thiết kế giao diện 2- cách bắt kiện vẽ số hình chương trình 3- cách thiết kế tạo chức cho menu(sử dụng Menu&Toolbar có sẵn) I -chúng ta thiết kế giao diện dựa công cụ ứng dụng winform application ngôn ngữ C# -sử dụng controls,containers,Menus&toolbars để thiết kế giao diện cho chương trình Giới thiệu qua công dụng controls sử dụng chương trình: -button controls tạo nút tương tác với người dùng, cụ thể chương trình tạo nút giúp người dùng chọn màu hay vẽ hình, button có thuộc tính kiện khác giúp người lập trình dễ ràng thao tác hay bắt kiện việc lập trình -combobox controls tạo hộm thoại mà người dùng kích vào sổ loạt giá trị mà người lập trình cài đặt, cụ thể kích cỡ nét vẽ -panel containers dùng để chứa controls -Menustrip Menus toolbars dùng để thiết kế me nu cho trương trình Do controls,containers,Menus&toolb thiết kế thân thiện nên việc thiết kế, sử dụng đơn giản việc kéo thả vào form ý muốn II-bắt kiện vẽ - Trước tiên để vẽ hình VD: đoạn thẳng phải bắt kiện di chuột,nhấp chuột nhả chuột c# visual - hỗ chợ tốt Cách vẽ hình: Đầu tiên ta phải khai báo điểm thuộc Class Point(có sẵn) “p1”, “p2” qui định tọa độ, đo p1: tọa độ điểm bắt đầu nhấp chuột, p2: tọa độ bắt đầu nhả chuột Hai biến nguyên “dx”, “dy” dùng để lưu chiều rộng(width) chiều dài(height) hình Khai báo biến thuộc Class Pen (pen) dùng để làm bút vẽ ; biến thuộc Class Brush(bs) dùng làm cọ vẽ biến thuộc lớp Graphics(_grs) dùng để vẽ Khi vẽ cần phải lưu ảnh lại nên sử dụng biến thuộc kiểu Bitmap(_bm) để lưu ảnh Một số đoạn code tiêu biểu: Hàm điều khiển vẽ: void Form1_Paint(object sender, PaintEventArgs e) { Pen pen; SolidBrush sb; if (_isdown == true)//_isdown dùng để đánh dấu xem người dùng nhấp chuột // hay rê chuột { int dx = _p2.X - _p1.X; int dy = _p2.Y - _p1.Y; switch (_currshapemode)//_currshapemode: dùng để xem người dùng muốn vẽ // -hình { case shapemode.line://vẽ đường thẳng pen = new Pen(_currleftcolor,_currpensize); e.Graphics.DrawLine(pen, _p1, _p2);// hàm vẽ break; case shapemode.fillellipse://vẽ hình elip sb = new SolidBrush(_currleftcolor); e.Graphics.FillEllipse(sb,_p1.X,_p1.Y,dx,dy); break; case shapemode.rawellipse://vẽ đường elip pen = new Pen(_currleftcolor,_currpensize); e.Graphics.DrawEllipse(pen, _p1.X, _p1.Y,dx,dy); break; case shapemode.rawrectangtle:// vẽ hình chữ nhật rỗng pen = new Pen(_currleftcolor, _currpensize); e.Graphics.DrawRectangle(pen, _p1.X, _p1.Y, dx, dy); break; case shapemode.fillrectangle:// vẽ hình chữ nhật đặc sb = new SolidBrush(_currleftcolor); e.Graphics.FillRectangle(sb,_p1.X,_p1.Y,dx,dy); break; default: MessageBox.Show("error"); break; } } } Hàm nhấp chuột: void Form1_MouseDown(object sender, MouseEventArgs e) { _isdown = true; _p1 = new Point(e.Location.X,e.Location.Y); } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } private void bntchonmau_Click(object sender, EventArgs e) { ColorDialog cld = new ColorDialog(); cld.ShowDialog(); if (cld.ShowDialog() == DialogResult.OK) { if (_currbuttoncolor == buttoncolor.LEFT) { bntmautrai.BackColor = cld.Color; _currleftcolor = cld.Color; } else { } } bntmauphai.BackColor = cld.Color; _currrightcolor = cld.Color; } Hàm rê chuột: void Form1_MouseMove(object sender, MouseEventArgs e) { if (_isdown==true) { _p2 = new Point(e.Location.X, e.Location.Y);// lấy tọa độ cho p2 this.Refresh(); } lbltoado.Text = e.Location.X.ToString() + "," + e.Location.Y.ToString(); } Hàm thả chuột: void Form1_MouseUp(object sender, MouseEventArgs e) { _isdown = false; Pen pen; SolidBrush sb; int dx = _p2.X - _p1.X; int dy = _p2.Y - _p1.Y; switch (_currshapemode) { case shapemode.line: pen = new Pen(_currleftcolor, _currpensize); _grs.DrawLine(pen, _p1, _p2); break; case shapemode.fillellipse: sb = new SolidBrush(_currleftcolor); _grs.FillEllipse(sb, _p1.X, _p1.Y, dx, dy); break; case shapemode.rawellipse: pen = new Pen(_currleftcolor,_currpensize); _grs.DrawEllipse(pen, _p1.X, _p1.Y,dx,dy); break; case shapemode.rawrectangtle: pen = new Pen(_currleftcolor, _currpensize); _grs.DrawRectangle(pen, _p1.X, _p1.Y, dx, dy); break; case shapemode.fillrectangle: sb = new SolidBrush(_currleftcolor); _grs.FillRectangle(sb, _p1.X, _p1.Y, dx, dy); break; default: MessageBox.Show("error"); break; } this.BackgroundImage = (Bitmap)_bm.Clone(); } Ba hàm qui định thao tác chuột vẽ Cách lưu lại ảnh vẽ xong: private void saveToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog sv = new SaveFileDialog(); sv.Filter = "bmp(*.bmp)|*.bmp|jpg(*.jpg)|*.jpg|png(*.png)|*.png"; if (sv.ShowDialog() == DialogResult.OK) { _bm.Save(sv.FileName); } } Chúng ta việc tạo biến kiểu Bitmap để lưu lại ảnh vừa vẽ Cách mở ảnh: private void openToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Image files (*.img;*.png;*.jpg;*.peng;*.bmp)| *.img;*.png;*.jpg;*.peng;*.bmp";//các kiểu định dạng ảnh if (ofd.ShowDialog() == DialogResult.OK) { Image img = Image.FromFile(ofd.FileName); _bm = new Bitmap(img.Width, img.Height); _grs = Graphics.FromImage(_bm); Rectangle rec = new Rectangle(0,0,_bm.Width,_bm.Height); _grs.DrawImage(img, rec); this.Refresh(); this.BackgroundImage = (Bitmap)_bm.Clone(); } } NHẬN XÉT CỦA THẦY HƯỚNG DẪN Mục đích nội dung tập ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… …………… Kết đạt ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… …………… Ý thức làm việc sinh viên ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………… Hà Nội, ngày 17 tháng 12 năm 2014 Thầy hướng dẫn (Ký ghi rõ họ tên) [...]... _grs.DrawRectangle(pen, _p1.X, _p1.Y, dx, dy); break; case shapemode.fillrectangle: sb = new SolidBrush(_currleftcolor); _grs.FillRectangle(sb, _p1.X, _p1.Y, dx, dy); break; default: MessageBox.Show("error"); break; } this.BackgroundImage = (Bitmap)_bm.Clone(); } Ba hàm trên qui định thao tác chuột khi vẽ Cách lưu lại 1 ảnh khi vẽ xong: private void saveToolStripMenuItem_Click(object sender, EventArgs e) {... (_currshapemode) { case shapemode.line: pen = new Pen(_currleftcolor, _currpensize); _grs.DrawLine(pen, _p1, _p2); break; case shapemode.fillellipse: sb = new SolidBrush(_currleftcolor); _grs.FillEllipse(sb, _p1.X, _p1.Y, dx, dy); break; case shapemode.rawellipse: pen = new Pen(_currleftcolor,_currpensize); _grs.DrawEllipse(pen, _p1.X, _p1.Y,dx,dy); break; case shapemode.rawrectangtle: pen = new Pen(_currleftcolor,... bntmauphai.BackColor = cld.Color; _currrightcolor = cld.Color; } Hàm rê chuột: void Form1_MouseMove(object sender, MouseEventArgs e) { if (_isdown==true) { _p2 = new Point(e.Location.X, e.Location.Y);// lấy tọa độ cho p2 this.Refresh(); } lbltoado.Text = e.Location.X.ToString() + "," + e.Location.Y.ToString(); } Hàm thả chuột: void Form1_MouseUp(object sender, MouseEventArgs e) { _isdown = false; Pen... sv.Filter = "bmp(*.bmp)|*.bmp|jpg(*.jpg)|*.jpg|png(*.png)|*.png"; if (sv.ShowDialog() == DialogResult.OK) { _bm.Save(sv.FileName); } } Chúng ta chỉ việc tạo ra 1 biến kiểu Bitmap để lưu lại ảnh vừa vẽ Cách mở 1 ảnh: private void openToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Image files (*.img;*.png;*.jpg;*.peng;*.bmp)| *.img;*.png;*.jpg;*.peng;*.bmp";//các ... bắt kiện di chuột,nhấp chuột nhả chuột c# visual - hỗ chợ tốt Cách vẽ hình: Đầu tiên ta phải khai báo điểm thuộc Class Point(có sẵn) “p1”, “p2” qui định tọa độ, đo p1: tọa độ điểm bắt đầu nhấp chuột,... nhả chuột Hai biến nguyên “dx”, “dy” dùng để lưu chiều rộng(width) chiều dài(height) hình Khai báo biến thuộc Class Pen (pen) dùng để làm bút vẽ ; biến thuộc Class Brush(bs) dùng làm cọ vẽ biến

Ngày đăng: 25/03/2016, 14:25

Xem thêm: ĐỀ TÀI : MÔ PHỎNG CHƯƠNG TRÌNH VẼ HÌNH PAINT

TỪ KHÓA LIÊN QUAN

Mục lục

    Xin chân thành cảm ơn!

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w