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

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 495,41 KB

Nội dung

Đâ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.

Trang 1

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:

HÀ NỘI – 2014

Trang 2

Lời Mở đầ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

Trong quá trình thiết kế và thực hiện không tránh khỏi sai xót, mong quí thầy cô và các bạn thông cảm và có những góp ý kiến quí báu nhằm hoàn thiện hơn cho sản phẩm

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

I.Giới thiệu chung

Trang 3

Trong xu thế phát triển công nghệ thông tin như vũ bão hiên nay, đặc biệt là trong ngành công nghệ phần mềm ngày càng đòi hỏi trình độ cao trong kĩ thuật lập trình Chính vì vậy mà phương pháp lập trình hướng thủ tục cổ điển trước đây không còn đáp ứng được nhu câu đặt ra của thời đại, một phương lập trình mới được xây dựng theo nguyên lý Alan-Kay đươc ra đờ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 này được thiết kế theo

phương pháp LTHDT bằng ngôn ngữ C#, ngôn ngữ này được phát triển bởi Micro Soft dựa trên nền tảng của hai ngôn ngữ rất mạnh mẽ là C++ và Java Chính vì thế

mà nó giải quyết được những vướng mắc gặp phải khi thết kế chương trình theo thủ tục thuần túy:

• Mã chương trình rõ ràng, dễ đọc, dễ hiểu, cô đọng

• Chương trình được tổ chức thành các Class lắp ghép lai với nhau thành khối thống nhất

• Mỗi Class gồm nhiều Method đảm nhân các vai trò khác nhau trong chương trình

• Chương trình có tính mềm dẻo cao

• Có khả năng 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 là một chương trình mô tả các chức năng cơ bản của chương trình vẽ Paint của Micro Soft xây dựng, chương trình được xây dựng bằ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 các chức năng vẽ cơ bản: vẽ hình và tô màu… rất dễ sử dụng và thân thiện với người dùng

Các chức năng chính và chi tiết: Giao diện chương trình được xây dựng theo kiểu “windows form” Các menu theo kiểu đa cấp

1. File

• New: Tạo mới 1 file(trang vẽ ) trống

Trang 4

• Open: Mở 1 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

2. Edit

• Zoom: Thực hiện phóng to hay thu nhỏ ảnh

3. Draw đoạn thẳng: vẽ đoạn thẳng

4. Fill hình tròn: vẽ và tô mà theo màu của cọ vẽ cho hình tròn

5. Draw đường tròn: vẽ 1 đường tròn

6. Fill hình chữ nhật: vẽ và tô màu của cọ vẽ cho 1 hình chữ nhật

7. Draw hình chữ nhật: vẽ 1 hình chữ nhật rỗng

8. Size: chon kích thươc cho chổi vẽ

9. Chọ màu: chọn màu tô và 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ẽ bằng chuột

Giới hạn đề tài:

 Do thời gian có hạn nên chưa thể làm được hết các chức năng như của chương trình paint như: người dùng chưa thể vẽ tự do,giao diện còn

sơ sài,chưa đẹp mắt

III.Hình ảnh minh họa và Cấu trúc chương trình:

1. Hình ảnh minh họa:

Giao diện chính của chương trình:

Trang 5

Chương trình đang thực hiện vẽ:

Chương trình thực hiện lưu file:

Trang 6

Chương trình thực hiện mở file:

Trang 7

2. Cấu trúc chương trình:

Hình ảnh chương trình được xây dựng trên Visual Studio 2010:

Trang 8

Chương trình được xây dựng dựa trên sự kế thừa các Class đã được xây dựng sẵn: graphics, DrawRectangle, DrawFillelipes… vì vậy việc xây dựng chương trình trở nên nhẹ nhàn hơn nhiều

IV Cách xây dựng chương trình:

Cách xây dưng 1 số tính năng trong chương trình:

1- cách thiết kế giao diện

2- cách bắt sự kiện và vẽ 1 số hình cơ bản trong chương trình

3- cách thiết kế và tạo chức năng cho menu(sử dụng các Menu&Toolbar có sẵn)

I -chúng ta thiết kế giao diện dựa trên công cụ ứng dụng winform application

và ngôn ngữ C#

-sử dụng các controls,containers,Menus&toolbars để thiết kế giao diện cho chương trình

Giới thiệu qua về công dụng của các controls được sử dụng trong chương trình:

-button là 1 controls tạo ra 1 nút tương tác với người dùng, cụ thể trong chương trình này là tạo ra các nút giúp người dùng chọn màu hay vẽ

Trang 9

hình, button có các thuộc tính và sự kiện khác nhau giúp người lập trình có thể dễ ràng thao tác hay bắt sự kiện trong việc lập trình

-combobox là 1 controls tạo ra 1 hộm thoại mà khi người dùng kích vào sẽ sổ ra 1 loạt các giá trị mà người lập trình đã cài đặt, cụ thể trong này

là kích cỡ của nét vẽ

-panel là 1 containers dùng để chứa các controls -Menustrip là 1 Menus toolbars dùng để thiết kế me nu cho trương trình

Do các controls,containers,Menus&toolb được thiết kế khá thân thiện nên việc thiết kế, sử dụng là khá đơn giản chỉ việc kéo thả vào form như ý muốn II-bắt sự kiện và vẽ

- Trước tiên để vẽ được hình VD: như đoạn thẳng chúng ta phải bắt được sự kiện di chuột,nhấp chuột và nhả chuột và trong c# visual đã

hỗ chợ rất tốt

- Cách vẽ hình:

Đầu tiên ta phải khai báo 2 điểm thuộc Class Point(có sẵn)

“p1”, “p2” qui định tọa độ, trong đ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) và chiều dài(height) của các hình Khai báo 1 biến thuộc Class Pen (pen) dùng để làm bút vẽ ; 1 biến thuộc Class Brush(bs) dùng làm cọ vẽ và 1 biến thuộc lớp Graphics(_grs) dùng để vẽ

Khi vẽ chúng ta cần phải lưu ảnh lại nên chúng ta sử dụng 1 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 )

{

Pen pen;

SolidBrush sb;

if (_isdown == true)//_isdown dùng để đánh dấu xem người dùng đang nhấp chuột // hay đang rê chuột.

{

int dx = _p2 - _p1 ;

int dy = _p2 - _p1 ;

Trang 10

switch (_currshapemode)//_currshapemode: dùng để xem người dùng muốn

vẽ // -hình gì

{

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 ,_p1 ,dx,dy);

break;

case shapemode rawellipse ://vẽ đường elip

pen = new Pen(_currleftcolor,_currpensize);

e Graphics.DrawEllipse(pen, _p1 , _p1 ,dx,dy);

break;

case shapemode rawrectangtle :// vẽ hình chữ nhật rỗng

pen = new Pen(_currleftcolor, _currpensize);

e Graphics.DrawRectangle(pen, _p1 , _p1 , dx, dy);

break;

case shapemode fillrectangle :// vẽ hình chữ nhật đặc

sb = new SolidBrush(_currleftcolor);

e Graphics.FillRectangle(sb,_p1 ,_p1 ,dx,dy);

break;

default:

MessageBox.Show( "error" );

break;

}

}

}

Hàm nhấp chuột:

void Form1_MouseDown (object sender, MouseEventArgs )

{

_isdown = true;

_p1 = new Point( Location , Location );

}

private void exitToolStripMenuItem_Click (object sender, EventArgs )

{

Application.Exit();

}

private void bntchonmau_Click (object sender, EventArgs )

{

ColorDialog cld = new ColorDialog();

cld.ShowDialog();

if (cld.ShowDialog() == DialogResult.OK)

{

if (_currbuttoncolor == buttoncolor LEFT )

{

bntmautrai.BackColor = cld.Color;

_currleftcolor = cld.Color;

}

else

{

Trang 11

bntmauphai.BackColor = cld.Color;

_currrightcolor = cld.Color;

}

}

}

Hàm rê chuột:

void Form1_MouseMove (object sender, MouseEventArgs )

{

if (_isdown==true)

{

_p2 = new Point( Location , e Location ); // lấy tọa độ cho p2

this.Refresh();

}

lbltoado.Text = e Location .ToString() + "," + e Location .ToString(); }

Hàm thả chuột:

void Form1_MouseUp (object sender, MouseEventArgs )

{

_isdown = false;

Pen pen;

SolidBrush sb;

int dx = _p2 - _p1 ;

int dy = _p2 - _p1 ;

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 , _p1 , dx, dy);

break;

case shapemode rawellipse :

pen = new Pen(_currleftcolor,_currpensize);

_grs.DrawEllipse(pen, _p1 , _p1 ,dx,dy);

break;

case shapemode rawrectangtle :

pen = new Pen(_currleftcolor, _currpensize);

_grs.DrawRectangle(pen, _p1 , _p1 , dx, dy);

break;

case shapemode fillrectangle :

sb = new SolidBrush(_currleftcolor);

_grs.FillRectangle(sb, _p1 , _p1 , dx, dy);

break;

default:

MessageBox.Show( "error" );

break;

}

this.BackgroundImage = (Bitmap)_bm.Clone();

Trang 12

}

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 )

{

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 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 )

{

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

1 Mục đích và nội dung của bài tập

Trang 13

………

………

………

………

2 Kết quả đạt được ………

………

………

………

………

3 Ý thức làm việc của sinh viên ………

………

………

………

Hà Nội, ngày 17 tháng 12 năm 2014

Thầy hướng dẫn (Ký và ghi rõ họ tên)

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w