Chương 2 LẬP TRÌNH SỰ KIỆN NÂNG CAO & ĐỒ HỌA TRONG VISUAL BASIC
HÀM CIRCLE
Bước 18: Dùng hàm Circle để vẽ hình tròn, hình bầu dục và cung tròn, với bên trong không màu hay được phủ bằng một màu ta chỉđịnh. Để vẽ, ta phải cho biết tọa độ của tâm của đường tròn và bán kính của nó.
Ta xử lý cho sự kiện mnuTron_Click như sau: Private Sub mnuTron_Click()
' Vẽđường tròn tâm 2000,1500 bán kính 800 Circle (2000, 1500), 800
' Vẽđường thẳng ngang từ tâm Line (2000, 1500)-Step(0, 800) ' Vẽđường thẳng đứng từ tâm Line (2000, 1500)-Step(800, 0) End Sub
Bước 19: Bây giờ, thay vì vẽ nguyên một đường tròn, ta sẽ chỉ vẽ một cung tròn với màu đỏ. Để chỉ định rằng ta sẽ vẽ từ vị trí nào trên đường tròn đến vị trí nào khác, thí dụ từ 45 độđến 230 độ, ta cần phải đổi độ ra đơn vị Radian bằng cách dùng hàm Rads
như sau:
Chọn Tools\Add Procedure… để thêm một hàm tên Rads với các giá trị sau: Name: Rads
Type: Function Scope: Private
Private Function Rads(ByVal Degree As Single) As Single ' Đổi độ sang Radian
Const PI = 22 / 7
Rads = Degree / 180 * PI End Function
Bước 20: Cung tròn luôn luôn được vẽ ngược chiều kim đồng hồ. Dưới đây là đoạn mã của sự kiện mnuCung_Click để vẽ một cung tròn màu đỏ bán kính 800, tâm (4000, 2000), từ 45 độ đến 230 độ:
Private Sub mnuCung_Click()
Circle (4000, 2000), 800, vbRed, Rads(45), Rads(230) End Sub
Bước 21: Ta có thể cho tô màu bên trong các hình tròn, hay Pie Slice (một phần của hình tròn) bằng cách đặt thuộc tính FillStyle bằng 0 và chỉ định màu FillColor. Một Pie Slice là một vòng cung đóng kính bởi hai đường thẳng bán kính ở hai đầu. Muốn vẽ một Pie Slice ta đánh thêm dấu trừ ("-") trước hai trị số Radian, tức là dùng - Rads(45), -Rads(230) thay vì Rads(45), Rads(230).
Dưới đây là mã lệnh vẽ hai Pie Slices, có tâm lệch nhau một chút, đồng thời thêm chú thích 87.5% và 12.5%. Hình vẽ này tương tự như các biểu đồ dân số, diện tích… Sự kiện mnuBieudo_Click:
Private Sub mnuBieudo_Click() FillStyle = 0 ' Cho phép tô màu FillColor = vbYellow
' Vẽ một Pie Slice từ 90 độđến 45 độ màu vàng Circle (3000, 4000), 800, , -Rads(90), -Rads(45) ' Vị trí hiển thị văn bản
CurrentX = 2800: CurrentY = 4400 Print "87.5%"
FillColor = vbBlue
' Vẽ một Pie Slice từ 45 độđến 90 độ màu xanh Circle (3050, 3900), 800, , -Rads(45), -Rads(90) ' Vị trí hiển thị văn bản
CurrentX = 3400: CurrentY = 3000 Print "12.5%"
FillStyle = 1 ' Không cho phép tô màu End Sub
Bước 22: Hàm Circle còn được dùng để vẽ các hình bầu dục (Elip). Vẽ hình bầu dục giống như vẽ một hình tròn nhưng ta cần cho thêm một tham số gọi là Aspect. Aspect là sự liên hệ giữa bán kính ngang (chiều ngang) và bán kính dọc (chiều cao). Thí dụ nếu Aspect=2 thì chiều cao của hình bầu dục gấp đôi chiều ngang, ngược lại, nếu Aspect=0.5 thì chiều ngang sẽ gấp đôi chiều cao.
Dưới đây là đoạn mã ta dùng để vẽ hai hình bầu dục cùng kích thước, một nằm thẳng đứng và một nằm ngang ⇒ Sự kiện mnuBauduc_Click được xử lý:
Private Sub mnuBauduc_Click()
Circle (1400, 3000), 800, vbMagenta, , , 2 Circle (1400, 3000), 800, vbBlue, , , 0.5 End Sub
Bước 23: Lưu dự án và chạy chương trình.