viTriChuotSoVoiHinhVe int Vị trí tương đối của 1 điểm và đốitượng khôngthayDoiKichThuoc bool Xét đối tượng có thể thay đổi kích thước không Phương thức HinhVe Tên Kiểu trả về Constructor
Trang 1TRƯỜ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
Trang 2
Trang 3
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
Trang 4LỜ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ữngthắ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ênquan 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ậynhó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
Trang 5MỞ ĐẦU
Lập trình trực quan (Visual Programming) là một môn học cung cấp cho sinh viênnhữ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ếntrì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ếnthứ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ườngWindows
Trong khuôn khổ của môn học, chương trình DemoPaint Version 1.0 được xâydự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 Đạihọc Công nghệ Thông tin ĐHQG HCM Chương trình DemoPaint Version 1.0 xây dựngdự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ànthành được các yêu cầu từ cơ bản nhất đến nâng cao cho chương trình DemoPaintVersion 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ủabáo cáo này
Trang 6A TỔNG QUAN NHÓM
I Thông tin nhóm:
15520012 Bùi Nguyễn Hoàng Anh 15520012@gm.uit.edu.vn Trưởng nhóm
15520050 Dương Chí Bình 15520050@gm.uit.edu.vn Thành viên
15520224 Lê Bá Phúc Hiếu 15520224@gm.uit.edu.vn Thành viên
15520337 Dương Hoàng Khang 15520337@gm.uit.edu.vn 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ạchnội dung thực hiện, phân công nhiệm vụ và giao hạn deadline
- Inno Setup Compiler
- Corel draw version 17.4 portable
Trang 7
-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 (VisualProgramming) về lập trình trên môi trường Winform bằng ngôn ngữ C# và những kiếnthứ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áytí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ôisao, 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ẽ:
Trang 8Kết hợp các kiến thức về: GDI+, WindowForm, Lập trình hướng đối tượng, Cấutrú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 giaodiệ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ế đơngiả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 thaotá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ớimột số chức năng
Trang 9II Ý 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 đốitượ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ểmkiểm khiển (dùng cho việc thay đổi kích thước đối tượng), khu vực đối tượngchiế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
2 Xây dựng chức năng:
- 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ìnhmũ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
Điểm chuột click xuống trang vẽ
Điểm điều khiển
Trang 10c 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
- 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:
https://www.facebook.com/me , 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
Trang 11III Thiết kế dữ liệu:
1 Sơ đồ lớp đối tượng:
8 TamGiacVuong Lớp hình tam giác vuông
11 LeftArrow Lớp hình mũi tên (trái/phải)
12 UpArrow Lớp hình mũi tên (lên/xuống)
Trang 12viTriChuotSoVoiHinhVe int Vị trí tương đối của 1 điểm và đối
tượng
khôngthayDoiKichThuoc bool Xét đối tượng có thể thay đổi kích
thước không
Phương
thức HinhVe() Tên Kiểu trả về Constructor khởi tạo không tham Ý nghĩa
sốHinhVe(Color cl, int pw) Constructor khởi tạo có tham số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)
Constructor khởi tạo có tham số
Ve(Graphics g) void Vẽ đối tượng
Rectangle Tạo hình chữ nhật bao quanh
điểm điều khiển
HinhVe
Trang 13viTriDiemDieuKhien) Rectangle Tạo hình chữ nhật bao quanh điểm điều khiểnVeKhung(Graphics g) void Vẽ điểm điều khiển
VeHCNDiemDieuKhien(Graphics g,
kiemTraThuoc(Point point) bool Kiểm tra điểm có thuộc đối tượng
khôngkiemTraViTri (Point point) int Trả về vị trí tương đối của 1 điểm
và đối tượngThayDoiDiem(int
viTriDiemDieuKhien) void Xác định lại điểm bắt đầu, kết thúc khi Click vào 1 điểm điều
khiểnDiChuyen(int deltaX, int deltaY) void Di chuyển đối tượng
Trang 142.2 Lớp HinhChuNhat:
- 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:
HinhChuNhat
Phương
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
HinhChuNhat(Color cl, int pw):
base(cl, pw)
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ẽHinhChuNhat(Color mauve, int
dodamnet, Point diembatdau,
Point diemketthuc, Point
diemmousedown, int
sodiemdieukhien, GraphicsPath
graphicspath, Region khuvuc,
int vitrichuotsovoihinhve, bool
VeHCN(int x1, int y1, int x2, int
y2) Rectangle Tạo hình chữ nhật từ 4 giá trị tọa độ x, ycủa 2 điểmVeHCN(Point pointA, Point
pointB)
Rectangle Tạo hình chữ nhật từ 2 điểm
Ve(Graphics g) void Vẽ hình chữ nhật
DiemDieuKhien(int
viTriDiemDieuKhien)
Point 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
HinhVe
HinhChuNhat
Trang 15được đánh số từ 1-8 (trên xuống dưới, trái qua phải)
ThayDoiDiem(int
viTriDiemDieuKhien)
void 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 đóThayDoiKichThuoc(int
viTriDiemDieuKhien, Point
newPoint)
void 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ợpMouse_Down(MouseEventArgs
e)
void + 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ả
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
Trang 16DuongThang() : base() 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
DuongThang(Color mauVe, int
doDamNet): base(mauVe,
doDamNet)
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ẽDuongThang(Color mauve, int
dodamnet, Point diembatdau,
Point diemketthuc, Point
thaydoikichthuoc, int loaihinh)
: base(mauve, dodamnet ,
Trang 17viTriDiemDieuKhien = 1 là điểm bắt đầu, nếu viTriDiemDieuKhien = 2 là điểm kết thúc
ThayDoiDiem
(int viTriDiemDieuKhien) void Xác định lại diemBatDau và diemKetThuc khi click chuột vào 1
điểm điều khiển
ThayDoiKichThuoc(int
viTriDiemDieuKhien, Point
point)
void 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ợpVeKhung(Graphics g) void Vẽ khung
Mouse_Down
(MouseEventArgs e) void + 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ả
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
Trang 18thức Pencil() : baseTên() Kiểu trả về Constructor khởi tạo 2 điểm ban đầu vớiÝ nghĩa
số điểm điều khiển là 2, mã loại hình là 15
Pencil(Color mauVe, int
doDamNet): base(mauVe,
doDamNet)
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ẽPencil(Color mauve, int
dodamnet, Point diembatdau,
Point diemketthuc, Point
DoiTuong
Trang 19Ve(Graphics g) void Vẽ tự do
DiemDieuKhien(int
viTriDiemDieuKhien) Point Tạo điểm điều khiển
ThayDoiDiem(int
viTriDiemDieuKhien)
void Thay đổi điểm bắt đầu, điểm kết thúc
khi click vào 1 điểm điều khiểnThayDoiKichThuoc(int
viTriDiemDieuKhien, Point
point)
void Thay đổi kích thước của đối tượng
DiChuyen(int deltaX, int
VeKhung(Graphics g) void Vẽ khung
Mouse_Down
(MouseEventArgs e) void 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_Move
(MouseEventArgs e)
void
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
Trang 202.5 Lớp 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
Elip
Phương
thức
Elip() : base() 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à 3Elip(Color mauVe, int
kichThuocButVe):
base(mauVe, kichThuocButVe)
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ẽ
Elip(Color mauve , int
dodamnet , Point diembatdau ,
Point diemketthuc , Point
vẽ, khu vực đối tượng chiếm giữ, di chuyển, thay đổi kích thược, mã loại hình
DoiTuong
Elip
Trang 21vitrichuotsovoihinhve ,
dichuyen , thaydoikichthuoc ,
loaihinh)
Ve(Graphics g) void Vẽ hình Ellipse
VeKhung(Graphics g) void 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
Trang 222.6 Lớp VanBan
VanBan
Thuộc
tính
Phương
thức
VanBan() : base() 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
VanBan(Color cl, int pw,
Font phongchu)
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ữ
VanBan(Color mauve, intdodamnet, Point diembatdau,
Point diemketthuc, Point
diemmousedown, intsodiemdieukhien,
GraphicsPath graphicspath,
Region khuvuc, intvitrichuotsovoihinhve, booldichuyen, bool
thaydoikichthuoc, intloaihinh, Font phongchu) : base(mauve, dodamnet, diembatdau, diemketthuc, diemmousedown,
Constructor khởi tạo với tham số truyềnvà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ữ
HinhVe
Trang 23Ve(Graphics g) Void Vẽ chuỗi
tbValidate(Object sender,
EventArgs e) void Sự kiện dung để ẩn khung chữ khi vẽ khung chữ mớiMouse_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à -1 cho viTriChuotSoVoiHinhVe Xác định kíchthước, kiểu, vị trí và hiển thị đoạn văn bản
Trang 242.7 Lớp Import
- 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:
Import
Phương
thức Import() : baseTên() Kiểu trả về Constructor khởi tạo với số điểm điều Ý nghĩa
khiểu là 8, mã loại hình là 0Import(Color mauVe, int
doDamNet, Image hinhnen) 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
Import(Color mauve , intdodamnet , Point diembatdau ,
Point diemketthuc , Point
diemmousedown , int sodiemdieukhien ,
GraphicsPath graphicspath ,
Region khuvuc , intvitrichuotsovoihinhve , bool dichuyen , boolthaydoikichthuoc , int loaihinh,
Image hinhnen) : base(mauve , dodamnet , diembatdau , diemketthuc , diemmousedown
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 đượcclick, 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
HinhVe
HinhEllipse VanBan Import
Trang 262.8 Lớp TamGiac
- Các thuộc tính, phương thức trong lớp TamGiac được kế thừa từ lớp Elip
- Override lại các phương thức từ lớp Elip:
TamGiac
Phương
thức TamGiac() : Tênbase() Kiểu trả về Constructor khởi tạo chữ nhật đơn vị 1, Ý nghĩa
số điểm điều khiển là 8, mã loại hình là 5
TamGiac(Color mauVe, intdoDamNet): base(mauVe, doDamNet)
Constructor khởi tạo chữ nhật đơn vị 1,
số điểm điều khiểu là 8, mã loại hình là
5 khi truyền tham số là màu vẽ và kích thước bút vẽ
TamGiac(Color mauve , intdodamnet , Point diembatdau, Point diemketthuc , Point
diemmousedown , int sodiemdieukhien ,
GraphicsPath graphicspath ,
Region khuvuc , intvitrichuotsovoihinhve , bool dichuyen , boolthaydoikichthuoc , intloaihinh)
: base(mauve ,
Constructor khởi tạo với các tham số truyền vào là 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ữ, vị trí chuột so với hình vẽ, di chuyển, thay đổi kích thước, mã loại hình
HinhVe
Elip VanBan
TamGiac Import
Trang 27Ve(Graphics g) void Vẽ hình tam giác bằng cách tính tọa độ
các đỉnh dựa vào vị trí các điểm điều khiển
Trang 282.9 Lớp TamGiacVuong
- Các thuộc tính, phương thức trong lớp TamGiac được kế thừa từ lớp Elip
- Override lại các phương thức từ lớp Elip:
TamGiacVuong
Phương
thức TamGiacVuong() : Tên base() Kiểu trả về Constructor khởi tạo chữ nhật đơn vị 1, Ý nghĩa
số điểm điều khiển là 8, mã loại hình là 6
TamGiacVuong(Color
mauVe, int doDamNet):
base(mauVe, doDamNet)
Constructor khởi tạo chữ nhật đơn vị 1,
số điểm điều khiểu là 8, mã loại hình là
6 khi truyền tham số là màu vẽ và kích thước bút vẽ
GraphicsPath graphicspath ,
Region khuvuc , intvitrichuotsovoihinhve , bool dichuyen , boolthaydoikichthuoc , intloaihinh)
: base(mauve ,
Constructor khởi tạo với các tham số truyền vào là 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ữ, vị trí chuột so với hình vẽ, di chuyển, thay đổi kích thước, mã loại hình
HinhVe
Elip VanBan
TamGiacVuong TamGiac
Import
Trang 29Ve(Graphics g) void Vẽ hình tam giác vuông bằng cách tính
tọa độ các đỉnh dựa vào vị trí các điểm điều khiển
Trang 302.10 Lớp HinhThoi
- Các thuộc tính, phương thức trong lớp HinhThoi được kế thừa từ lớp Elip
- Override lại các phương thức từ lớp Elip:
HinhThoi
Phương
thức HinhThoi() : Tênbase() Kiểu trả về Constructor khởi tạo chữ nhật đơn vị 1, Ý nghĩa
số điểm điều khiển là 8, mã loại hình là 7
HinhThoi(Color mauVe, intdoDamNet): base(mauVe, doDamNet)
Constructor khởi tạo một hình chữ nhật đơn vị 1, số điểm điều khiểu là 8 mã loại hình là 7 khi truyền tham số là màu
vẽ và kích thước bút vẽHinhThoi(Color mauve , int
dodamnet , Point diembatdau, Point diemketthuc , Point
diemmousedown , int sodiemdieukhien ,
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
Trang 31bool dichuyen , bool
Ve(Graphics g) void Vẽ hình thoi bằng cách tính tọa độ các
đỉnh dựa vào vị trí các điểm điều khiển