Xây dng ng dng Painter
Thông tin chi tiết liên h : uyvq@bkindex.com or haind@bkindex.com Page 1
Lp trình Advance Painter
Đề tài: Lp trình ng dng v đơn giản mô phng MS Paint.
Thc hin bi nhóm :
Nguyễn Đức Hi
Hà Trng S
Vũ Quốc Uy
Xây dng ng dng Painter
Thông tin chi tiết liên h : uyvq@bkindex.com or haind@bkindex.com Page 2
Muc lc
Muc lc ................................................................................................................ 2
I. Gii thiu ......................................................................................................... 3
II. Chức năng ....................................................................................................... 3
1. Chức năng hin có........................................................................................ 3
2. Chức năng chưa hoàn thành ......................................................................... 3
III. Giao din ....................................................................................................... 4
IV. Mã ngun ...................................................................................................... 4
1. Painter.cs ...................................................................................................... 4
2. DrawTool ..................................................................................................... 4
3. PencilTool .................................................................................................... 5
4. Eraser ........................................................................................................... 5
5. LineTool ....................................................................................................... 5
6. RectangleBoundTool: .................................................................................. 6
7. CurveTool, PolygonTool ............................................................................. 6
8. TextTool ....................................................................................................... 6
9. Các lp còn li ............................................................................................. 7
V. Lch s phát trin ............................................................................................ 7
Xây dng ng dng Painter
Thông tin chi tiết liên h : uyvq@bkindex.com or haind@bkindex.com Page 3
PAINTER
I. Gii thiu
Đây chương trình phng MS_Paint ca window thêm mt s
tính năng khác biệt, đưc viết hoàn toàn bng C#.Net.
II. Chức năng
1. Chức năng hiện có
- V bút chì.
- V đon thng.
- V curve.
- V hình ch nhật và các hình tương tự: elip, đa giác, ngôi sao, mũi tên, …
- Thay đổi màu và độ dày, di chuyển, resize hình đang vẽ.
- Ct nh (ging chức năng Select của MSPaint).
- Pick Color.
- Ty.
- Chèn cho nh.
- In ngày tháng.
- Quay 90, 180, 270 độ.
- Undo, Redo.
- Hoạt động theo tab (ging Firefox).
- Open, Save, kéo th file nh vào khung v hin ti.
2. Chức năng chưa hoàn thành
- Resize panel / hình.
- Croping drawing: V trong 1 region xác định.
- Thay đổi dạng đường vin và b mt ca shape (outline & fill).
- Tô màu.
- Phóng to, thu nh.
- Select theo nhiu dng hình khác nhau.
- V bng chut phi.
Xây dng ng dng Painter
Thông tin chi tiết liên h : uyvq@bkindex.com or haind@bkindex.com Page 4
- Rotate, Copy, Paste nh/hình đang vẽ.
III. Giao din
- Dùng thư viện DevExpress để h tr vic thiết kế giao din.
- Người dùng có th tùy chn skin trong các giao din có sn.
IV. Mã ngun
Gm các class sau:
- Painter: Form chính.
- DrawTool: Lp các công c v (lp cha ca các lp còn li).
- PencilTool: V bng bút chì.
- LineTool: V đon thng.
- RectangleBoundTool: Lp v các hình có khung ch nht.
- CurveTool, RectangleTool, EllipTool, PolygonTool, DiamonTool,
UpArrowTool, DownArrowTool, LeftArrowTool, RightArrowTool, Eraser,
SixStarTool, FiveStarTool, FourStarTool, HexagonTool, PentagonTool,
RightTriangleTool, TriangleTool, TextTool, SelectTool: Kế tha lp
RectangleBoundTool, thc hin các chức năng tương ứng vi tên lp.
Mô t khái quát
1. Painter.cs
Mi tab khung v 1 Panel màu trng, kèm theo 1 Bitmap cùng kích
thưc vi panel. Bitmap dùng để lưu ảnh đang trên panel (khi repaint panel
không lưu được nh).
Mi tab một List các Bitmap để lưu quá trình v, dùng cho chức năng
Undo, Redo. Lưu ý khi vẽ shape tnút Redo s enable, cho thy là shape
chưa hoàn tt th thay đổi màu / độ dày, khi đó nếu click nút Redo thì
shape s chính thc hoàn tt.
2. DrawTool
Xây dng ng dng Painter
Thông tin chi tiết liên h : uyvq@bkindex.com or haind@bkindex.com Page 5
hàm to vi tham s truyền vào là panel, Bitmap Pen (lưu màu và đ
dày bút v) hin ti trên form.
Chức năng vẽ hình được thc hin bng cách handle các s kin
MouseDown, MouseUp, MouseMove.
Phương thức RefreshTool dùng để khi to li DrawTool khi Panel
Bitmap thay đổi.
Phương thức EndShape đ kết thúc hình đã vẽ d (nếu hình chưa kết thúc
thì có th thay đổi màu và độ dày).
Phương thức Cancel để hủy hình đang vẽ và khi to li DrawTool.
Phương thức DrawToPanel dùng k thuật Double buffering để hình trên
Panel khi đang vẽ không b nhp nháy.
Phương thức DrawToBitmap: lưu hình vào Bitmap, chính thc hoàn thành
hình v.
Ngoi ra còn có mt s hàm h tr khác.
3. PencilTool
Kế tha trc tiếp t DrawTool, thc hin chức năng v theo đường đi của
con tr chut.
1 trường thuc kiểu GraphicsPath để lưu nét vẽ, dùng đ v li khi
thay đổi màu/độ dày bút v.
Khi MouseMove thì v trc tiếp lên Panel (không dùng double buffering)
để đảm bo tốc độ v.
4. Eraser
Kế tha PencilTool.
To mt Pen mi màu trắng để không ảnh hưởng đến Pen truyn vào.
5. LineTool
Kế tha DrawTool.
Có th thay đổi v trí 2 mút của đoạn thng / tnh tiến c đon.