Tải bản đầy đủ (.docx) (62 trang)

Báo cáo phần mềm vẽ Paint

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (489.92 KB, 62 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
--------------------

BÁO CÁO CUỐI KÌ
ĐỒ ÁN MÔN LẬP TRÌNH TRỰC QUAN

Đề tài: CHƯƠNG TRÌNH DEMO PAINT

Giảng viên hướng dẫn:
ThS. PHẠM THI VƯƠNG

Nhóm sinh viên thực hiện:
BÙI NGUYỄN HOÀNG ANH – 15520012
DƯƠNG CHÍ BÌNH – 15520050
LÊ BÁ PHÚC HIẾU – 15520224
DƯƠNG HOÀNG KHANG – 15520337

TP.HCM, 15/06/2017

NHẬN XÉT CỦA GIẢNG VIÊN


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................


..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................

2


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

MỤC LỤC

Nội dung
LỜI CẢM ƠN................................................................................................................... 4
MỞ ĐẦU........................................................................................................................... 5
A. TỔNG QUAN NHÓM.................................................................................................6

I. Thông tin nhóm:........................................................................................................6
II. Phương thức làm việc:.............................................................................................6
1. Quy trình:............................................................................................................6
2. Công cụ:............................................................................................................... 6
B. BÁO CÁO ĐỒ ÁN.......................................................................................................7
I. Giới thiệu chung: Đề tài đồ án “Chương trình Paint”...........................................7
1. Giới thiệu đề tài...................................................................................................7
2. Các chức năng chương trình:.............................................................................7
3. Phương pháp thực hiện.......................................................................................7
II. Ý tưởng thực hiện:...................................................................................................9
1. Mô hình đối tượng...............................................................................................9
2. Xây dựng chức năng:..........................................................................................9
III. Thiết kế dữ liệu:....................................................................................................11
1. Sơ đồ lớp đối tượng:..........................................................................................11
2. Xây dựng các lớp:.................................................................................................12
IV. Thiết kế giao diện:.................................................................................................51
1. Form chương trình chính:................................................................................51
2. Form upload hình lên facebook........................................................................55
IV. Danh mục phím tắt:..............................................................................................56
C. KẾ HOẠCH THỰC HIỆN ĐỒ ÁN..........................................................................57
D. BẢNG PHÂN CÔNG CÔNG VIỆC.........................................................................59
TÀI LIỆU THAM KHẢO.............................................................................................61

3


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

LỜI CẢM ƠN
Lời đầu tiên nhóm thực hiện đồ án xin gửi lời cảm ơn đến ThS Phạm Thi Vương,

thầy đã nhiệt tình giảng dạy trên lớp, hỗ trợ những thông tin cần thiết, giải đáp những
thắc mắc và góp ý cho nhóm và các bạn trong suốt quá trình thực hiện đề tài.
Đồng thời nhóm cũng muốn cảm ơn các anh chị khóa trên, đặc biệt là anh chị
trong khoa đã chia sẽ kinh nghiệm quý báu về môn học cũng như những kiến thức liên
quan. Cũng như bạn bè đã tạo những điều kiện thuận lợi, mọi người đã đưa ra nhận xét và
góp ý chân thành vô cùng quý giá, những người đã động viên, hỗ trợ nhóm hoàn thành đề
tài.
Do đây là học kì đầu tiên chúng em thực hiện đồ án môn học chuyên ngành và
thời gian, kiến thức còn hạn chế nên không thể tránh khỏi những thiếu sót. Chính vì vậy
nhóm rất mong được nhận những góp ý nhằm hoàn thiện hơn những kiến thức mà nhóm
đã học tập và làm hành trang để thực hiện các đề tài khác trong tương lai.
Chân thành cảm ơn!

Nhóm thực hiện
Thủ Đức, tháng 6 năm 2016

4


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

MỞ ĐẦU
Lập trình trực quan (Visual Programming) là một môn học cung cấp cho sinh viên
những kiến thức cơ bản về phương pháp lập trình trên môi trường Windows như: cơ chế
quản lý chương trình, lập trình giao diện đồ họa (GUI), lập trình WPF, GDI+, quản lí tiến
trình, đồng bộ hóa…, từ đó sinh viên có khả năng tự xây dựng 1 ứng dụng hoàn chỉnh ở
mức độ vừa phải bằng ngôn ngữ C#. Môn học cũng cung cấp cho sinh viên một số kiến
thức cơ bản để có thể tự nghiên cứu các kỹ thuật lập trình sâu hơn trên môi trường
Windows.
Trong khuôn khổ của môn học, chương trình DemoPaint Version 1.0 được xây

dựng bởi các thành viên nhóm 1 lớp Lập trình trực quan (IT008.H21.CLC) trường Đại
học Công nghệ Thông tin ĐHQG HCM. Chương trình DemoPaint Version 1.0 xây dựng
dựa vào các chức năng sẵn có của Microsoft Paint nhưng được cải tiến và có thêm một số
chức năng nâng cao phục vụ tốt hơn cho yêu cầu ngày càng cao của người sử dụng.
Cùng với sự hướng dẫn của giảng viên ThS. Phạm Thi Vương, nhóm đã hoàn
thành được các yêu cầu từ cơ bản nhất đến nâng cao cho chương trình DemoPaint
Version 1.0. Những kết quả thu hoạch được nhóm sẽ trình bày trong những phần sau của
báo cáo này.

5


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

A. TỔNG QUAN NHÓM
I. Thông tin nhóm:
MSSV
15520012
15520050
15520224
15520337

Họ tên
Bùi Nguyễn Hoàng Anh
Dương Chí Bình
Lê Bá Phúc Hiếu
Dương Hoàng Khang

Email






Vai trò
Trưởng nhóm
Thành viên
Thành viên
Thành viên

II. Phương thức làm việc:
1. Quy trình:
-

Thống nhất đề tài đồ án
Phân công nhiệm vụ cho từng thành viên
Tìm hiểu tài liệu liên quan đến đề tài để thực hiện đồ án
Lên kế hoạch các mốc thời gian cho đồ án
Tiến hành các buổi họp nhóm trao đổi thông tin, quy trình, bàn bạc kế hoạch
nội dung thực hiện, phân công nhiệm vụ và giao hạn deadline
Hoàn thành đồ án, ra sản phẩm hoàn chỉnh
Đánh giá sản phẩm, hoàn thành báo cáo đồ án

2. Công cụ:
-

Visual Studio 2013
Google Drive
Facebook Messenger
Photoshop CS6 portable

Microsoft Word2016
PowerPoint 2016
Inno Setup Compiler
Corel draw version 17.4 portable

-

6


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

B. BÁO CÁO ĐỒ ÁN
I. Giới thiệu chung: Đề tài đồ án “Chương trình Paint”
1. Giới thiệu đề tài
Đề tài: Xây dựng chương trình chương trình Paint
- Tên chương trình: DemoPaint Version 1.0
- Mục đích: áp dụng những kiến thức của môn Lập trình trực quan (Visual
Programming) về lập trình trên môi trường Winform bằng ngôn ngữ C# và những kiến
thức lập trình liên quan để xây dựng một ứng dụng hoàn chỉnh.
- Yêu cầu: chương trình đáp ứng đủ các chức năng của một phần mềm vẽ trên máy
tính. Ngoài ra, cung cấp thêm một số tính năng nâng cao cần thiết khác.
2. Các chức năng chương trình:
 Chức năng cơ bản:
- New, Open, Save, Save as, Print, Help.
- Cut, Copy, Paste.
- Vẽ các đối tượng: Đường thẳng, hình chữ nhật, hình elip, hình tam giác, hình
tam giác vuông, hình thoi, hình ngũ giác, hình lục giác, hình mũi tên, hình ngôi
sao, vẽ tự do,…
- Tô màu viền cho các đối tượng.

- Chỉnh độ dày nét vẽ và màu sắc.
- Chèn thêm đoạn text.
- Lưu lại với các định dạng ảnh bitmap: bmp, jpg,…

 Chức năng nâng cao:
- Cho phép import hình ảnh vào và thao tác điều chỉnh trên hình ảnh đó như một
đối tượng hình vẽ của chương trình.
- Cho phép export trang vẽ ra các loại file: jpg, bmp, png, pdf,…
- Xuất nhanh trang vẽ ra file PDF
- Lưu file vẽ lại với định dang riêng của chương trình (*.ABHK).
 Tính năng mới:
- Cho phép các thao tác điều chỉnh đối tượng sau khi đã được vẽ:
+ Di chuyển đối tượng
+ Thay đổi kích thước đối tượng
+ Thay đổi màu vẽ
+ Xóa đối tượng
- Share hình ảnh được vẽ lên mạng xã hội Facebook.
- Chọn và xóa đối tượng.
3. Phương pháp thực hiện
a. Lập trình

7


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

Kết hợp các kiến thức về: GDI+, WindowForm, Lập trình hướng đối tượng, Cấu
trúc dữ liệu và giải thuật,…
b. Thiết kế giao diện
Chương trình không chú trọng nhiều về trao chuốt phần giao diện, tuy nhiên giao

diện vẫn được thiết kế và bố trí sao cho dễ hiểu và thuận tiện nhất cho người dùng.
Lấy ý tưởng từ phần mềm CorelDraw version 17.4, giao diện được thiết kế đơn
giản nhưng thân thiện, dễ hiểu. Với hệ thống các phím tắt được thiết lập sẵn, ngoài thao
tác xử lí bằng chuột người dùng có thể tương tác với phần mềm cả bằng bàn phím đối với
một số chức năng.

8


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

II. Ý tưởng thực hiện:
1. Mô hình đối tượng
-

Tạo 1 class là Danh sách đối tượng với kiểu List dùng để lưu lại tất cả các đối
tượng được vẽ trên trang vẽ để thuận tiện cho việc chỉnh sửa đối tượng về sau.
Mỗi đối tượng hình vẽ gồm:
+ Thuộc tính: màu bút vẽ, độ đậm bút vẽ, điểm bắt đầu, điểm kết thúc, số điểm
kiểm khiển (dùng cho việc thay đổi kích thước đối tượng), khu vực đối tượng
chiếm giữ, loại hình.
+ Phương thức: khởi tạo, vẽ, di chuyển, thay đổi kích thước, vẽ khung, vẽ điểm
điều khiển, kiểm tra vị trí của điểm hiện hành so với đối tượng.
 Cách thức thực hiện: Xây dựng các lớp đối tượng hình kế thừa nhau,
thuận tiện cho việc duy trì, lưu trữ, chỉnh sửa.

Điểm chuột click xuống trang vẽ

-


-

Điểm điều khiển

2. Xây dựng chức năng:
a.
Chức năng vẽ:
Sử dụng lệnh vẽ có sẵn trong thư viện GDI+ để vẽ các đối tượng hình cơ bản:
đường thẳng, hình chữ nhật, hình ellipse.
Tính toán vị trí tương đối giữa các đỉnh của 1 đối tượng hình nâng cao: hình
tam giác, hình tam giác vuông, hình thoi, hình lục giác, hình ngũ giác, các hình
mũi lên lên/xuống/trái/phải, hình ngôi sao 4 cánh, hình ngôi sao 5 cánh, hình
ngôi sao 6 cánh.
b.
Chức năng di chuyển:
Xét vị trí tương đối của tọa độ chuột hiện hành và đối tượng hình, xác định có
cho phép bật chức năng di chuyển không.
Nếu tọa độ chuột hiện hành thuôc khu vực đối tượng chiếm giữ thì lấy tọa độ
vị trí điểm chuột được nhấn và thả. Tính khoảng cách giữa 2 điểm đó và thực
hiện tịnh tiến tọa độ các đỉnh của đối tượng theo khoảng cách tính được.

9


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

-

-


-

c.
Chức năng thay đổi kích thước:
Xét vị trí tương đối của tọa độ chuột hiện hành và đối tượng hình, xác định có
cho phép bật chức năng di chuyển không.
Nếu vị trí chuột trùng với tọa độ các điểm điều khiển thì xác định điểm điều
khiển được chọn ở vị trí nào để tịnh tiến tọa độ các đỉnh của đối tượng cho phù
hợp

d.
Chức năng xóa
Xét vị trí tương đối của tọa độ chuột hiện hành và đối tượng hình, xác định có
cho phép bật chức năng xóa không.
Nếu vị trí chuột nằm trong khu vực của đối tượng chiếm giữ thì lấy chỉ số đối
tượng được chọn và thực hiện xóa đối tượng ra khỏi List danh sách đối tượng

e.
Chức năng Upload ảnh lên Facebook:
Lưu hình ảnh đang vẽ. Mở webbrowser, truy cập đến URL:
, trang cá nhân của người dùng sẽ được bật và
người dùng có thể thuận tiện up hình của mình vừa lưu một cách nhanh chóng.

10


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

III. Thiết kế dữ liệu:
1. Sơ đồ lớp đối tượng:


ST
T

Tên lớp

1

HinhVe

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21


DuongThang
HinhChuNhat
VanBan
Elip
HinhThoi
TamGiac
TamGiacVuong
Hexagon
NguGiac
LeftArrow
UpArrow
Star5
FourStar
SixStar
Import
Pencil
listHinhVe
khung
tool
Property

Mô tả
Lớp đối tượng cha, xây dựng các thuộc
tính, phương thức chung để các lớp đối
tượng con kế thừa
Lớp đường thẳng
Lớp hình chữ nhật
Lớp chữ viết
Lớp hình elip

Lớp hình thoi
Lớp hình tam giác
Lớp hình tam giác vuông
Lớp hình lục giác
Lớp hình ngũ giác
Lớp hình mũi tên (trái/phải)
Lớp hình mũi tên (lên/xuống)
Lớp hình ngôi sao 5 cánh
Lớp hình ngôi sao 4 cánh
Lớp hình ngôi sao 6 cánh
Lớp hình ảnh được import
Lớp hình vẽ tự do
Lớp danh sách đối tượng
Vẽ khung cho trang vẽ
Đặt giá trị cho chắc button chức năng vẽ
Hiển thị thông tin của đối tượng

11

Ghi chú


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

2. Xây dựng các lớp:
2.1. Lớp HinhVe:

HinhVe

Tên


Thuộc
tính

mauVe
doDamNet
diemBatDau
diemKetThuc
diemMouseDown
soDiemDieuKhien
graphicsPath
khuVuc
viTriChuotSoVoiHinhVe

HinhVe
Kiểu dữ liệu
Color
int
Point
Point
Point
int
GraphicsPath
Region
int

diChuyen

bool


thayDoiKichThuoc

bool

VanBan
loaiHinh
hinhNen

string
int
Image
Kiểu trả về

Phương
thức
HinhVe()

Tên

HinhVe(Color cl, int pw )
HinhVe(Color mauve, int dodamnet,
Point diembatdau, Point
diemketthuc, Point diemmousedown,
int sodiemdieukhien, GraphicsPath
graphicspath, Region khuvuc, int
vitrichuotsovoihinhve, bool
dichuyen, bool thaydoikichthuoc, int
loaihinh)
Ve(Graphics g)
void

DiemDieuKhien(int
Point
viTriDiemDieuKhien)
VeChamVuong(int
Rectangle
viTriDiemDieuKhien, int
doRongHCN)
12

Ý nghĩa
Màu bút vẽ
Độ dày nét vẽ
Điểm bắt đầu vẽ
Điểm kết thúc vẽ
Điểm chuột được nhấn
Số điểm điều khiển
Công cụ vẽ
Tạo ra 1 vùng
Vị trí tương đối của 1 điểm và đối
tượng
Xét đối tượng có thể di chuyển
không
Xét đối tượng có thể thay đổi kích
thước không
Tạo ra chuỗi ký tự
Mã loại hình vẽ
Hình ảnh được import
Ý nghĩa
Constructor khởi tạo không tham
số

Constructor khởi tạo có tham số
Constructor khởi tạo có tham số

Vẽ đối tượng
Tạo điểm điều khiển
Tạo hình chữ nhật bao quanh
điểm điều khiển


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

VeChamVuong(int
viTriDiemDieuKhien)
VeKhung(Graphics g)

Rectangle
void

Tạo hình chữ nhật bao quanh
điểm điều khiển
Vẽ điểm điều khiển

VeHCNDiemDieuKhien(Graphics g,
int doDamNet)
kiemTraThuoc(Point point)

void

Vẽ điểm điều khiển


bool

kiemTraViTri (Point point)

int

ThayDoiDiem(int
viTriDiemDieuKhien)

void

DiChuyen(int deltaX, int deltaY)
ThayDoiKichThuoc(int
viTriDiemDieuKhien, Point point)
Mouse_Down (MouseEventArgs e)
Mouse_Move (MouseEventArgs e)
Mouse_Up (Object sender)

void
void

Kiểm tra điểm có thuộc đối tượng
không
Trả về vị trí tương đối của 1 điểm
và đối tượng
Xác định lại điểm bắt đầu, kết
thúc khi Click vào 1 điểm điều
khiển
Di chuyển đối tượng
Thay đổi kích thước đối tượng khi

biết điểm điều khiển và điểm đến
Sự kiện khi nhấn chuột
Sự kiện khi di chuyển chuột
Sự kiện khi thả chuột

void
void
void

13


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

2.2.

Lớp HinhChuNhat:

HinhVe

HinhChuNhat
-

Phương
thức

Các thuộc tính trong lớp HinhChuNhat được kế thừa từ lớp HinhVe
Override lại các phương thức từ lớp HinhVe:

Tên


HinhChuNhat
Kiểu trả
về

HinhChuNhat() : base()

Constructor khởi tạo một hình chữ nhật
rỗng, số điểm điều khiểu là 8, mã loại
hình là 4
Constructor khởi tạo một hình chữ nhật
rỗng, số điểm điều khiểu là 8, mã loại
hình là 4 khi truyền tham số là màu vẽ
và kích thước bút vẽ
Constructor khởi tạo một hình chữ nhật
rỗng khi truyền vào các tham số: màu
vẽ, độ đậm nét, điểm bắt đầu, điểm kết
thúc, điểm chuột được nhấp, số điểm
điều khiển, công cụ vẽ, khu vực đối
tượng chiếm giữ, di chuyển, thay đổi
kích thước, mã loại hình, vị trí chuột so
với hình vẽ

HinhChuNhat(Color cl, int pw):
base(cl, pw)
HinhChuNhat(Color mauve, int
dodamnet, Point diembatdau,
Point diemketthuc, Point
diemmousedown, int
sodiemdieukhien, GraphicsPath

graphicspath, Region khuvuc,
int vitrichuotsovoihinhve, bool
dichuyen, bool
thaydoikichthuoc, int loaihinh)
:base(mauve,dodamnet,diembat
dau,diemketthuc,diemmousedo
wn,sodiemdieukhien,graphicspa
th,khuvuc,vitrichuotsovoihinhve
,dichuyen,thaydoikichthuoc,loai
hinh)
VeHCN(int x1, int y1, int x2, int
y2)
VeHCN(Point pointA, Point
pointB)
Ve(Graphics g)
DiemDieuKhien(int
viTriDiemDieuKhien)

Ý nghĩa

Rectangle
Rectangle
void
Point
14

Tạo hình chữ nhật từ 4 giá trị tọa độ x, y
của 2 điểm
Tạo hình chữ nhật từ 2 điểm
Vẽ hình chữ nhật

Trả về 1 điểm điều khiển khi biết vị trí
của nó. Quy ước 8 điểm điều khiển


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

được đánh số từ 1-8 (trên xuống dưới,
trái qua phải)
Chọn lại điểm bắt đầu, kết thúc khi bấm
vào một điểm điều khiển nào đó
Thay đổi kích thước đối tượng khi biết
điểm điều khiển và điểm đến. Tùy vào
vị trí điểm điều khiển mà sẽ thay đổi tọa
độ các điểm cho phù hợp
+ Kiểm tra vị trí của chuột và hình vẽ:
. Nếu vị trí chuột trùng với 1
trong 8 điểm điều khiển thì cho phép
thay đổi kích thước đối tượng
. Nếu vị trí chuột nằm bên trong
giới hạn đối tượng thì cho phép di
chuyển đối tượng
. Nếu vị trí chuột nằm bên ngoài
đối tượng thì không làm gì cả

ThayDoiDiem(int
viTriDiemDieuKhien)
ThayDoiKichThuoc(int
viTriDiemDieuKhien, Point
newPoint)


void

Mouse_Down(MouseEventArgs
e)

void

Mouse_Move(MouseEventArgs
e)

void

+ Kiểm tra nếu biến thayDoiKichThuoc
đang được bật thì thực hiện thay đổi
kích thước đối tượng theo sự rê chuột
+ Kiểm tra nếu biến diChuyen đang
được bật thì thực hiện việc di chuyển
đối tượng

Mouse_Up(Object sender)

void

+ Vẽ đối tượng sau khi hoàn tất các thao
tác chỉnh sửa đối tượng. Đặt lại giá trị
false cho biến diChuyen,
thayDoiKichThuoc và giá trị -1 cho
biến viTriChuotSoVoiHinhVe

void


15


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

2.3.

Lớp DuongThang

HinhVe

DuongThang

HinhChuNhat

- Các thuộc tính, phương thức trong lớp DuongThang được kế thừa từ lớp HinhVe

Phương
thức

Tên
DuongThang() : base()

DuongThang
Kiểu trả về

DuongThang(Color mauVe, int
doDamNet): base(mauVe,
doDamNet)

DuongThang(Color mauve, int
dodamnet, Point diembatdau,
Point diemketthuc, Point
diemmousedown, int
sodiemdieukhien,
GraphicsPath graphicspath,
Region khuvuc, int
vitrichuotsovoihinhve, bool
dichuyen, bool
thaydoikichthuoc, int loaihinh)
: base(mauve, dodamnet ,
diembatdau , diemketthuc ,
diemmousedown ,
sodiemdieukhien ,
graphicspath , khuvuc ,
vitrichuotsovoihinhve ,
dichuyen , thaydoikichthuoc ,
loaihinh)
Ve(Graphics g)
DiemDieuKhien
(int viTriDiemDieuKhien)

void
Point
16

Ý nghĩa
Constructor khởi tạo một hình chữ nhật
rỗng, số điểm điều khiểu là 2, mã loại
hình là 1

Constructor khởi tạo một hình chữ nhật
rỗng, số điểm điều khiểu là 2, mã loại
hình là 1 khi truyền tham số là màu vẽ
và kích thước bút vẽ
Constructor khởi tạo một hình chữ nhật
rỗng, khi truyền vào các tham số: màu
vẽ, độ đậm nét, điểm bắt đầu, điểm kết
thúc, điểm chuột được nhấp, số điểm
điều khiển, công cụ vẽ, khu vực đối
tượng chiếm giữ, vị trí chuột so với
hình vẽ, di chuyển, thay đổi kích thước,
mã loại hình

Vẽ đường thẳng
Trả về 1 điểm điều khiển khi biết vị trí
của nó. Quy ước 2 điểm điều khiển nếu


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

viTriDiemDieuKhien = 1 là điểm bắt
đầu, nếu viTriDiemDieuKhien = 2 là
điểm kết thúc
Xác định lại diemBatDau và
diemKetThuc khi click chuột vào 1
điểm điều khiển

ThayDoiDiem
(int viTriDiemDieuKhien)


void

ThayDoiKichThuoc(int
viTriDiemDieuKhien, Point
point)

void

VeKhung(Graphics g)
Mouse_Down
(MouseEventArgs e)

void
void

Mouse_Move
(MouseEventArgs e)

void

+ Kiểm tra nếu biến thayDoiKichThuoc
đang được bật thì thực hiện thay đổi
kích thước đối tượng theo sự rê chuột
+ Kiểm tra nếu biến diChuyen đang
được bật thì thực hiện việc di chuyển
đối tượng

Mouse_Up(Object sender)

void


+ Vẽ đối tượng sau khi hoàn tất các thao
tác chỉnh sửa đối tượng. Đặt lại giá trị
false cho biến diChuyen,
thayDoiKichThuoc và giá trị -1 cho
biến viTriChuotSoVoiHinhVe

17

Thay đổi kích thước đối tượng khi biết
điểm điều khiển và điểm đến. Tùy vào
vị trí điểm điều khiển mà sẽ thay đổi tọa
độ các điểm cho phù hợp
Vẽ khung
+ Kiểm tra vị trí của chuột và hình vẽ:
. Nếu vị trí chuột trùng với 1
trong 2 điểm điều khiển thì cho phép
thay đổi kích thước đối tượng
. Nếu vị trí chuột nằm bên trong
giới hạn đối tượng thì cho phép di
chuyển đối tượng
. Nếu vị trí chuột nằm bên ngoài
đối tượng thì không làm gì cả


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

2.4.

Lớp Pencil


DoiTuong

DuongThang

Pencil

HinhChuNhat

- Các thuộc tính, phương thức trong lớp Pencil được kế thừa từ lớp HinhVe

Thuộc
tính
Phương
thức

Tên
poin
Tên
Pencil() : base()

Pencil
Kiểu dữ liệu
Point[]
Kiểu trả về

Pencil(Color mauVe, int
doDamNet): base(mauVe,
doDamNet)
Pencil(Color mauve, int

dodamnet, Point diembatdau,
Point diemketthuc, Point
diemmousedown, int
sodiemdieukhien,
GraphicsPath graphicspath,
Region khuvuc, int
vitrichuotsovoihinhve, bool
dichuyen, bool
thaydoikichthuoc, int
loaihinh)
: base(mauve, dodamnet,
diembatdau, diemketthuc,
diemmousedown,
sodiemdieukhien,
graphicspath, khuvuc,
vitrichuotsovoihinhve,
dichuyen, thaydoikichthuoc,
loaihinh)
18

Ý nghĩa
Danh sách các điểm
Ý nghĩa
Constructor khởi tạo 2 điểm ban đầu với
số điểm điều khiển là 2, mã loại hình là
15
Constructor khởi tạo 2 điểm ban đầu với
số điểm điều khiển là 2, mã loại hình là
15 khi tham số truyền vào là màu bút vẽ
và kích thước bút vẽ

Constructor khởi tạo 2 điểm ban đầu với
các tham số truyền vào: màu vẽ, độ đậm
nét, điểm bắt đầu, điểm kết thúc, điểm
chuột được nhấp, số điểm điều khiển,
công cụ vẽ, khu vực đối tượng chiếm
giữ, vị trí chuột so với hình vẽ, di
chuyển, thay đổi kích thước, mã loại
hình


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

Ve(Graphics g)
DiemDieuKhien(int
viTriDiemDieuKhien)
ThayDoiDiem(int
viTriDiemDieuKhien)
ThayDoiKichThuoc(int
viTriDiemDieuKhien, Point
point)
DiChuyen(int deltaX, int
deltaY)
VeKhung(Graphics g)
Mouse_Down
(MouseEventArgs e)
Mouse_Move
(MouseEventArgs e)

void
Point


Vẽ tự do
Tạo điểm điều khiển

void
void

Thay đổi điểm bắt đầu, điểm kết thúc
khi click vào 1 điểm điều khiển
Thay đổi kích thước của đối tượng

void

Di chuyển đối tượng

void
void

Vẽ khung
Hình vẽ tự do được tạo nên bằng cách
nối tập hợp các điểm trên đường chuột
nhấn giữ và di chuyển. Mỗi khi ta kéo
rê chuột thực hiện chèn các điểm trên
đường rê (Gồm 2 thao tác nhấp chuột +
di chuyển chuyển chuột) vào list danh
sách điểm

Mouse_Up(Object sender)

void


void

+ Vẽ đối tượng sau khi hoàn tất các thao
tác chỉnh sửa đối tượng. Đặt lại giá trị
false cho biến diChuyen,
thayDoiKichThuoc và giá trị -1 cho
biến viTriChuotSoVoiHinhVe

19


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

2.5.

Lớp Elip

DoiTuong

DuongThang

Pencil

HinhChuNhat

Elip
- Các thuộc tính, phương thức trong lớp Elip được kế thừa từ lớp HinhChuNhat
- Override lại các phương thức từ lớp HinhChuNhat


Phương
thức

Tên
Elip() : base()

Elip
Kiểu trả về

Elip(Color mauVe, int
kichThuocButVe):
base(mauVe, kichThuocButVe)
Elip(Color mauve , int
dodamnet , Point diembatdau ,
Point diemketthuc , Point
diemmousedown ,
int sodiemdieukhien ,
GraphicsPath graphicspath ,
Region khuvuc , int
vitrichuotsovoihinhve ,
bool dichuyen , bool
thaydoikichthuoc , int
loaihinh)
: base(mauve ,
dodamnet , diembatdau ,
diemketthuc , diemmousedown
, sodiemdieukhien ,
graphicspath , khuvuc ,
20


Ý nghĩa
Constructor khởi tạo một hình Ellipse
nằm trong chữ nhật đơn vị 1, số điểm
điều khiểu là 8, mã loại hình là 3
Constructor khởi tạo một hình Ellipse
nằm trong chữ nhật đơn vị 1, số điểm
điều khiểu là 8, mã loại hình là 3 khi
truyền tham số là màu vẽ và kích thước
bút vẽ
Constructor khởi tạo với các tham số
truyền vào: màu vẽ, độ đậm nét vẽ,
điểm bắt đầu, điểm kết thúc, điểm chuột
được click, số điểm điều khiển, công cụ
vẽ, khu vực đối tượng chiếm giữ, di
chuyển, thay đổi kích thược, mã loại
hình


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

vitrichuotsovoihinhve ,
dichuyen , thaydoikichthuoc ,
loaihinh)
Ve(Graphics g)
VeKhung(Graphics g)

void
void

21


Vẽ hình Ellipse
Với mỗi điểm điều khiển, ta sẽ vẽ 1
hình nhữ nhật nhỏ bao quan để dễ quan
sát và vẽ nét đứt quanh hình chữ nhật
điều khiển.


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

2.6.

Lớp VanBan

HinhVe

DuongThang

Elip

Thuộc
tính
Phương
thức

Tên
phongChu
hopChu
VanBan()


Pencil

HinhChuNhat

Tên
: base()

VanBan
Kiểu dữ liệu
Font
TextBox
Kiểu trả về

VanBan(Color cl, int pw,
Font phongchu)
VanBan(Color mauve, int
dodamnet, Point diembatdau,
Point diemketthuc, Point
diemmousedown, int
sodiemdieukhien,
GraphicsPath graphicspath,
Region khuvuc, int
vitrichuotsovoihinhve, bool
dichuyen, bool
thaydoikichthuoc, int
loaihinh, Font phongchu)
: base(mauve, dodamnet,
diembatdau, diemketthuc,
diemmousedown,
22


VanBan

Ý nghĩa
Phông chữ
TextBox để gõ văn bản
Ý nghĩa
Constructor khởi tạo không tham số với
số điểm điều khiển là 8, mã loại hình là
2
Constructor khởi tạo với số điểm điều
khiển là 8, mã loại hình là 2 khi tham số
truyền vào là màu bút vẽ, kích thước
bút vẽ và phông chữ
Constructor khởi tạo với tham số truyền
vào là màu bút vẽ, kích thước bút vẽ,
điểm bắt đầu, điểm kết thúc, điểm chuột
được click, số điểm điều khiển, công cụ
vẽ, khu vực đối tượng chiếm giữ, vị trí
chuột so với hình vẽ, di chuyển, thay
đổi kích thước, mã loại hình, phông chữ


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

sodiemdieukhien,
graphicspath, khuvuc,
vitrichuotsovoihinhve,
dichuyen, thaydoikichthuoc,
loaihinh)

Ve(Graphics g)
tbValidate(Object sender,
EventArgs e)
Mouse_Up(Object sender)

Void
void

Vẽ chuỗi
Sự kiện dung để ẩn khung chữ khi vẽ
khung chữ mới
Vẽ đối tượng sau khi hoàn tất các thao
tác chỉnh sửa đối tượng. Đặt lại giá trị
false cho biến diChuyen,
thayDoiKichThuoc và -1 cho
viTriChuotSoVoiHinhVe. Xác định kích
thước, kiểu, vị trí và hiển thị đoạn văn
bản.

Void

23


BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

2.7.

Lớp Import


HinhVe

DuongThang

HinhEllipse

Import

Pencil

HinhChuNhat

VanBan

- Các thuộc tính, phương thức trong lớp Import được kế thừa từ lớp HinhChuNhat
- Override lại các phương thức từ lớp HinhChuNhat:

Phương
thức

Tên
Import() : base()

Import
Kiểu trả về

Import(Color mauVe, int
doDamNet, Image hinhnen)
Import(Color mauve , int
dodamnet , Point diembatdau ,

Point diemketthuc , Point
diemmousedown ,
int sodiemdieukhien ,
GraphicsPath graphicspath ,
Region khuvuc , int
vitrichuotsovoihinhve ,
bool dichuyen , bool
thaydoikichthuoc , int loaihinh,
Image hinhnen)
: base(mauve ,
dodamnet , diembatdau ,
diemketthuc , diemmousedown
24

Ý nghĩa
Constructor khởi tạo với số điểm điều
khiểu là 8, mã loại hình là 0
Constructor khởi tạo với số điểm điều
khiển là 8, mã loại hình là 0 khi tham số
truyền vào là màu vẽ, độ đậm nét vẽ,
hình ảnh được import
Constructor khởi tạo với các tham số
truyền vào: màu vẽ, độ đậm nét, điểm
bắt đầu, điểm kết thúc, điểm chuột được
click, số điểm điều khiển, công cụ vẽ,
khu vực đối tượng chiếm giữ, vị trí
chuột so với hình vẽ, di chuyển, thay
đổi kích thước, mã loại hình, hình ảnh
được import



BÁO CÁO CUỐI KÌ – CHƯƠNG TRÌNH DEMO PAINT

, sodiemdieukhien ,
graphicspath , khuvuc ,
vitrichuotsovoihinhve ,
dichuyen , thaydoikichthuoc ,
loaihinh)
Ve (Graphics g)

void

25

Vẽ hình được import


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×