khongdematemduchimotlan2000
New Member
Download miễn phí Đề tài Lập trình Advance Painter : Lập trình ứng dụng vẽ đơn giản mô phỏng MS Paint
Muc lục
Muc lục . 2
I. Giới thiệu . 3
II. Chức năng . 3
1. Chức năng hiện có. 3
2. Chức năng chưa hoàn thành . 3
III. Giao diện . 4
IV. Mã nguồn . 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 lớp còn lại . 7
V. Lịch sử phát triển . 7
http://cloud.liketly.com/flash/edoc/jh2i1fkjb33wa7b577g9lou48iyvfkz6-swf-2014-02-11-de_tai_lap_trinh_advance_painter_lap_trinh_ung_d.OOdLXOe8HY.swf /tai-lieu/de-tai-ung-dung-tren-liketly-58569/
Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí
Tóm tắt nội dung tài liệu:
Xây dựng ứng dụng PainterThông tin chi tiết liên hệ : [email protected] or [email protected] Page 1
Lập trình Advance Painter
Đề tài: Lập trình ứng dụng vẽ đơn giản mô phỏng MS Paint.
Thực hiện bởi nhóm :
Nguyễn Đức Hải
Hà Trọng Sỹ
Vũ Quốc Uy
Xây dựng ứng dụng Painter
Thông tin chi tiết liên hệ : [email protected] or [email protected] Page 2
Muc lục
Muc lục ................................................................................................................ 2
I. Giới thiệu ......................................................................................................... 3
II. Chức năng ....................................................................................................... 3
1. Chức năng hiện có........................................................................................ 3
2. Chức năng chưa hoàn thành ......................................................................... 3
III. Giao diện ....................................................................................................... 4
IV. Mã nguồn ...................................................................................................... 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 lớp còn lại ............................................................................................. 7
V. Lịch sử phát triển ............................................................................................ 7
Xây dựng ứng dụng Painter
Thông tin chi tiết liên hệ : [email protected] or [email protected] Page 3
PAINTER
I. Giới thiệu
Đây là chương trình mô phỏng MS_Paint của window và có thêm một số
chức năng khác biệt, được viết hoàn toàn bằng C#.Net.
II. Chức năng
1. Chức năng hiện có
- Vẽ bút chì.
- Vẽ đoạn thẳng.
- 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ẽ.
- Cắt ảnh (giống chức năng Select của MSPaint).
- Pick Color.
- Tẩy.
- Chèn chữ vào ảnh.
- In ngày tháng.
- Quay 90, 180, 270 độ.
- Undo, Redo.
- Hoạt động theo tab (giống Firefox).
- Open, Save, kéo thả file ảnh vào khung vẽ hiện tại.
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 viền và bề mặt của shape (outline & fill).
- Tô màu.
- Phóng to, thu nhỏ.
- Select theo nhiều dạng hình khác nhau.
- Vẽ bằng chuột phải.
Xây dựng ứng dụng Painter
Thông tin chi tiết liên hệ : [email protected] or [email protected] Page 4
- Rotate, Copy, Paste ảnh/hình đang vẽ.
III. Giao diện
- Dùng thư viện DevExpress để hỗ trợ việc thiết kế giao diện.
- Người dùng có thể tùy chọn skin trong các giao diện có sẵn.
IV. Mã nguồn
Gồm các class sau:
- Painter: Form chính.
- DrawTool: Lớp các công cụ vẽ (lớp cha của các lớp còn lại).
- PencilTool: Vẽ bằng bút chì.
- LineTool: Vẽ đoạn thẳng.
- RectangleBoundTool: Lớp vẽ các hình có khung chữ nhật.
- CurveTool, RectangleTool, EllipTool, PolygonTool, DiamonTool,
UpArrowTool, DownArrowTool, LeftArrowTool, RightArrowTool, Eraser,
SixStarTool, FiveStarTool, FourStarTool, HexagonTool, PentagonTool,
RightTriangleTool, TriangleTool, TextTool, SelectTool: Kế thừa lớp
RectangleBoundTool, thực hiện các chức năng tương ứng với tên lớp.
Mô tả khái quát
1. Painter.cs
Mỗi tab có khung vẽ là 1 Panel màu trắng, kèm theo là 1 Bitmap cùng kích
thước với panel. Bitmap dùng để lưu ảnh đang có trên panel (khi repaint panel
không lưu được ảnh).
Mỗi tab có một List các Bitmap để lưu quá trình vẽ, dùng cho chức năng
Undo, Redo. Lưu ý là khi vẽ shape thì nút Redo sẽ enable, cho thấy là shape
chưa hoàn tất và có thể thay đổi màu / độ dày, khi đó nếu click nút Redo thì
shape sẽ chính thức hoàn tất.
2. DrawTool
Xây dựng ứng dụng Painter
Thông tin chi tiết liên hệ : [email protected] or [email protected] Page 5
Có hàm tạo với tham số truyền vào là panel, Bitmap và Pen (lưu màu và độ
dày bút vẽ) hiện tại trên form.
Chức năng vẽ hình được thực hiện bằng cách handle các sự kiện
MouseDown, MouseUp, MouseMove.
cách RefreshTool dùng để khởi tạo lại DrawTool khi Panel và
Bitmap thay đổi.
cách 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).
cách Cancel để hủy hình đang vẽ và khởi tạo lại DrawTool.
cách DrawToPanel dùng kỹ thuật Double buffering để hình trên
Panel khi đang vẽ không bị nhấp nháy.
cách DrawToBitmap: lưu hình vào Bitmap, chính thức hoàn thành
hình vẽ.
Ngoải ra còn có một số hàm hỗ trợ khác.
3. PencilTool
Kế thừa trực tiếp từ DrawTool, thực hiện chức năng vẽ theo đường đi của
con trỏ chuột.
Có 1 trường thuộc kiểu GraphicsPath để lưu nét vẽ, dùng để vẽ lại khi có
thay đổi màu/độ dày bút vẽ.
Khi MouseMove thì vẽ trực tiếp lên Panel (không dùng double buffering)
để đảm bảo tốc độ vẽ.
4. Eraser
Kế thừa PencilTool.
Tạo một Pen mới màu trắng để không ảnh hưởng đến Pen truyền vào.
5. LineTool
Kế thừa DrawTool.
Có thể thay đổi vị trí 2 mút của đoạn thẳng / tịnh tiến cả đoạn.
Xây dựng ứng dụng Painter
Thông tin chi tiết liên hệ : [email protected] or [email protected] Page 6
6. RectangleBoundTool:
Có hầu hết các method cho việc vẽ hình có bao chữ nhật.
Các lớp con nếu không có đặc điểm gì đặc biệt (không phải là curve hay
polygon,…) thì chỉ cần override hàm DrawShape để vẽ hình tương ứng (elip,
hình chữ nhật, ngôi sao,…).
Các bước vẽ: Khi MouseDown, kiểm tra chế độ làm việc (vẽ, resize,
move?) dựa vào vị trí của con trỏ chuột rồi gọi các hàm tương ứng khi
MouseMove và MouseUp. Sau khi MouseUp tạo 1 hình mới (MouseUp khi chế
độ được chọn là “vẽ”) thì vẽ khung hình chữ nhật bao quanh hình để tiện
resize/move.
7. CurveTool, PolygonTool
Kế thừa RectangleBoundTool.
Có thêm các trường để lưu tọa độ các điểm, lưu hình sau khi đã xác định
được tất cả các điểm (cần lưu để khi resize không bị mất hình).
Override cách EndShape để thực hiện việc đóng hình vẽ nếu chưa
xác định được hết tọa độ các điểm.
Khi resize, tọa độ các điểm được tính theo tỷ lệ để hình mới giữ được dạng
cũ.
8. TextTool
Kế thừa RectangleBoundTool.
Có thêm các trường để lưu font, bút vẽ, tạo một richtextbox để nhập text,
các biến xử lý tự động resize.
Cách vẽ: đầu tiên tạo ra một textbox để nhập text, sau đó lấy dữ liệu text đó
dùng hàm DrawString để vẽ lên panel đúng tại vị trí ta nhập text.
Xử lý hàm:
Hàm DrawText: xử lý text trong richtextbox để vẽ ra panel.
Hàm DrawShape: tạo mới một ô richtextbox để nhập text.
Bắt sự kiện TextChanged để xử lý auto res...