Luận Văn Tốt Nghiệp
-----------------------------------------------------------------------------------------------------
CHƯƠNG II : NGHIÊN CỨU LÝ THUYẾT DỰNG HÌNH
I- CÁC KẾT XUẤT ĐỒ HỌA CƠ BẢN:
Một kết xuất cơ bản là một phần tử ảnh được cung cấp trực tiếp trong phần
mềm đồ họa hoặc từ phần cứng. Trong phần này chúng ta sẽ giới thiệu về các kết
xuất cơ bản có trong chuẩn GKS.
Ví dụ : thuộc tính cơ bản của đường thẳng là :màu, độ rộng đường, kiểu .
Kết xuất đồ họa cơ bản của GKS:
Gồm có sáu phần
1.Polyline
2.PolyMaker
3.Text
4.Fill area
5.Cell area
6.Generalized drawing
1- Polyline :
Một polyline là một dãy các đường thẳng nối nhau, dãy này không nhất thiết
phải đóng, và các đường có thể cắt nhau. Nơi hai đường cắt nhau gọi là đỉnh của
polyline. Như vậy dữ liệu cần để xác đònh polyline là danh sách các đỉnh, mỗi đỉnh
là một cặp tọa độ:
(x1, y2),(x2, y2)…(xn, yn)
Những tính chất cơ bản của polyline được mô tả trong GKS là:
.Màu: Mọi đường trong polyline có cùng màu. Muốn có màu khác ta
phải tạo polyline khác
.Kiểu đường: Đường có thể vẽ theo mẫu như liền nét(solid) đứt quãng
(dashed), chấm điểm (dotted) hay chấm điểm và đứt quãng
.Độ dày: Xác đònh độ dày mỏng của đường. Mọi đường trong polyline
có cùng độ dày.
- Trang 24-
Luận Văn Tốt Nghiệp
-----------------------------------------------------------------------------------------------------
2- Polymaker:
Polymaker sẽ đặt một số dấu hiệu (marker) có cùng dạng và kích thước tại
một số vò trí tuỳ ý. Hình dạng đơn giản của polymaker như: +, -, *, 0, hay các đặt
biệt như ,♥ , … Kiểu của dư õliệu là một trong những thuộc tính của polymaker nên
phải được xác đònh trước polymaker. Ta có thể dùng kiểu dữ liệu polypoint để xác
đònh vò trí vẽ dấu hiệu polymaker.
3- Text :
Hầu hết các thiết bò đồ hoạ có hai chế độ văn bản (text) và đồ họa
(graphic). Thông thường, trong chế độ văn bản ta không thể đặt các ký tự bắt kỳ
đâu, mà phải trên những hàng và cột nhất đònh.
Nếu muốn uyển chuyển hơn trong việc chọn kích thước và vò trí của ký tự ,
ta phải dùng chế độ đồ họa cùng với phần mềm thích hợp.
Trong GKS, một chuỗi ký tự , String, như ‘Population of USA’ được vẽ bắt
đầu tại một điểm (x, y) , dùng thủ tục như Text(x, y , String). Một khía cạnh thứ hai
nữa là chọn các thuộc tính , gồm :
Màu: việc chọn màu ảnh hưởng đến kết qủa.
Font: một loại font gồm các ký tự có kích thước và dạng riêng .
Kích thước ký tự : cả độ cao và độ rộng của ký tự đều có thể biến
đổi. Nếu ký tự được đònh nghóa từ polyline thì dễ thay đổi kích thước hơn.
Khoảng cách của các ký tự : có thể điều chỉnh rất gần hoặc xa nhau.
Dóng hàng : văn bản có thể được dóng hàng như canh trái , phải,
hoặc giữa .
Hướng in: chuỗi ký tự có thể được in theo một trong bốn hướng :
sang phải, lên trên, xuống dưới, và qua trái .
In xuyên : chuỗi ký tự có thể in xuyên theo một hướng nào đó.
4- Fill area (tô vùng)
Thuộc tính tô vùng thường được dùng để tô một vùng theo màu hay mẫu
(pattern) nào đó.
5- Cell Array :
Cell Array được vẽ là một mãng các ô hình chữ nhật. Màu của các ô được
gứi cho thủ tục Cell_Array( ).
6- Generlized Drawing:
- Trang 25-
Luận Văn Tốt Nghiệp
-----------------------------------------------------------------------------------------------------
Đây là vẽ tự do.
II – NGHIÊN CỨU CÁC PHƯƠNG PHÁP TẠO HÌNH:
1- Cách tạo hình lợp ngói pattern đơn giản:
Các cách lợp ngói phẳng : ứng dụng trong lát gạch nền, hay còn gọi là CAIRO.
Gồm có các loại nền sau: lát gạch tam giác đều, hình vuông, lục giác đều
(hình 1). Lưu ý tam giác đều phải luân phiên đổi hướng để vừa khít nhau ( vì sáu
tam giác đều có thể hình thành lục giác đều ). Lợp ngói tam giác đều có thể thay
cho lục giác đều .
1.1 - Phân tích tam giác đều : (hình 1A)
Để có được cách lợp ngói tam giác như trên thì chúng ta có thể thực hiện như
sau : mỗi lần chúng ta vẽ một dòng các tam giác theo cùng một hướng có đường
ngang làm cơ sở . Các tam giác của dòng sau được vẽ ngược chiều với dòng trước .
Giải thuật vẽ cách lợp ngói bằng tam giác này chỉ phụ thuộc vào số lần lặp : để vẽ
bao nhiêu tam giác của một dòng, và số lần lặp cần vẽ bao nhiêu dòng tam giác .
Vậy nói chung sau khi vẽ được tam giác , để có được bao nhiêu tam giác trên dòng
- Trang 26-
A1
D1
A B C
Hinh 1
Luận Văn Tốt Nghiệp
-----------------------------------------------------------------------------------------------------
và có bao nhiêu dòng tam giác chỉ phụ thuộc vào hai biến i (số tam giác trên dòng )
và j (số dòng của tam giác ) .
1.2 - Phân tích cách lợp ngói bằng hình vuông : (hình 1B)
Để có được cách lợp ngói bằng hình vuông như trên thì các bước thực hiện như
sau : đầu tiên ta vẽ một dòng các hình vuông theo một hướng nhất đònh và có đường
ngang làm cơ sở. Các hình vuông của dòng sau được vẽ tương tự như dòng trước .
Điểm xuất phát dòng sau có cùng tọa độ x như dòng trước. Chỉ khác nhau là toạ độ
y mà thôi. Để vẽ được bao nhiêu hình vuông trên dòng, và bao nhiêu dòng hình
vuông thì phụ thuộc vào hai biến vòng lặp i và j cũng như vẽ tam giác.
1.3 - Phân tích lợp ngói bằng lục giác: (hình 1C)
Đầu tiên ta cũng vẽ một dòng lục giác đều và các lục giác của dòng sau không
giống như hình vuông là cùng tọa x. Mà các lục giác của dòng sau phải lùi vào 1/2
độ rộng lục giác, và dòng kế tiếp nữa thì nhô lên trước 1/2 độ rộng của lục giác.
Nói chung là các dòng chẳn là cùng tọa độ xuất phát x, và các dòng lẻ cùng toạ độ
xuất phát x(tọa độ x dòng chẳn và x dòng lẻ khác nhau). Và số lần lặp của lục giác
trên dòng và số lần lặp của dòng cũng tương tự như lợp ngói bằng tam giác đều và
hình vuông.
Tóm lại các cách lợp ngói này không dùng đệ quy mà chủ yếu là dùng dòng
lặp
2- Cách tạo các cung:
2.1 - Cung Hilbert:
Muốn dựng được cung Hilbert thì chúng bắt nguồn từ bốn cái hộp ba cạnh vẽ
trong một hướng nhất đònh. Mỗi cái hộp tương ứng với một cung hilbert bậc-1 gọi là
A1, B1, C1, và D1 (hình 2). Mỗi cung Hilbert tương ứng có một bậc nhất đònh như :
bậc-1, bậc-2, bậc-3,… và một trong bốn hướng, gọi là A, B, C, hay D. Các cung bậc-
1 trên được nối với nhau bởi những đoạn nối (còn gọi là thanh chống) để tạo nên
cung bậc-2 (hình 3), tương ứng là A2 được hình thành từ các thành phần của cung
bậc-1 như sau: B1, "đường nối lên (up)", A1, "đường nối phải (right)", lại A1,
"Đường nối xuống (down)", cuối cùng là C1. Như vậy cấu tạo của A2 là B, lên, A,
- Trang 27-
A1
D1
Luận Văn Tốt Nghiệp
-----------------------------------------------------------------------------------------------------
phải, A, xuống, C. Tương tự vậy ta được B2 gồm:A, phải, B, lên, B, trái, D. Còn C2
gồm: D1, trái, C1, xuống, C1, phải va A1 .Và D2 gồm:C1, xuống, D1, trái, D1, lên
và B1.
Việc này cứ tiếp tục cho mọi bậc cao hơn của cung .
Vídụ: B9 được hình thành từ A8, phải, B8, lên, B8, trái và D8. Ta có bản sau cho
hướng và chiều của cung Hilbert.
- Trang 28-
A B C D
Hình 2
A2 B2 C2
Hình 3
D2
A1
D1
B1 C1
Up
down
righ
t