Lập trình advance painter đề tài lập trình ứng dụng vẽ đơn giản mô phỏng MS paint

9 466 3
Lập trình advance painter  đề tài  lập trình ứng dụng vẽ đơn giản mô phỏng MS paint

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

Thông tin tài liệu

Xây dựng ứng dụng Painter Lập trình Advance Painter Đề tài: Lập trình ứng dụng vẽ đơn giản mô MS Paint Thực nhóm : Nguyễn Đức Hải Hà Trọng Sỹ Vũ Quốc Uy Thông tin chi tiết liên hệ : uyvq@bkindex.com or haind@bkindex.com Page Xây dựng ứng dụng Painter Muc lục Muc lục I Giới thiệu II Chức Chức có Chức chưa hoàn thành III Giao diện IV Mã nguồn Painter.cs DrawTool PencilTool Eraser 5 LineTool RectangleBoundTool: CurveTool, PolygonTool TextTool Các lớp lại V Lịch sử phát triển Thông tin chi tiết liên hệ : uyvq@bkindex.com or haind@bkindex.com Page Xây dựng ứng dụng Painter PAINTER I Giới thiệu Đây chương trình mô MS_Paint window có thêm số tính khác biệt, viết hoàn toàn C#.Net II Chức Chức có - Vẽ bút chì - Vẽ đoạn thẳng - Vẽ curve - Vẽ hình chữ nhật hình tương tự: elip, đa giác, sao, mũi tên, … - Thay đổi màu độ dày, di chuyển, resize hình vẽ - Cắt ảnh (giống chức Select 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ẽ Chức chưa hoàn thành - Resize panel / hình - Croping drawing: Vẽ region xác định - Thay đổi dạng đường viền bề mặt shape (outline & fill) - Tô màu - Phóng to, thu nhỏ - Select theo nhiều dạng hình khác - Vẽ chuột phải Thông tin chi tiết liên hệ : uyvq@bkindex.com or haind@bkindex.com Page Xây dựng ứng dụng Painter - Rotate, Copy, Paste ảnh/hình 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 tùy chọn skin giao diện có sẵn IV Mã nguồn Gồm class sau: - Painter: Form - DrawTool: Lớp công cụ vẽ (lớp cha lớp lại) - PencilTool: Vẽ bút chì - LineTool: Vẽ đoạn thẳng - RectangleBoundTool: Lớp vẽ 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 chức tương ứng với tên lớp Mô tả khái quát Painter.cs Mỗi tab có khung vẽ Panel màu trắng, kèm theo Bitmap kích thước với panel Bitmap dùng để lưu ảnh có panel (khi repaint panel không lưu ảnh) Mỗi tab có List Bitmap để lưu trình vẽ, dùng cho chức Undo, Redo Lưu ý vẽ shape nút Redo enable, cho thấy shape chưa hoàn tất thay đổi màu / độ dày, click nút Redo shape thức hoàn tất DrawTool Thông tin chi tiết liên hệ : uyvq@bkindex.com or haind@bkindex.com Page Xây dựng ứng dụng Painter Có hàm tạo với tham số truyền vào panel, Bitmap Pen (lưu màu độ dày bút vẽ) form Chức vẽ hình thực cách handle kiện MouseDown, MouseUp, MouseMove Phương thức RefreshTool dùng để khởi tạo lại DrawTool 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 thay đổi màu độ dày) Phương thức Cancel để hủy hình vẽ khởi tạo lại DrawTool Phương thức DrawToPanel dùng kỹ thuật Double buffering để hình Panel vẽ không bị nhấp nháy Phương thức DrawToBitmap: lưu hình vào Bitmap, thức hoàn thành hình vẽ Ngoải có số hàm hỗ trợ khác PencilTool Kế thừa trực tiếp từ DrawTool, thực chức vẽ theo đường trỏ chuột Có trường thuộc kiểu GraphicsPath để lưu nét vẽ, dùng để vẽ lại có thay đổi màu/độ dày bút vẽ Khi MouseMove vẽ trực tiếp lên Panel (không dùng double buffering) để đảm bảo tốc độ vẽ Eraser Kế thừa PencilTool Tạo Pen màu trắng để không ảnh hưởng đến Pen truyền vào LineTool Kế thừa DrawTool Có thể thay đổi vị trí mút đoạn thẳng / tịnh tiến đoạn Thông tin chi tiết liên hệ : uyvq@bkindex.com or haind@bkindex.com Page Xây dựng ứng dụng Painter RectangleBoundTool: Có hầu hết method cho việc vẽ hình có bao chữ nhật Các lớp đặc điểm đặc biệt (không phải curve hay polygon,…) cần override hàm DrawShape để vẽ hình tương ứng (elip, hình chữ nhật, 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í trỏ chuột gọi hàm tương ứng MouseMove MouseUp Sau MouseUp tạo hình (MouseUp chế độ chọn “vẽ”) vẽ khung hình chữ nhật bao quanh hình để tiện resize/move CurveTool, PolygonTool Kế thừa RectangleBoundTool Có thêm trường để lưu tọa độ điểm, lưu hình sau xác định tất điểm (cần lưu để resize không bị hình) Override Phương thức EndShape để thực việc đóng hình vẽ chưa xác định hết tọa độ điểm Khi resize, tọa độ điểm tính theo tỷ lệ để hình giữ dạng cũ TextTool Kế thừa RectangleBoundTool Có thêm trường để lưu font, bút vẽ, tạo richtextbox để nhập text, biến xử lý tự động resize Cách vẽ: tạo textbox để nhập text, sau lấy liệu text dùng hàm DrawString để vẽ lên panel vị trí ta nhập text Xử lý hàm: Hàm DrawText: xử lý text richtextbox để vẽ panel Hàm DrawShape: tạo ô richtextbox để nhập text Bắt kiện TextChanged để xử lý auto resize box Thông tin chi tiết liên hệ : uyvq@bkindex.com or haind@bkindex.com Page Xây dựng ứng dụng Painter Override hàm EndShape để gọi hàm vẽ text xóa richtextbox Các lớp lại Kế thừa RectangleBoundTool Thực chức vẽ hình có bao chữ nhật V Lịch sử phát triển Phiên Vũ Quốc Uy làm, thời điểm 22 Tháng ba 2011 Chức đơn giản vẽ lên bitmap Phiên Nguyễn Đức Hải làm có hệ thống hơn, chức đầy đủ nhiều so với phiên thời gian tháng năm 2011 Thông tin chi tiết liên hệ : uyvq@bkindex.com or haind@bkindex.com Page Xây dựng ứng dụng Painter Sau phải đến tháng 11-2011 Paint phát triển tiếp, lần thực chung nhóm sinh viên Nguyễn Đức Hải, Vũ Quốc Uy Hà Trọng Sỹ Phiên coi phiên 3.0 có nhiều điểm trội Hình thức làm việc nhóm tuân thủ quy tắc làm việc nhóm, công việc chuyên môn hóa nên phần mềm Paint “lột xác” nhiều Thực vòng tháng Thông tin chi tiết liên hệ : uyvq@bkindex.com or haind@bkindex.com Page Xây dựng ứng dụng Painter Thông tin chi tiết liên hệ : uyvq@bkindex.com or haind@bkindex.com Page ... dựng ứng dụng Painter PAINTER I Giới thiệu Đây chương trình mô MS_ Paint window có thêm số tính khác biệt, viết hoàn toàn C#.Net II Chức Chức có - Vẽ bút chì - Vẽ đoạn thẳng - Vẽ curve - Vẽ hình... theo nhiều dạng hình khác - Vẽ chuột phải Thông tin chi tiết liên hệ : uyvq@bkindex.com or haind@bkindex.com Page Xây dựng ứng dụng Painter - Rotate, Copy, Paste ảnh/hình vẽ III Giao diện - Dùng... IV Mã nguồn Gồm class sau: - Painter: Form - DrawTool: Lớp công cụ vẽ (lớp cha lớp lại) - PencilTool: Vẽ bút chì - LineTool: Vẽ đoạn thẳng - RectangleBoundTool: Lớp vẽ hình có khung chữ nhật -

Ngày đăng: 04/12/2015, 23:44

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan