• IDispatch Interface :
Interface này được hiện thực khi thành phần COM có sử dụng Automation Marshaler. IDispatch interface cho phép các chương trình ứng dụng được viết trên các ngơn ngữ lập trình khơng phải C++ có thể truy xuất đến COM Object.
IDispatch interface chứa hai phương thức GetIDsOfName() và Invoke().
o Phương thức QueryInterface() hiện thực một bản đế kết tên của mỗi
phương thức với một số được gọi là dispatch identifier (DISPID).
o Phương thức Invoke() nhận DISPID và gọi thực thi phương thức tương
ứng. Sau đó, nó trả về một pointer chỉ đến một VARIANT chứa dữ liệu trả
về từ phương thức được gọi.
II.1.3. COM Threading Model :
Threading Model mô tả kiểu và số lượng các thread có thể truy xuất đến cùng một
COM Object mà không gây ra lỗi. Một COM Object có thể hỗ trợ một threading model. Threading model được xác định khi trình ứng dụng kích hoạt thư viện COM bằng hàm CoInitializeEx().
• Single Threading Model : Tất cả các trình ứng dụng gửi yêu cầu đến COM
Object phải đứng trong một hàng đợi trên một thread đơn. Single-threaded
COM chỉ đáp ứng phù hợp với trình ứng dụng single-threaded. Trong một
thread trước tiên tạo ra COM Object và nắm pointer chỉ đến interface của
COM.
• Apartment Threading Model : Tất cả các trình ứng dụng nắm pointer chỉ đến
interface của COM Object mà không phải thông qua proxy/stub. Apartment
được tạo ra khi Thread gọi hàm CoInitializeEx() để kích hoạt thư viện
COM.Tất cả các thread trong apartment có thể truy xuất đến các interface của các thể hiện COM trong apartment.
Luận văn tốt nghiệp GVHH: Nguyễn Hữu Hải.
Thư viện Tính tốn và Trình diễn Lưới tam giác không đều Trang 72
1. Single threaded apartment (STAs) : hiện thực apartment threading model.
2. Multithreaded apartment(MTAs) : hiện thực free threading model (multi threaded).
C
CHHƯƯƠƠNNGG TTRRÌÌNNHH DDEEMMOO C
Luận văn tốt nghiệp GVHH: Nguyễn Hữu Hải.
CHƯƠNG 6 : CHƯƠNG TRÌNH DEMO
TÍNH THỂ TÍCH CẦN ĐÀO, ĐẮP CỦA ĐOẠN ĐƯỜNG
I. GIỚI THIỆU
I.1. Đặt vấn đề.
Chúng ta biết rằng GIS hỗ trợ con người trong việc thu thập dữ liệu, làm mơ hình, thao tác, phục hồi, phân tích và biểu diễn các dữ liệu địa lý. Từ đó, GIS trở thành cơng cụ hữu hiệu trong cơng tác quản lý và hỗ trợ tích cực cho việc ra quyết định hợp lý của con người. Việc ứng dụng GIS để giải quyết các vấn đề trong thực tế có một ý nghĩa hết sức quan trọng. Một trong những bài toán thực tế là vấn đề xây dựng các con đường trên một địa hình cho trước. Chúng ta cần mơ phỏng các tính tốn cần thiết để đánh giá dự án xây dựng về các mặt như: kiến trúc mỹ quan, tiết kiệm chi phí xây
dựng, đạt hiệu quả kinh tế cao...
Bản luận văn này chỉ hiện thực một chương trình ứng dụng xây dựng một con đường
đơn giản nhằm thể hiện ứng dụng kết quả của thư viện GIS 3D GTinLibrary, đề tài
chính của bản luận văn này, vào thực tế.
I.2. Mô tả ứng dụng
Trên một bề mặt địa hình cho trước, chúng ta cần xây dựng một đoạn đường từ điểm
A đến điểm B. Tọa độ các điểm A và B không nhất thiết nằm trên bề mặt địa hình,
nghĩa là có thể nằm bên trên hoặc bên dưới bề mặt TIN. Đoạn thẳng AB đóng vai trị là trục đối xứng của đoạn đường. Đoạn đường AB có một bề rộng δ cho trước. Độ dốc của đoạn đường so với mặt nước biển không được vượt quá một giới hạn α cho phép.