Vẽ Tin lên màn hình

Một phần của tài liệu XÂY DỰNG THƯ VIỆN PHẦN MỀM HỖ TRỢ HỆ THỐNG THÔNG TIN ĐNA LÝ GIS 3D DỰA TRÊN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG BẰNG NGÔN NGỮ C++ (Trang 66 - 67)

Tin được thành lập bởi hai đối tượng chính là đỉnh (vertex) và tam giác (triangle). Do

đó vẽ Tin ta chỉ cần vẽ các đỉnh và các tam giác, đây cũng là hai đối tượng cơ bản

(primitive) của GL.

Khi tơ màu các tam giác của Tin, ngồi việc dùng thuộc tính FillColor kèm theo, ta cịn dùng các thiết lập đồ họa dựa theo thuộc tính liên kết với mỗi đối tượng. Thuộc tính (TinAttribute) là một thực thể đã được đề cập đến trong tầng DML. Mỗi thuộc

tính bao gồm một số giá trị định nghĩa trước. Mỗi giá trị này sẽ được ràng buộc (bind) với một số đối tượng (đỉnh hay tam giác) của Tin. Khi vẽ Tin theo một thuộc tính, ứng với từng giá trị các thiết lập môi trường render của OpenGL sẽ được thiết lập trước khi các đối tượng này được dựng thành khung vẽ (render). Đoạn mã sau diễn tả quá trình này:

For Each Value in Attribute Do

<Apply graphic settings base on Value>

<Read all bound objects and render them> <Clear up settings for this Value> End For

Các thiết lập đồ họa ứng với từng giá trị của thuộc tính (attribute value)là hồn tồn do người dùng định nghĩa. Các thiết lập này có thể đơn giản là thiết lập màu tơ, kiểu tô hay phức tạp hơn là các kết cấu (texture) v.v…Mỗi attribute value có liên kết với một

Luận văn tốt nghiệp GVHH: Nguyễn Hữu Hải.

đoạn dữ liệu. Đoạn dữ liệu này hoàn toàn do người dùng định nghĩa và có kích thước

thay đổi.

Có bốn loại attribute được định nghĩa là :

Ranged Attribute: các giá trị của thuộc tính này là một vùng không gian giới

hạn bởi giá trị min, max của tọa độ khơng gian theo 3 chiều (x,y,z). Ví dụ

chúng ta quy định trong khoảng độ cao 200m đến 500m thì thuộc tính của đối tượng có giá trị màu đỏ.

Text Attribute: các giá trị của thuộc tính là những đoạn text.

Numeric Attribute: giá trị của thuộc tính là những số nguyên.

Enumeration Attribute: giá trị của thuộc tính cũng là một số nguyên tuy nhiên

mỗi số nguyên này được kết hợp với một chuỗi văn bản. Thuộc tính này tương tự kiểu liệt kê trong các ngôn ngữ lập trình.

Một phần của tài liệu XÂY DỰNG THƯ VIỆN PHẦN MỀM HỖ TRỢ HỆ THỐNG THÔNG TIN ĐNA LÝ GIS 3D DỰA TRÊN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG BẰNG NGÔN NGỮ C++ (Trang 66 - 67)