Quy trình tạo mô hình số địa hình và các dữ liệu 3D
Hình 11. Quy trình tạo dữ liệu 3D từ dữ liệu 2D Xử lý dữ liệu đầu vào
Dữ liệu đầu vào của chương trình là số liệu đo các điểm đặc trưng địa hình, các điểm này được phân bố ngẫu nhiên. Do đó trước khi đưa và chương trình xử lý cần phải được tổ chức sắp xếp cho phù hợp với quy trình làm việc của phần mềm.
Xử lý dữ liệu đầu vào
Xây dựng và biên tập mô hình TIN Tạo dữ liệu 3D Sắp xếp điểm Loại điểm trùng Xây dựng mô hình từ tập các điểm đầu vào Xây dụng mô hình từ các điểm đo kết hợp với các đường đặc trưng địa hình Vẽ đường đồng mức Nội suy độ cao
44
Xây dựng mô hình
Chức năng xây dụng mô hình cho phép thành lập lưới tam giác từ dữ liệu các điểm địa hình đã qua xử lý và các đường đặc trưng địa hình.
Tạo dữ liệu 3D từ mô hình số địa hình
Từ mô hình xây dựng được dựa trên yêu cầu của thực tế sử dụng, khai thác mô hình để đưa ra các dữ liệu khác như: độ cao tại một điểm, đường đồng mức, mặt cắt địa hình...
Xây dựng bề mặt địa hình 3D
Từ tập hợp các điểm dữ liệu đo ban đầu có nhiều cách để phân chia bề mặt địa hình thành một mạng lưới gồm các tam giác không đều liền kề (tam giác hóa bề mặt địa hình) . Vấn đề là phải tìm cách để tam giác hóa bề mặt địa hình từ tập các điểm đo sao cho lưới tam giác này biểu diễn bề mặt địa hình một cách sát thực nhất.
Có rất nhiều phương pháp để thành lập mô hình TIN. Hiện nay chủ yếu sử dụng lưới tam giác Delaunay để biểu diễn bề mặt địa hình.
Phương pháp góc lớn nhất
Phương pháp này xây dựng trực tiếp các tam giác Delaunay, dựa theo một tính chất được rút ra từ định nghĩa.
Vì ba điểm của tam giác không chứa một điểm trong nó, nên nếu giả sử ta đã biết hai điểm là đỉnh của tam giác Delaunay, đỉnh thứ ba sẽ là điểm trong tập hợp điểm có góc nhìn từ điểm này xuống hai điểm đã biết kia là lớn nhất. Do góc trong tam giác có giá trị trong khoảng từ 00 đến 1800, hàm cosin luôn nghịch biến, ta có thể thay thế bằng việc tìm giá trị cosin nhỏ nhất. Ký hiệu hai đỉnh Delaunay đã biết là A và B, đỉnh cần tìm là C, các cạnh đối diện tương ứng là a, b, c ta có: ab c b a C 2 cos 2 2 2
Việc tìm góc lớn nhất phải được thực hiện theo từng phía của cạnh.
Phương pháp góc lớn nhất có thể được sử dụng khi số lượng điểm cần tam giác hóa nhỏ.
Phương pháp chia để trị (Divide anh Conquer)
Phương pháp chia để trị có độ phức tạp O(nlogn) được đề xuất bởi Shamos và Hoey (1975), Lee và Schachter (1980). Vì các thuật toán sắp xếp có độ phức
45
tạp ít nhất là O(nlogn), do đó bất kỳ một thuật toán tam giác hóa Delaunay nào cũng có độ phức tạp ít nhất là O(nlogn). Thuật toán Chia để trị đã đạt được độ phức tạp này, là tốt nhất về lý thuyết. Tuy nhiên, trên thực tế Dwyer (1987) đã công bố một số biện pháp để thuật toán này có độ phức tạp trung bình và trong tình huống xấu nhất là O(nloglogn)
Mô hình TIN theo thuật toán này có thể được xây dựng bằng cách sử dụng sơ đồ Voronoi hoặc trực tiếp tạo các tam giác Delaunay. Thuật toán Lee và Schachter được thể hiện bằng các bước khái quát như sau:
- Sắp xếp các điểm theo giá trị tọa độ X, nếu X bằng nhau sắp xếp theo Y
- Chia danh sách điểm thành hai nửa
- Tam giác hóa cho từng nửa
- Trộn các tam giác ở hai nửa
Phương pháp tăng dần (Incremental)
Nếu phương pháp tăng dần có sử dụng các cấu trúc dữ liệu phù hợp, theo OhyaIri và Murota (1984), thì hiệu quả của nó còn cao hơn thuật toán Chia để trị, bởi vì tư tưởng của thuật toán này đơn giản và có độ phức tạp trung bình tuyến tính (mặc dù độ phức tạp trong tình huống xấu nhất là O(n2)).
Cũng như phương pháp chia để trị, phương pháp này có thể được xây dựng thông qua sơ đồ Voronoi hoặc trực tiếp tạo các tam giác Delaunay. Tư tưởng của thuật toán là chèn từng điểm vào một mô hình tam giác Delaunay đã có.
Các bước cho phương thức trực tiếp:
- Tạo bao lồi.
- Tam giác hóa cho các điểm trên bao lồi
- Chèn điểm (đối với các điểm còn lại)
- Tìm tam giác chứa điểm
- Tạo tam giác mới có đỉnh là điểm xét
- Kiểm tra với tam giác kế cận, nếu cần thì hoán đổi tam giác
Do việc kiểm tra và hoán đổi tam giác sẽ kết thúc rất nhanh, nên độ phức tạp của thuật toán sẽ phụ thuộc chủ yếu vào độ phức tạp của thao tác tìm tam giác chứa điểm. Điểm yếu của phương pháp này khi tất cả các điểm nằm trên bao lồi. Tuy nhiên, các bước trong thao tác chèn điểm có thể được sử dụng cho mục đích
46
biên tập trên mô hình. Hiện nay phương pháp này đã được cải tiến, sự cải tiến của phương pháp này là sử dụng 3 điểm ảo chứa hòan toàn tập điểm cần tam giác hóa thay cho bước tạo bao lồi. Việc lựa chọn 3 điểm ảo này sao cho nó không phá hủy bất kỳ cạnh nào của lưới tam giác sinh ra từ tập điểm. Thuật toán Incremental dễ hiểu, dễ cài đặt gần gũi với các thao tác biên tập tam giác.