1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu xây dựng công nghệ thành lập bản đồ số độ cao trong điều kiện việt nam

120 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 120
Dung lượng 1,19 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thông thường các đơn vị sản xuất phải đồng thời sử dụng kết hợp nhiều hệ thống phần mềm với nhau, ví dụ khi biên tập đồ họa thường được sử dụng AutoCad hoặc MicroStation, còn khi thành l

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT

-o0o -

TRẦN THÙY DƯƠNG

NGHIÊN CỨU XÂY DỰNG CÔNG NGHỆ THÀNH LẬP BẢN ĐỒ SỐ ĐỘ CAO TRONG ĐIỀU KIỆN VIỆT NAM

LUẬN ÁN TIẾN SĨ KỸ THUẬT

HÀ NỘI-2007

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT

-o0o -

TRẦN THÙY DƯƠNG

NGHIÊN CỨU XÂY DỰNG CÔNG NGHỆ THÀNH LẬP BẢN ĐỒ SỐ ĐỘ CAO TRONG ĐIỀU KIỆN VIỆT NAM

Chuyên ngành: Thiên văn trắc địa

Mã số: 2.16.02

LUẬN ÁN TIẾN SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC

GS.TSKH PHẠM HOÀNG LÂN

HÀ NỘI-2007

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu và kết quả được nêu trong luận án là trung thực, chưa từng được ai công

bố trong bất kỳ công trình nào khác

TÁC GIẢ LUẬN ÁN

TRẦN THÙY DƯƠNG

Trang 4

2.2.1 Xác định điểm nằm ở phía nào của đoạn thẳng 24

Trang 5

2.2.3 Điểm nằm trong đa giác 26

3.5 Các giá trị đạo hàm của B-spline bậc ba không tuần hoàn 413.6 Xác định điểm điều khiển của B-spline bậc ba không tuần hoàn 43

4.1 Thiết kế hệ thống và xây dựng các đối tượng đồ họa cơ sở 49

4.2.2 Ứng dụng của phân hoạch trong các bài toán khác nhau 56

4.3.1 Phép ánh xạ từ hệ tọa độ thực lên hệ tọa độ màn hình 574.3.2 Phép ánh xạ từ hệ tọa độ thực lên hệ tọa độ mặt chiếu ảo 584.3.3 Phép ánh xạ từ hệ tọa độ mặt chiếu ảo lên hệ tọa độ màn hình 62

Trang 6

4.3.4 Các thao tác thu phóng và trượt bản vẽ 64

5.1 Mô hình mạng lưới tam giác không quy chuẩn Delaunay 68

Trang 7

DANH MỤC CÁC HèNH VẼ

Hình 2-1 Các trường hợp cần phát hiện và loại bỏ khi khoanh vùng 29

Hình 2-2 Các trường hợp cần loại điểm khi khoanh vùng 30

Hình 2-3 Vùng có đảo và vùng ngoài biên 31

Hình 3-1 Một điểm trên đường cong tham số bậc ba 33

Hình 3-2 Phép nội suy tham số bậc ba từng khúc 34

Hình 3-3 Các véc tơ tiếp tuyến tại các điểm đầu mút của phân đoạn 34

Hình 3-4 Thay đổi độ lớn của véc tơ tiếp tuyến dẫn đến sự thay đổi hình dạng của đường cong tham số bậc ba 35

Hình 4-1 Sơ đồ thứ tự của các quad con 55

Hình 4-2 Hệ tọa độ mặt chiếu ảo 60

Hình 5-1 Đường tròn nhỏ nhất của A và B 74

Hình 5-2 Trường hợp PQ là cạnh biên 74

Hình 5-3 Hoán đổi tam giác trong một tứ giác 79

Hình 5-4 Chiều quay quét khi tạo đường đồng mức trực tiếp 83

Hình 5-5 Các trường hợp biên của mặt phẳng H so với mặt tam giác 85

Hình 5-6 Quan hệ tọa độ điểm gây nhiễu và điểm xét 90

Hình 5-7 Hiển thị các đường đẳng dị dị thường trọng lực 92

Hình 5-8 Hiển thị các đường đẳng dị dị thường độ cao 92

Hình 5-9 Hiển thị thông tin thuộc tính đối tượng công trình ngầm 100

Trang 8

DANH MỤC CÁC BỤNG

Bảng 3-1 Các phân đoạn B-spline bậc ba không tuần hoàn 40

Bảng 4-1 Các đối t−ợng đồ họa cơ sở 50

Bảng 4-2 Các đối t−ợng định danh 53

Bảng 5-1 Các tham số của mô hình 36 nguồn nhiễu 90

Bảng 5-2 Bảng m_ vật liệu công trình ngầm 95

Bảng 5-3 Bảng m_ loại công trình ngầm 95

Bảng 5-4 Th− viện ký hiệu dạng điểm CTN 97

Bảng 5-5 Th− viện ký hiệu dạng tuyến 99

Trang 9

MỞ ĐẦU

1 Tớnh cấp thiết của đề tài

Trong công tác thành lập bản đồ số độ cao hiện nay, phần mềm có một vai trò rất quan trọng Thông thường các đơn vị sản xuất phải đồng thời sử dụng kết hợp nhiều hệ thống phần mềm với nhau, ví dụ khi biên tập đồ họa thường được sử dụng AutoCad hoặc MicroStation, còn khi thành lập mô hình

số độ cao thường sử dụng các phần mềm như SoftDesk, SDR, đều là các phần mềm do các công ty của Mỹ sản xuất, các vấn đề liên quan đến bài toán tạo topology lại thường sử dụng AcadMap, ArcInfo Các phần mềm này là các phần mềm thương mại nên có độ ổn định và tốc độ cao, đ_ được nhiều đơn vị thành lập bản đồ sử dụng hiện nay Tuy nhiên, sự phụ thuộc vào các công nghệ nước ngoài trong công tác thành lập bản đồ số nói chung và bản đồ số

độ cao nói riêng đ_ gây ra những khó khăn nhất định, đặc biệt khi phải tuân thủ các quy định của luật bản quyền

Hiện nay, trong ngành trắc địa vẫn chưa có một phần mềm nào cho phép thành lập bản đồ số độ cao một cách hoàn toàn chủ động và độc lập,

đáp ứng được các yêu cầu kỹ thuật trong xử lý biên tập, quản lý dữ liệu đo

đạc, cũng như các yêu cầu mỹ thuật về mặt trình bày bản đồ Do đó đề tài nghiên cứu xây dựng công nghệ thành lập bản đồ số độ cao mang tính thời sự

và cấp thiết

2 Mục đớch, đối tượng, nội dung và phạm vi nghiờn cứu

Mục đích của đề tài là nghiên cứu, khảo sát, hệ thống hóa các thuật toán, khẳng định về lý thuyết cũng như thực tiễn khả năng xây dựng một hệ thống phần mềm thành lập bản đồ số độc lập với đầy đủ chức năng biên tập,

có độ tin cậy và tốc độ cao

Đối tượng và phạm vi nghiên cứu của luận án bao gồm các vấn đề liên quan đến công nghệ thành lập bản đồ số độ cao tỷ lệ lớn bằng phương pháp

đo đạc trực tiếp ngoài thực địa

Trang 10

Nội dung nghiên cứu của luận án bao gồm:

1 Khảo sát, phân tích, đánh giá các phần mềm phổ biến trong sản xuất, các đặc thù của công nghệ thành lập bản đồ số theo phương pháp đo đạc trực tiếp ngoài thực địa

2 Nghiên cứu các thuật toán liên quan đến các vấn đề biên tập đồ họa

3 Các giải pháp thành lập mô hình số độ cao

4 Nghiên cứu bài toán tạo topology

5 Thiết kế, xây dựng phần mềm

6 Đánh giá các kết quả đạt được trong các ứng dụng chuyên ngành

3 Cỏc luận điểm bảo vệ

1 Phần mềm kết hợp ba chức năng: biờn tập đồ họa, thành lập, xử lý mụ hỡnh số độ cao và tạo topology sẽ giải quyết được hầu hết cỏc vấn đề liờn quan đến bản đồ số

2 Sử dụng lý thuyết ỏnh xạ và phõn hoạch khụng gian cỏc đối tượng phự hợp sẽ là cơ sở để xõy dựng một hệ thống biờn tập đồ họa cú tốc độ và độ tin cậy cao

4 Cỏc điểm mới của luận ỏn

1 Kế thừa các nguyên tắc lưu giữ thông tin trực giác của quy trình thành lập bản đồ truyền thống là một trong những biện pháp tăng tốc độ thành lập bản đồ số độ cao

2 Bằng cách lựa chọn các thuật toán phù hợp đồng thời với các biện pháp loại bỏ các trường hợp biên, luận án đ_ giải quyết bài toán tạo topology hiệu

Trang 11

hoạch không gian các đối tượng đồ họa theo cây tứ phân Đây là cơ sở để xây

dựng một hệ thống biên tập đồ họa có tốc độ và độ tin cậy cao

5 Các biện pháp xử lý biên tập mô hình số độ cao cho phép xây dựng mô

hình phù hợp với thực tế

5 Phương phỏp nghiờn cứu

Trong luận án đ_ sử dụng phương pháp nghiên cứu lý thuyết cho việc phân tích, đánh giá và chọn lựa các thuật toán phù hợp để giải quyết các bài toán trong công nghệ thành lập bản đồ số độ cao, phương pháp mô hình hóa

và thực nghiệm so sánh để kiểm tra các kết quả thu được

6 í nghĩa khoa học và thực tiễn của đề tài

Trang 12

Chương 1 TỔNG QUAN 1.1 Bản đồ số độ cao

Đối với thuật ngữ về bản đồ, ở Việt Nam khi nói tới bản đồ địa hình, chúng ta thường hiểu đây là loại bản đồ cơ bản, trong đó thể hiện các yếu tố

địa hình liên quan đến bề mặt đất Loại bản đồ, bao gồm cả loại bản đồ địa hình và các loại bản đồ chuyên ngành, trong đó chiều thứ ba mang ý nghĩa tổng quát hơn, được gọi là bản đồ độ cao

Công nghệ thành lập bản đồ số độ cao là sự kết hợp quy trình đo đạc thực địa với hệ thống phần mềm biên tập đồ họa và mô hình số độ cao

Trong luận án này chúng tôi chỉ tập trung nghiên cứu vào các vấn đề còn chưa được giải quyết triệt để của công nghệ thành lập bản đồ số độ cao như thiết kế, xây dựng hệ thống biên tập bản đồ độc lập, sử dụng và xử lý

đường cong, giải pháp cho các trường hợp biên trong bài toán tạo topology, biên tập mô hình số độ cao Các vấn đề khác trong công nghệ thành lập bản

đồ đ_ được nghiên cứu đầy đủ như nhập, xử lý dữ liệu đo đạc ngoại nghiệp,

sẽ không được đề cập hoặc phân tích chi tiết trong luận án

1.2 Nguyờn tắc lưu giữ thụng tin trực giỏc trong quy trỡnh thành lập bản đồ

Công tác thành lập bản đồ số ở nước ta mới được các đơn vị sản xuất

áp dụng đại trà khoảng 10 năm gần đây Quy trình thành lập bản đồ số so với quy trình thành lập bản đồ thông thường trước đây có những điểm khác biệt, tuy nhiên cả hai quy trình này đều phải tuân thủ theo những nguyên tắc lưu giữ thông tin trực giác Trong quy trình đo đạc truyền thống, những nguyên tắc được thể hiện như sau:

 Người vẽ bản vẽ phải là người tham gia trong đội đo đạc hay nói cách

khác là những người có hình dung về những địa vật cũng như địa hình ngoài thực địa

Trang 13

 Bản vẽ được vẽ ngay trong quá trình đo đạc hoặc ngay sau khi đo dựa trên

cơ sở của sổ đo chi tiết cùng với các ký hiệu liên quan, để đảm bảo các thông tin về bản vẽ còn chưa bị quên

 Các điểm mia đuợc triển bản vẽ một cách tuần tự từ trạm máy này sang trạm máy khác, các sai sót về điểm mia được phát hiện ngay sau khi triển

Đây là những nguyên tắc sẽ làm cho công việc xử lý nội nghiệp trở nên đơn giản hơn nhiều

Cần lưu ý rằng, để phát hiện điểm mia sai về mặt địa vật sẽ dễ dàng hơn xác định điểm mia sai về địa hình, bởi vì khi giá trị độ cao của một điểm sai sẽ kéo theo bề mặt địa hình chung quanh điểm này bị ảnh hưởng và việc

đọc địa hình thông qua đường đồng mức cũng khó khăn hơn so với việc xác

định các yếu tố địa vật

Khi ứng dụng máy tính trong việc làm bản đồ số bằng phương pháp toàn đạc thông thường, những nguyên tắc nêu trên cần được kế thừa Do đó, khi thành lập bản đồ số bằng phương pháp đo trực tiếp ngoài thực địa, đơn vị sản xuất cần tuân thủ một số điểm như sau:

 Phải đưa máy tính ra ngoài thực địa

 Sử dụng các phần mềm thích hợp phục vụ cho công tác thành lập bản đồ

số, trong số đó phải có một phần mềm đồ họa với các chức năng biên tập

Trang 14

Khả năng tạo và chỉnh sửa các ký hiệu bản đồ dưới dạng điểm (khối) Khả năng tạo và chỉnh sửa các ký hiệu bản đồ dưới dạng miền (tạo các mẫu tô)

Khả năng tạo và chỉnh sửa các kiểu ký tự phù hợp với các chữ quy

Ngoài ra, hệ thống phần mềm phục vụ cho công tác thành lập bản đồ

số còn phải thỏa m_n những yêu cầu sau:

 Giao diện, thao tác đơn giản dễ hiểu bằng tiếng Việt, người sử dụng chỉ cần những kiến thức cơ bản tối thiểu về tin học

 Cho phép sử dụng được những đặc điểm, thói quen trong quy trình đo đạc truyền thống, sử dụng triệt để thông tin trực giác như đ_ nêu ở phần trên

 Phát hiện và khắc phục lỗi nhanh, chính xác

 Tự động hóa trong một số công đoạn đòi hỏi nhiều thời gian và công sức

 Thích ứng được các yêu cầu đặc thù ứng dụng trong điều kiện hoàn cảnh Việt Nam về mẫu m_, qui định, qui phạm của ngành cũng như địa phương

Trang 15

1.4 Cỏc phần mềm đồ họa thụng dụng phục vụ cho thành lập bản đồ số

độ cao

Phần mềm Suffer do h_ng Golden Software là phần mềm đồ họa cho phép xây dựng mô hình số địa hình được áp dụng đầu tiên ở Việt Nam vào những năm 80 của thế kỷ trước ưu điểm của Suffer là tương đối gọn nhẹ, dễ

sử dụng, phần mềm đ_ thể hiện được các đường đồng mức tương đối trơn Do các phương pháp nội suy của Suffer không phù hợp với thực tế đo đạc thực

địa, các công cụ biên tập, chỉnh sửa mô hình số địa hình không phong phú, nên phần mềm này ít được các đơn vị đo đạc thành lập bản đồ chuyên nghiệp

sử dụng

Phần mềm GeoCom (Australia), SDR (Mỹ), SoftDesk(Mỹ) là các phần mềm chuyên về thành lập bản đồ số địa hình được đưa vào nước ta vào đầu những năm 90 của thế kỷ trước, được một số đơn vị đo đạc chuyên nghiệp sử dụng tương đối có hiệu quả Các phần mềm này đều xây dựng mô hình số độ cao theo mô hình lưới tam giác không quy chuẩn(TIN) Delaunay và có các công cụ biên tập trên mô hình tương đối thuận lợi GeoCom, SDR đều là các môi trường đồ họa độc lập và có khả năng trao đổi với AutoCad thông qua khuôn dạng tệp dxf, còn SoftDesk sử dụng trực tiếp môi trường đồ họa AutoCad Hiện nay, GeoCom không còn thấy được sử dụng nữa

Các môđun tạo topology trong AcadMap, ArcInfo được sử dụng phổ biến trong việc khoanh vùng tự động Phần mềm Famis của Tổng cục Địa chính sử dụng môđun ArcTopo trong ArcInfo để phục vụ cho việc khoanh thửa đất trong công tác thành lập bản đồ địa chính Do được viết trong môi trường DOS, nên số vùng được xử lý của môđun ArcTopo còn hạn chế Phần mềm CescMap của Công ty địa chính công trình sử dụng môđun tạo topology trong AcadMap 3.0 cho mục đích tương tự Số vùng được xử lý của AcadMap

Trang 16

lớn hơn so với môđun ArcTopo, các chức năng tìm và chỉnh sửa lỗi cũng hoàn thiện hơn

Trong số các môi trường đồ họa được sử dụng phổ biến nhất để phục

vụ cho công tác thành lập bản đồ số ở nước ta hiện nay, địa chính cũng như

địa hình, phải kể đến hai hệ phần mềm quan trọng nhất, đó là phần mềm AutoCad của h_ng AutoDesk và MicroStation của h_ng Bentley

Cả hai hệ thống phần mềm này đều được xây dựng từ thập niên 80 của thế kỷ trước Phần mềm AutoCad được xây dựng sớm hơn (từ năm 1982), có thể nói trong môi trường DOS phần mềm AutoCad đ_ từng không có đối thủ, phiên bản hoàn thiện và được ứng dụng phổ biến nhất trong thành lập bản đồ

số ở nước ta là AutoCad Release 12 MicroStation phát triển muộn hơn một chút, và sự thành công của phần mềm này lại ở trong môi trường Window, nó

có những chức năng biên tập phong phú hơn đối với việc trình bày bản đồ, lại

được liên kết với các phần mềm chuyên về bản đồ của h_ng InterGraph, do

đó được lấy là công cụ chủ yếu đối với các đơn vị làm bản đồ chuyên nghiệp

Cấu trúc dữ liệu của tệp bản vẽ MicroStation là DGN đ_ được lấy làm chuẩn mực đối với các đơn vị sản xuất và quản lý bản đồ chuyên nghiệp Tuy vậy, phần mềm AutoCad vẫn có vai trò quan trọng trong đo đạc thành lập bản

đồ số, đặc biệt đối với công tác khảo sát ở các lĩnh vực khác như giao thông, thủy lợi, thủy điện Chính vì vậy, việc khảo sát cơ chế hoạt động của cả hai phần mềm này dưới quan điểm lập trình có một ý nghĩa quan trọng để có thể

đặt cơ sở cho việc thiết kế, xây dựng một hệ thống phần mềm đồ họa độc lập linh hoạt, đáp ứng được các yêu cầu kỹ thuật chuyên ngành

Ngoài ra, cần nghiên cứu phần mềm liên quan đến việc thành lập mô hình số địa hình, nội suy và vẽ đường đồng mức như phần mềm SoftDesk hoặc SDR cũng như phần mềm liên quan đến việc tạo vùng và các mối quan

hệ Topology như phần mềm AcadMap Có thể nói rằng nếu chúng ta xây

Trang 17

dựng được một hệ thống phần mềm kết hợp cả ba yếu tố là biên tập đồ họa, mô hình số địa hình và topology, thì có thể giải quyết được hầu hết các bài toán đặt ra liên quan đến bản đồ số hiện nay

Phương pháp để khảo sát các phần mềm đồ họa được thực hiện chủ yếu bằng thực nghiệm và bằng việc khảo sát chi tiết các cấu trúc dữ liệu tệp bản vẽ của mỗi phần mềm

Chúng ta có thể nhận thấy ngay rằng, sự thiết kế của cả hai hệ phần mềm này có những nét tương đồng: biện pháp ánh xạ các đối tượng lên màn hình, các đối tượng đồ họa cơ bản, các thuộc tính của chúng và các tham số liên quan đến bản vẽ, các chức năng biên tập, trình bày, quản lý đối tượng, tính mở của chương trình, khả năng can thiệp bằng các công cụ lập trình

về tổng quan được xây dựng gần như giống nhau

Để tăng tốc độ xử lý các đối tượng cho việc hiển thị, chọn đối tượng, bắt điểm cả hai hệ thống phần mềm này đều sử dụng các biện pháp tương

đối giống nhau

 Trước hết, hai hệ thống này đều chọn giải pháp là cố gắng xử lý các đối tượng đồ họa trực tiếp, khi khả năng bộ nhớ trong còn cho phép, tránh các thao tác với bộ nhớ ngoài Đây là quan điểm trái ngược hẳn với phần mềm Mapinfo, khi ưu tiên số lượng đối tượng được xử lý hơn là tốc độ Mặc dầu vậy, số đối tượng có thể xử lý được trong cả hai phần mềm này là tương đối lớn (cỡ 400000-500000 đối tượng), đáp ứng được hầu hết các bài toán trong thực tế

 Cả hai hệ thống phần mềm này đều sử dụng một mặt chiếu trung gian với mục đích nhằm biến đổi các đối tượng với các tọa độ là các số thực độ chính xác kép thành các đối tượng có các tọa độ là các số nguyên để tăng tốc độ xử lý (trong máy tính, các phép tính với số nguyên sẽ được thực hiện nhanh hơn các phép tính với số thực) Việc sử dụng một mặt chiếu trung gian như vậy sẽ làm cho hệ thống trở nên phức tạp hơn đáng kể vì

Trang 18

nó phải luôn theo dõi xem có đối tượng nào trong quá trình hiển thị hoặc biên tập vượt ra ngoài phạm vi của mặt chiếu trung gian này hay không, tránh lỗi trong trường hợp tọa độ nguyên bị tràn Sự kiểm soát các đối tượng trong hai hệ thống đồ họa này không giống nhau Autocad chọn giải pháp tự động điều chỉnh phạm vi của mặt chiếu trung gian khi phát hiện có hiện tượng đối tượng trong bản vẽ vượt ra ngoài, còn quan điểm của MicroStation là cố gắng chọn những tham số bản vẽ một cách phù hợp nhất để tránh các thao tác điều chỉnh

Mặc dầu độ phức tạp khi lập trình các đối tượng của hệ thống bị tăng lên, biện pháp sử dụng các tọa độ nguyên sẽ đồng thời đạt được ba hiệu quả,

đó là tăng tốc độ tính toán xử lý, giảm bộ nhớ cần thiết cho mỗi đối tượng và tăng độ tin cậy của các phép so sánh tọa độ

Hai phần mềm này có một số điểm khác biệt trong cấu trúc dữ liệu, thiết kế hệ thống quản lý đối tượng, cách đặt tên đối tượng

 Trong khi các thuộc tính một đối tượng MicroStation của tệp DGN được cấu tạo từ mức từng bit thì ở AutoCad trong tệp DWG lại ở mức từng byte

Điều này làm cho các đối tượng MicroStation có cùng một số lượng thuộc tính sẽ chiếm ít bộ nhớ hơn, nhưng các thao tác với bit thì sẽ khó khăn hơn

 Các thuộc tính của mỗi đối tượng trong MicroStation độc lập, không phụ thuộc nhau, còn các thuộc tính của đối tượng trong AutoCad có thể phụ thuộc vào các thuộc tính của lớp hoặc khối Chính vì vậy màu sắc, kiểu

đường, độ dày của đường trong AutoCad có các thuộc tính lôgic là BYLAER (theo lớp) hay BYBLOCK (theo khối) còn trong MicroStation các khái niệm này hoàn toàn không có

 Bản vẽ của AutoCad được thiết kế có tính độc lập cao hơn, ít phụ thuộc vào thư viện khối, kiểu đường, mẫu tô, phông chữ; các định nghĩa về khối,

Trang 19

kiểu đường, phông chữ được lưu đồng thời bên trong tệp bản vẽ DWG/DXF

 Nhập các tham số lựa chọn khi biên tập trong AutoCad chủ yếu qua dòng lệnh, còn MicroStation thông qua hệ thống hộp thoại Sub Pallette Các thao tác của MicroStation có xu hướng thiên về dùng chuột hơn

 Cả hai phần mềm đều xây dựng một hệ thống lệnh có cú pháp chặt chẽ, phần mềm MicroStation có xu hướng cố gắng thực hiện lệnh với ít thao tác hơn, xây dựng hệ lệnh phong phú, chi tiết hơn Trình tự thực hiện lệnh

và tính thống nhất của chúng trong AutoCad có phần cơ bản và chặt chẽ hơn

1.5 Mụi trường lập trỡnh đồ họa

Mục đích của đồ họa máy tính là tạo ra và thao tác các hình ảnh đồ họa, nên đồ họa máy tính phải có khả năng tạo ra và hiệu chỉnh các hình ảnh này bằng cách tương tác và đáp ứng nhanh Do đó, đồ họa máy tính tương tác là cần thiết để con người điều khiển các quá trình đồ họa Sự phức tạp trong việc xây dựng một chương trình đồ họa phụ thuộc rất nhiều vào môi trường hệ điều hành và ngôn ngữ cấp cao được sử dụng Cụ thể hơn, ở mức người lập trình, nó phụ thuộc vào các thư viện đồ họa có sẵn trong chúng

Phần chủ yếu của việc cố gắng tiêu chuẩn hóa ở mức độ người lập trình ứng dụng được tìm thấy trong phạm vi của thư viện đồ họa máy tính Nhiều tiêu chuẩn đồ họa được phát triển trong nhiều năm, bao gồm CORE (1977, được chỉnh lại vào năm 1979) và GKS (Graphical Kernel System - Hệ thống kênh đồ họa, được chấp nhận 1984-1985), được phát triển riêng cho các thiết bị nhập xuất hai chiều chuẩn Một vài trong số đó trở thành các tiêu chuẩn chính thức, được thông qua bởi Viện tiêu chuẩn quốc gia Mỹ (ANSI),

Tổ chức tiêu chuẩn quốc tế (ISO) và các tổ chức khác Những cố gắng đầu tiên này kéo theo sự tìm kiếm các tiêu chuẩn mới cho các ứng dụng ba chiều

Trang 20

ở mức độ cao của sự giao tiếp GKS-3D bổ sung thêm các khả năng ba chiều cho các tiêu chuẩn GKS sẵn có PHIGS (Programmer's Hierarchical Graphics System - Hệ thống đồ họa phân cấp của người lập trình, 1984) và PHIGS+ bao gồm các chức năng đồ họa ba chiều mạnh hơn và có khả năng tạo, thao tác các dữ liệu đồ họa phức tạp PHIGS+ tạo ra việc sử dụng toàn diện các khái niệm raster, bao gồm các khả năng tô bóng Nó còn bao gồm các hỗ trợ

về đường cong và mặt cong tham số

Chương trình biên tập đồ họa phải là chương trình mô hình tương tác,

được viết để thỏa m_n các nhu cầu biên tập bản đồ số, trong đó các chức năng đồ họa được truy xuất bởi người sử dụng mà không cần phải lập trình Trong trường hợp này, quá trình truy xuất các thư viện đồ họa được che dấu Người sử dụng chỉ tương tác với phần mềm thông qua giao diện cụ thể,

không thông qua m_ nguồn [15]

Môi trường DOS được sử dụng phổ biến trong thập kỷ 80 và đầu thập

kỷ 90 của thế kỷ trước, sau đó nó được thay thế bằng môi trường WINDOW

So với môi trường DOS, môi trường WINDOW có sự hỗ trợ hơn rất nhiều cho việc xây dựng một chương trình đồ họa Chúng ta sẽ xem xét cụ thể một

số khả năng hỗ trợ của môi trường này

Bản thân hệ điều hành WINDOW có giao diện đồ họa tương tác hơn hẳn so với môi trường DOS Nếu xây dựng một chương trình trong môi trường DOS người lập trình phải tốn rất nhiều công sức trong việc xây dựng

hệ thống giao diện của chương trình, thì trong môi trường WINDOW với các ngôn ngữ lập trình trực quan như Visual Basic, Delphi việc xây dựng hệ thống giao diện trở nên rất dễ dàng

Nếu trong môi trường DOS việc sử dụng bộ nhớ RAM ngoài phạm vi

640 Kb đòi hỏi rất nhiều công sức lập trình và sự hiểu biết sâu sắc về phần

Trang 21

cứng, trong môi trường WINDOW việc tận dụng bộ nhớ RAM trở nên đơn giản hơn rất nhiều

Một trong các công việc đòi hỏi nhiều công sức và kinh nghiệm lập trình là lập trình đối với các thiết bị xuất như màn hình, máy in do tính đa dạng của chúng và phụ thuộc vào nhà sản xuất ra chúng Môi trường WINDOW có một sự hỗ trợ hoàn hảo bằng các trình đạo diễn thiết bị, bảo

đảm sự tương thích với rất nhiều loại thiết bị ngoại vi khác nhau

Trong môi trường WINDOW, việc sử dụng các phông chữ phong phú hơn nhiều Việc xây dựng các hàm kết xuất văn bản với các kiểu phông đẹp, các kiểu căn chỉnh theo ý muốn trở nên dễ dàng hơn nhiều

Thông thường việc sử dụng thư viện đồ họa được thực hiện thông qua các hàm có sẵn trong các ngôn ngữ cấp cao hoặc thông qua việc gọi các hàm API (Application Programmer's Interface) của môi trường hệ điều hành

Các hàm API đồ họa của môi trường WINDOW đ_ đáp ứng rất nhiều các yêu cầu của các chuẩn đồ họa như GKS hoặc PHIGS

Chính vì những lý do đó, việc xây dựng một phần mềm đồ họa là có tính khả thi nếu chúng ta tận dụng được sức mạnh của thư viện các hàm nói chung và các hàm liên quan đến đồ họa nói riêng

Trong số các ngôn ngữ lập trình trực quan có hiệu quả nhất trong môi trường WINDOW phải kể đến ngôn ngữ Visual Basic Mặc dù có một số nhược điểm như không hỗ trợ số cấu trúc con trỏ, thiếu một số đặc điểm của ngôn ngữ lập trình hướng đối tượng, không tạo được các thư viện liên kết

động thực sự (DLL), tốc độ thực hiện chương trình chậm, nhưng nó là ngôn ngữ dễ lập trình do tính đóng gói cao, được hỗ trợ rất nhiều tính năng của môi trường hệ điều hành, có thể sử dụng các đối tượng có sẵn của hệ thống cũng như rất nhiều nguồn tài nguyên khác Đặc biệt là nó cho phép sử dụng các hàm thư viện API của WINDOW trong các chương trình ứng dụng, làm

Trang 22

tốc độ thực hiện chương trình gần như không thua kém gì các chương trình tạo bằng các trình biên dịch khác Nó còn cho phép sử dụng các thư viện liên kết động DLL Trong trường hợp cần thiết, những hàm đòi hỏi tốc độ thực hiện cao có thể được xây dựng bằng các ngôn ngữ cấp cao khác và lưu chúng dưới dạng thư viện DLL

Chính vì vậy, hiện nay ngôn ngữ này được cả những người lập trình không chuyên nghiệp lẫn những lập trình viên chuyên nghiệp sử dụng Đây là

lý do để chúng ta có thể an tâm chọn ngôn ngữ Visual Basic khi lập trình phần mềm đồ họa phục vụ cho công tác thành lập bản đồ số Khi cần thiết có thể sử dụng Visual C++ hay C Builder để tạo các thư viện DLL

Trang 23

Chương 2 TẠO TOPOLOGY

Tạo topology là bài toán đ_ được quan tâm và giải quyết từ lâu, nó có rất nhiều ứng dụng khác nhau Tuy vậy, phần lớn bài toán này được giải quyết trong các phần mềm nước ngoài, rất ít phần mềm trong nước giải quyết

được bài toán này một cách hiệu quả, hoặc là tính ổn định không cao do tính phức tạp của các trường hợp biên, hoặc là tốc độ thực hiện còn chưa đạt được yêu cầu, đặc biệt với số vùng lớn Các biện pháp trình bày sau đây sẽ khắc phục những nhược điểm trên

Bài toán tạo Topology có thể được thực hiện theo các bước như sau

- Phát hiện và chỉnh sửa các lỗi

- Khoanh vùng

- Tìm và xác lập mối quan hệ hàng xóm hay liền kề

Người ta có thể tổ chức chương trình đồng thời thực hiện cả ba chức năng trên hoặc xử lý tách rời từng công đoạn một Sau khi phát hiện lỗi, việc chỉnh sửa chúng có thể được thực hiện thủ công hoặc tự động, tuy nhiên có một số lỗi hiển nhiên có thể để chương trình tự động xử lý mà không cần sự can thiệp của người sử dụng

Mục đích của bài toán khoanh vùng là đi tìm các đoạn giới hạn biên của vùng, thường là các đoạn liên tiếp trên biên Để thực hiện được bài toán này, nếu bắt đầu từ một đỉnh trên biên của 1 vùng, ta lần lượt xét các đoạn để tìm đoạn có đầu mút trùng với đầu mút thứ hai của đoạn xuất phát, và quá trình cứ tiếp tục cho đến khi quay được trở về điểm đầu mút ban đầu Tiếp tục, ta lần lượt lát kín mặt phẳng không gian bằng các vùng như vậy chung quanh điểm xét theo chiều kim đồng hồ (hoặc ngược lại) Sau đó, quá trình trên được tiếp tục thực hiện cho các điểm tiếp theo và chỉ dừng khi quét hết các đỉnh

Như vậy, đầu vào của bài toán này sẽ là các đoạn Khái niệm đoạn là một dạng đối tượng dạng tuyến có hai đầu mút phân biệt, có thể là một đoạn

Trang 24

thẳng, một cung tròn, một đường đa giác, một đoạn đường cong Bezier hay Spline Quy trình và thuật toán dưới đây được áp dụng cho trường hợp đầu vào là các đoạn thẳng hoặc các đường đa giác, tuy nhiên đối với các trường hợp tổng quát hơn, cách giải quyết là hoàn toàn tương tự

Các thuật toán sắp xếp và tìm kiếm có một vai trò rất quan trọng đối với rất nhiều các bài toán lập trình [9] Chúng tôi đ_ sử dụng các thuật toán này trong cả ba chủ đề: quản lý đối tượng đồ họa, tạo topology và thành lập mô hình số độ cao

2.1 Sắp xếp và tỡm kiếm

Trong các thuật toán sắp xếp chúng ta cần quan tâm đặc biệt đến những thuật toán có độ phức tạp O(nlogn) như QuickSort (sắp xếp nhanh), HeapSort (sắp xếp vun đống), MergeSort (sắp xếp trộn), Trong số các thuật toán đ_ biết, QuickSort là thuật toán có tốc độ trung bình nhanh hơn cả, do

đó nếu chúng ta sử dụng QuickSort trong các bài toán đòi hỏi sắp sếp một số lượng lớn các đối tượng sẽ làm tăng đáng kể hiệu suất của chương trình So với một số thuật toán sắp xếp khác như sắp xếp vun đống, sắp xếp trộn, độ

ổn định của thuật toán QuickSort không cao Vì vậy từ các nghiên cứu lý thuyết của QuickSort, khi sử dụng phải chủ động tránh các tình huống xấu hoặc trong trường hợp cần thiết biến đổi dữ liệu cho thích hợp với thuật toán

QuickSort là thuật toán được A.R Hoare phát minh vào năm 1960 Các ưu điểm của thuật toán Quick Sort là chỉ sử dụng một ngăn xếp phụ nhỏ, chỉ cần khoảng trung bình O(nlogn) thao tác để sắp n phần tử, và có một vòng lặp "trong" rất ngắn

QuickSort thuộc loại "chia để trị" (divide and conquer) Nó thực hiện bằng cách phân hoạch một tập tin thành hai phần, sau đó sắp xếp các phần riêng biệt Giả sử mảng cần sắp xếp là a(n), khi đó thuật toán QuickSort được thực hiện theo trình tự sau:

Trang 25

Hàm QuickSort (l, r)

i = Phanhoach (l, r) QuickSort (l, i-1); QuickSort (i+1, r)

Kết thúc hàm

Tham số l và r không giới hạn các tập tin con trong tập tin gốc cần sắp xếp; nếu gọi QuickSort(1,N) sẽ sắp toàn bộ tập tin

Thủ tục "Phanhoach" sẽ tổ chức lại mảng thỏa m_n ba điều kiện sau:

- phần tử a(i) đặt ở vị trí cuối cùng của nó trong mảng với i nào đó

- tất cả các phần tử trong a(l), , a(i-1) nhỏ hơn hay bằng a(i)

- tất cả các phần tử trong a(i+1), , a(r) lớn hơn hay bằng a(i)

Đầu tiên chọn tùy ý a(r) là phần tử sẽ rơi vào vị trí đặt cuối cùng của

nó Kế tiếp, quét từ trái của mảng cho đến khi gặp một phần tử lớn hơn a(r),

và quét từ đầu phải cho đến khi gặp một phần tử nhỏ hơn a(r) Hai phần tử dừng việc quét dĩ nhiên không đúng vị trí trong mảng được phân hoạch cuối cùng nên phải hoán vị chúng (thực ra tốt nhất nên ngừng việc quét đối với những phần tử bằng a(r), dù là có thể đi vào một số hoán vị không cần thiết) Tiếp theo bảo đảm là tất cả các phần tử trên mảng ở bên trái con trỏ phải lớn hơn a(r) Khi các con trỏ giao nhau, quá trình phân hoạch gần như hoàn tất, còn lại là hoán vị a(r) với phần tử trái nhất của tệp tin con bên phải (phần tử

Có thể giả sử mảng được sắp xếp tăng, trường hợp sắp xếp giảm thì tương tự

Trang 26

Để tìm khóa v có trong mảng hay không, trước tiên ta so sánh nó với phần tử

ở vị trí giữa của mảng, nếu v nhỏ hơn thì nó chỉ có thể ở trong một nửa đầu tiên của mảng; nếu v lớn hơn thì nó chỉ có thể ở trong một nửa còn lại của mảng Kế đến áp dụng đệ quy phương pháp này Bởi vì chỉ gọi đệ quy một lần, chúng ta có thể dùng phương pháp lặp

Giả sử mảng a đ_ được sắp xếp tăng theo thứ tự khóa, chúng ta có thể cài đặt hàm tìm kiếm nhị phân BinarySearch như sau:

Hàm BinarySearch(v)

L = 1: R = N : X = (L + R) / 2 Làm tới khi (v = X)

nếu v > X thì L = X nếu v < X thì R = X Lặp

Kết thúc hàm

2.2 Cỏc bài toỏn hỡnh học

Trong bài toán này, đoạn thẳng được xem như một vectơ có chiều từ

đầu mút thứ nhất đến đầu mút thứ hai Khi giải quyết bài toán này, chúng ta cần chú ý đến các trường hợp ba điểm thẳng hàng Theo cách giải quyết trong [10], hàm ccw có ba giá trị 1, -1 và 0, trong đó 1: bên điểm xét ở bên trái, -1 :điểm xét ở bên phải Khi ba điểm thẳng hàng, 1: đầu mút thứ hai nằm giữa, -1: đầu mút thứ nhất nằm giữa, 0: điểm xét nằm trong đoạn thẳng Hàm này được xây dựng trên cơ sở xét dấu của tích có hướng hai vectơ, vectơ thứ nhất là bản thân đoạn thẳng, vectơ thứ hai nối từ điểm thứ hai đến điểm xét

Gọi hai đầu mút của đoạn thẳng là P1(X1,Y1), P2(X2,Y2); điểm xét là P(X,Y), ta có:

Hàm ccw(P1, P2, P)

Nếu (X2- X1) (Y2- Y) - (Y2- Y1) (X2- X) > 0 thì

Trang 27

Trong mối quan hệ giữa hai đoạn thẳng, trường hợp thường gặp nhất là bài toán xác định giao điểm Tuy nhiên đôi khi chúng ta chỉ muốn biết chúng

có thực sự giao nhau hay không mà không cần xác định điểm giao Trong trường hợp này, chúng ta chỉ cần kiểm tra điều kiện: hai đầu mút của đoạn thẳng này phải nằm ở hai phía so với đoạn thẳng kia và ngược lại, khi đó hàm ccw của hai đầu mút này sẽ có dấu ngược nhau [10]

Gọi P1, P2 là hai đầu mút của đoạn thẳng thứ nhất; P3, P4 là hai đầu mút của đoạn thẳng thứ hai, điều kiện để hai đoạn thẳng này giao nhau sẽ là:

Hàm InterSect(P1, P2, P3, P4)

Nếu ccw(P1, P2, P3).ccw(P1, P2, P4) ≤ 0 và

ccw(P3, P4, P1).ccw(P3, P4, P2) ≤ 0 thì InterSect có giao

Kết thúc hàm

Trang 28

2.2.3 Điểm nằm trong đa giỏc

Bài toán này nhằm xác định xem một điểm có nằm trong miền một đa giác khép kín hay không Bài toán Điểm nằm trong đa giác có rất nhiều ứng dụng trong thực tiễn Đây là bài toán cần được giải quyết cho hầu hết các phần mềm đồ họa Bài toán này sẽ được mở rộng để giải quyết các bài toán phức tạp hơn như đoạn nằm trong một đa giác, miền nằm trong một đa giác

Có thể liệt kê một số ứng dụng của các bài toán này:

- Phục vụ cho thao tác chọn đối tượng theo vùng

- Lọc các điểm ngoài biên trong xây dựng mô hình số độ cao

- Phục vụ cho việc xử lý, phân tích các miền

Như vậy, đầu vào của bài toán này sẽ là một điểm và một đường đa giác khép kín cho trước, còn đầu ra của nó là câu trả lời "có" nếu điểm nằm trong, hoặc "không" nếu điểm nằm ngoài vùng có biên là đa giác nói trên

Giải pháp để giải quyết bài toán như sau [10]

- Xác định số lượng các giao điểm của một nửa đường thẳng bất kỳ xuất phát từ điểm xét với đa giác nêu trên

- Nếu số này là lẻ thì điểm xét sẽ nằm trong đa giác

- Còn nếu là chẵn thì điểm xét nằm ngoài

Thông thường, nên lấy nửa đường thẳng này song song với một trục tọa độ

Tuy nhiên cần phải xét các trường hợp biên:

- nửa đường thẳng đi qua một trong số các đỉnh của đa giác

- một trong số các đoạn của đa giác trùng với một phần của nửa đường thẳng này

Ta có thể thay thế nửa đường thẳng này bằng một đoạn thẳng song song với trục hoành, được gọi là đoạn thẳng kiểm tra với đầu mút thứ nhất là

điểm xét, còn đầu mút thứ hai phải nằm ngoài đa giác bằng cách lấy điểm thứ hai có tọa độ X lớn hơn tọa độ X lớn nhất trong số các đỉnh của đa giác Việc

Trang 29

loại bỏ các trường hợp biên được thực hiện bằng cách bỏ qua khi đỉnh đa giác rơi trên đoạn thẳng kiểm tra, tức là không tăng biến đếm giao khi gặp các trường hợp này

Trong trường hợp đa giác lồi, tình hình sẽ đơn giản hơn nếu ta sử dụng tính chất không bao giờ có hơn 2 giao điểm với đoạn thẳng kiểm tra

Thuật toán hàm Điểm nằm trong đa giác

Nếu k chẵn thì điểm nằm ngoài

còn nếu k lẻ thì điểm nằm trong

Kết thúc hàm

Trong trường hợp khi đa giác là một hình chữ nhật bài toán trên sẽ trở nên đơn giản hơn nữa Lúc đó điều kiện để điểm nằm trong hình chữ nhật là:Xmin <X<Xmax, Ymin <Y<Ymax ; với Xmin, Ymin, Xmax, Ymax là các giá trị tọa độ cực trị của các đỉnh hình chữ nhật

2.3 Phỏt hiện và chỉnh sửa lỗi

Theo quy trình khoanh vùng như trên, ta thấy ngay rằng, cần phải loại

bỏ một số trường hợp gây trở ngại cho quá trình khoanh vùng

Các thao tác chuẩn bị cho việc khoanh vùng có thể được tiến hành song song với việc phát hiện và chỉnh sửa lỗi

Nếu cấu trúc dữ liệu các đoạn được tổ chức dưới dạng danh sách các chỉ số trỏ đến một tập hợp điểm (cách tổ chức dữ liệu theo kiểu này sẽ làm giảm bộ nhớ cần thiết để chứa các đoạn) thì thao tác này sẽ được phân làm hai bước:

Trang 30

 Nhập điểm, sắp xếp và lọc điểm trùng

Sau khi nhập điểm là tọa độ các đầu mút của các đoạn, việc sắp xếp

được thực hiện theo thứ tự: đầu tiên theo X, sau đó theo Y đối với các điểm

có X giống nhau Việc sắp xếp theo X chúng tôi đ_ sử dụng phương pháp QuickSort, còn khi sắp xếp theo Y, vì số điểm trong mỗi đoạn cần sắp nhỏ hơn nhiều, nên có thể sắp xếp theo các phương pháp khác hiệu quả hơn Việc phát hiện và lọc điểm trùng được tiến hành song song với quá trình sắp xếp theo Y, các điểm trùng sẽ bị loại bỏ và các điểm còn lại sẽ được dồn lên trên

Độ phức tạp của bước này phụ thuộc vào việc sắp xếp, vì ta dùng QuickSort nên về mặt trung bình độ phức tạp sẽ là O(nlogn)

Kết quả ta thu được một danh sách điểm đ_ được sắp xếp với số lượng

điểm Nđ

 Nhập cạnh, sắp xếp, lọc cạnh trùng rồi sắp xếp theo góc nghiêng ν

Sau khi thực hiện việc sắp xếp và lọc điểm trùng, các đầu mút của các

đoạn có chỉ số khác nhau sẽ phải trỏ tới các điểm khác nhau Đầu tiên, khi nhập từng cạnh ta cần thực hiện động tác thay đổi các chỉ số của đầu mút tới các điểm trùng đ_ bị xóa ở bước trên Sau đó sử dụng hàm tìm kiếm nhị phân với khóa là tọa độ đối với danh sách điểm đ_ lọc và sắp ở bước trên để xác

định chỉ số điểm của các đầu mút cạnh nhập Tiếp theo, đến bước lọc cạnh trùng, chúng tôi chỉ cần thao tác trên các chỉ số của đầu mút mà không cần

để ý đến tọa độ Trước hết, đảo chỉ số của các đầu mút cho các cạnh sao cho

đầu mút thứ nhất có chỉ số nhỏ hơn chỉ số của đầu mút thứ 2 hoặc ngược lại

và tiến hành việc sắp xếp cạnh với khóa là các chỉ số của đầu mút thứ nhất, sau đó thực hiện việc sắp xếp với khóa là đầu mút thứ 2 đối với những phần

mà đầu mút thứ nhất trùng nhau, rồi thực hiện việc lọc cạnh trùng tương tự như đối với trường hợp sắp xếp và lọc điểm trùng được trình bày ở trên Kết quả chúng tôi thu được một danh sách cạnh đ_ được sắp xếp theo chỉ số của một đầu mút

Trang 31

2.3.2 Cỏc đoạn hở, cỏc đoạn giao nhau

Một trường hợp thường xảy ra trong thực tế đo đạc ngoại nghiệp, khi một điểm được đo hai lần, do sai số đo và tính toán, dẫn đến tọa độ thu được của điểm này các lần đo có giá trị khác nhau

Như vậy, đối với trường hợp (a), (b) cần loại bớt một giá trị tọa độ, muốn vậy ta cần có chỉ tiêu điểm trùng để khắc phục các trường hợp này

Đối với trường hợp (d), (e) trước hết phải xác định vị trí các đầu mút của các đoạn cụt, đồng thời xác định có tồn tại đoạn trong phạm vi lân cận của đầu mút đó (phạm vi này được xác định bằng một miền hình tròn có bán kính cho trước với tâm là tọa độ của đầu mút), nếu có sẽ thực hiện việc kéo dài hoặc xén đoạn cụt so với đoạn nằm trong miền lân cận, đồng thời phân

đoạn đó làm hai

Trang 32

Trường hợp (f) , (g) có thể được phát hiện và khắc phục trong quá trình khoanh vùng dựa theo các giá trị diện tích của vùng, hoặc giá trị góc hợp bởi hai cạnh biên liên tiếp của vùng

2.4 Khoanh vựng

06

05

30 16

17

15

31 35

10 11

15 12

Hình 2-2 Các trường hợp cần loại điểm khi khoanh vùng Thông thường việc tiến hành khoanh vùng sẽ được tiến hành tuần tự từ

điểm này sang điểm khác Các vùng liên quan đến một điểm sẽ được hình thành có thứ tự theo một chiều nhất định, theo chiều quay của kim đồng hồ hoặc ngược lại, và sẽ lát toàn bộ mặt phẳng chung quanh điểm đó Chúng tôi thấy rằng, nếu mỗi đoạn trên mặt phẳng được tính làm hai cạnh có hướng (đi

và về) thì mỗi cạnh này trong quá trình khoanh vùng sẽ được sử dụng đúng một lần; đây chính là điều kiện để nhận biết các vùng đ_ được tạo khi tiến hành khoanh vùng cho các điểm tiếp theo

Tuy nhiên, trong quá trình khoanh vùng như đ_ chỉ ra ở trên sẽ xảy ra một số trường hợp mà ta cần tiến hành loại bỏ các điểm không phù hợp ra khỏi đường biên của vùng được tạo Đối với trường hợp a), khi điểm khởi đầu

để quét nằm trên đỉnh của một đa giác cụt, các điểm cần loại nằm đối xứng ở hai đầu

15 16 17 30 31 35 17 16 15 ===> 17 30 31 35 17

Trang 33

Còn đối với trường hợp b), khi điểm xuất phát nằm trên đường biên của vùng trong quá trình khoanh vùng mới gặp phải các đường đa giác cụt, thì các điểm cần loại lại nằm ở giữa

Trên thực tế, danh sách số hiệu đường biên thu được có thể có cả hai trường hợp a) và b), hơn nữa trường hợp b) có thể xuất hiện nhiều lần Do đó, cần phát hiện cả hai trường hợp này để loại bỏ Kết quả của việc loại bỏ có thể cho ta một vùng rỗng, như trường hợp a), khi quét tiếp điểm 15

Trong các vùng thu được sẽ có hai loại vùng khác nhau, dấu hiệu để phân biệt hai loại vùng này chính là dấu của diện tích đại số của vùng, chúng

có dấu ngược nhau

Hình 2-3 Vùng có đảo và vùng ngoài biên Loại 1 là các vùng thông thường (giả sử có dấu +), còn loại 2 là vùng ngoài biên hoặc nằm trong một vùng khác (có dấu -)

Vùng ngoài biên duy nhất chỉ có một và là một tập hợp các vùng có dấu (-) Loại vùng có đảo ở bên trong sẽ bao gồm một vùng có dấu (+) và một tập hợp các đảo ở bên trong vùng đó (cũng có dấu -) Như vậy, đối với những vùng có dấu (-), cần phải thực hiện một phép kiểm tra xem nó có nằm trong một vùng nào trong số các vùng có dấu (+) hay không, nếu có nó sẽ là

đảo của vùng đó, còn nếu không nó sẽ thuộc về vùng ngoài biên

Trang 34

có cạnh trùng với nó, sau khi duyệt hết các cạnh ta sẽ có một danh sách các

số hiệu vùng giáp với vùng đ_ nêu

Việc xác lập mối quan hệ hàng xóm cũng được tiến hành ngay trong quá trình khoanh vùng trên bằng một giải pháp rất đơn giản Khi khoanh

được một vùng, chúng tôi gán cho vùng đó một số hiệu bằng chính số thứ tự của vùng, và gán số hiệu này cho tất cả các đoạn thuộc biên của vùng Để tìm vùng tiếp giáp với một cạnh, chỉ cần xác định cạnh có các đầu mút giống với

nó nhưng đảo chiều, rồi xác định các số hiệu vùng tương ứng

Trang 35

Chương 3 Lí THUYẾT ĐƯỜNG CONG 3.1 Đường cong tham số bậc ba

Đường cong tham số bậc ba được định nghĩa như sau:

1 t 0 )

(

3 0

trong đó, P(t) là một điểm trên đường cong, như trên Hình 3-1

y

x P(t)

Hình 3-1 Một điểm trên đường cong tham số bậc ba

Phương trình (3.1) khai triển có dạng sau:

P(t) = a3t3 + a2t2 + a1t + a0 (3.2) Phương trình này được tách thành hai phương trình thành phần:

x(t) = a3xt3 + a2xt2 + a1xt + a0xy(t) = a3yt3 + a2yt2 + a1yt + a0y (3.3)

Để có thể giải phương trình (3.3) cần phải xác định tám hệ số chưa biết

aij, còn gọi là các hệ số đại số

Điều khiển hình dạng của đường cong bằng cách thay đổi giá trị hệ số

đại số aij là công việc khó khăn Một phương pháp trực quan hơn là thiết lập các điều kiện biên thích hợp thoả m_n các ràng buộc hình học Các điều kiện biên phải cho phép tạo ra tám phương trình cần thiết để tính giá trị của tám

hệ số Vì vấn đề đang giải quyết là một trong các phép nội suy nên có thể giả

sử là các toạ độ điểm đ_ được biết Một cách giải quyết vấn đề là nội suy từng khúc, khi đó hai điểm được nội suy cùng một lúc bằng một đường cong tham số bậc ba, như chỉ ra trên Hình 3-2

Trang 36

P0 P1

P2

P3

P4

Hình 3-2 Phép nội suy tham số bậc ba từng khúc

Từ các toạ độ điểm đầu mút đ_ biết của mỗi phân đoạn có thể thu được bốn trong tám phương trình cần thiết Bốn phương trình còn lại được thiết lập bằng các véc tơ tiếp tuyến tại hai điểm đầu mút của mỗi phân đoạn, như chỉ

ra trên Hình 3-3 Hướng các véc tơ tiếp tuyến xác định độ nghiêng (cosin chỉ phương) của đường cong tại điểm đầu mút và thay đổi độ lớn của véc tơ cho phép thay đổi hình dạng của đường cong

Hình 3-3 Các véc tơ tiếp tuyến tại các điểm đầu mút của phân đoạn

Ví dụ, nếu như độ nghiêng của đường cong tại các điểm mút không

đổi thì việc tăng độ lớn của các véc tơ tiếp tuyến là nguyên nhân thay đổi dạng đường cong như chỉ ra trên Hình 3-4

tiếp tuyến tại P0

tiếp tuyến tại P1

Trang 37

Hình 3-4 Thay đổi độ lớn của véc tơ tiếp tuyến dẫn đến sự thay đổi hình

dạng của đường cong tham số bậc ba Quá trình xác định một đường cong bậc ba bằng cách sử dụng các

điểm đầu mút và các véc tơ tiếp tuyến là một dạng của phép nội suy Hermite Mỗi phân đoạn của đường cong bậc ba được tham số hoá từ 0 đến 1, sao cho hai điểm đầu mút đ_ biết tương ứng với các giá trị giới hạn của tham số t, đó

là P(0) và P(1) Thay t=0 và t=1 vào phương trình (3.2) sẽ được sự liên hệ giữa hai véc tơ điểm đầu mút P(0), P(1) và các hệ số đại số như sau:

P(0) = a0P(1) = a3 + a2 + a1 + a0 (3.4)

Để tìm các véc tơ tiếp tuyến, phương trình (3.2) được lấy đạo hàm theo t:

P’(t) = 3a3t2 + 2a2t + a1 (3.5) Các véc tơ tiếp tuyến tại hai điểm đầu mút được xác định bằng cách thay thế t=0 và t=1 vào phương trình này:

P’(0) = a1P’(1) = 3a3 + 2a2 + a1 (3.6) Các hệ số đại số ai trong phương trình (3.2) có thể biểu diễn rõ ràng theo các điều kiện biên - các điểm đầu mút và các véc tơ tiếp tuyến - như sau:

a0 = P(0)

a1 = P’(0)

a2 = - 3P(0) + 3P(1) - 2P’(0) - P’(1)

a3 = 2P(0) - 2P(1) + P’(0) + P’(1) (3.7) Thay các giá trị ai vào phương trình (3.2) và sắp xếp lại ta có:

P(t) = (2t3 - 3t2 + 1)P(0) + (-2t3 + 3t2)P(1) + (t3 - 2t2 + t)P’(0) + (t3 - t2)P’(1) (3.8) Các giá trị P(0), P(1), P’(0), P’(1) được gọi là các hệ số hình học và chúng biểu diễn các lượng véc tơ đ_ biết trong phương trình (3.8) Các hệ số

Trang 38

đa thức của các lượng véc tơ này được gọi là hàm liên kết trơn Bằng cách thay đổi tham số t trên hàm liên kết trơn này từ 0 đến 1 ta có thể xác định vài

điểm trên phân đoạn đường cong Chú ý rằng phương trình (3.8) đúng cho mỗi phân đoạn tham số bậc ba của tập hợp các phân đoạn trên Hình 3-2

Các phương trình (3.2) và (3.8) có thể viết lại ở dạng ma trận như sau:

3

1 )

(

a a a a t t t t

(0) P' P(1) P(0)

0 0 0 1

0 1 0 0

1 2 3 3

1 1 2 2 1 )

hoặc ở dạng rút gọn:

P(t) = [t][A] dạng đại số P(t) = [t][M][G] dạng hình học (3.11) Phương trình thứ hai thường được sử dụng trong mô hình hoá hình học Các ma trận [t] và [M] không thay đổi đối với mọi đường cong bậc ba Chỉ có

ma trận [G], xác định các điểm đầu mút và véc tơ tiếp tuyến, có thể thay đổi

để tạo ra đường cong tham số bậc ba mới Ma trận [M]4 x 4 được gọi là “ma trận Hermite

Trang 39

[G] = [M]-1[A] (3.13) trong đó

0 1 0 0

1 1 1 1

1 0 0 0

1

3.2 Đường cong spline bậc ba

Đường cong spline bậc ba là dạng đường cong nội suy và được biểu diễn bởi một đa thức bậc ba có đạo hàm bậc hai liên tục tại các điểm nối chung giữa các phân đoạn

Nếu các phân đoạn của đường cong spline bậc ba được tham số hoá một cách riêng rẽ, sao cho tham số t biến thiên từ 0 đến 1 đối với tất cả các phân đoạn, thì đường cong spline bậc ba chuẩn này là trường hợp đặc biệt của phép nội suy Hermite Phép nội suy này bảo đảm tính liên tục của đạo hàm bậc nhất giữa các phân đoạn Trong đường cong spline bậc ba này, các giá trị đạo hàm bậc nhất được chọn sao cho nó cũng trùng với đạo hàm bậc hai

Hai điều kiện ràng buộc thường được sử dụng cho đường spline bậc ba là:

- Các véc tơ tiếp tuyến P’0 và P’m-1 tại các điểm đầu mút

Tất cả vectơ tiếp tuyến tại đầu mút các phân đoạn sẽ được xác định trên cơ sở giải hệ phương trình:

3 1

0 2 0

1 - m

1 0

'

) (

3

) 3(P P'

P' P' P'

1 0 0

.

1 4 1 0

.

0 1 4 1 0

0 1 4 1

0 0 1

m

m m

P

P P P

(3.15)

Trang 40

- Đạo hàm bậc hai tại hai điểm đầu mút P0 và Pm-1 đều bằng 0: đây gọi

là đường cong spline bậc ba tự nhiên Hệ phương trình khi đó sẽ có dạng:

) (

3

) 3(P

) 3(P

) P - 3(P

P' P' P'

2 1 0

.

1 4 1 0

.

0 1 4 1 0

0 1 4 1

0 1 2

2 1 - m

3 1

1 3

0 2

0 1

1 - m

1 0

m

m m

P

P P

N t

P

0 , ( ) )

trong đó, Vi là tập hợp các điểm điều khiển và Ni,k biểu diễn các hàm liên kết trơn bậc (k-1) Một đường cong spline được gọi là cấp k, hoặc có bậc (k-1) khi nó được định nghĩa như một đa thức bậc (k-1) từng khúc có tính liên tục Ck-2 Nói cách khác:

a Bậc của đa thức không vượt quá k-1 trong mỗi đoạn [ti, ti+1]

b Vị trí và các đạo hàm bậc từ 1 đến (k-2) liên tục

Đối với trường hợp B-spline bậc ba:

- k = 4

- Bậc = (k-1) =3

- Tính liên tục bậc hai được thoả m_n

Hàm liên kết trơn thứ i là Ni,k(t) được định nghĩa bằng phương trình đệ quy như sau:

1 , t

N i với ti ≤ t ≤ ti+1

ngược lại

Ngày đăng: 29/05/2021, 23:12

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Quốc C−ờng, Hoàng Đức Hải (1995), Đồ họa vi tính, Nhà xuất bản giáo dục, thành phố Hồ Chí Minh Sách, tạp chí
Tiêu đề: Đồ họa vi tính
Tác giả: Nguyễn Quốc C−ờng, Hoàng Đức Hải
Nhà XB: Nhà xuất bản giáo dục
Năm: 1995
2. Trần Thùy D−ơng (2005), "Phân tích biện pháp ánh xạ trong môi tr−ờng đồ họa", Tạp chí KHKT Mỏ-Địa chất, tập (11), trang 47-49 Sách, tạp chí
Tiêu đề: Phân tích biện pháp ánh xạ trong môi tr−ờng đồ họa
Tác giả: Trần Thùy D−ơng
Năm: 2005
3. Trần Thùy Dương (2006), "Xác định tham số đường cong B-spline không tuần hoàn bậc ba", Tuyển tập công trình khoa học, Chuyên đề kỷ niệm 40 năm thành lập khoa trắc địa, trang 18-21 Sách, tạp chí
Tiêu đề: Xác định tham số đường cong B-spline không tuần hoàn bậc ba
Tác giả: Trần Thùy Dương
Năm: 2006
4. Trần Thùy D−ơng (2006), "Một giải pháp xử lý tr−ờng hợp biên trong bài toán tạo Topology", Tạp chí KHKT Mỏ-Địa chất, tập (14), trang 88-91 Sách, tạp chí
Tiêu đề: Một giải pháp xử lý tr−ờng hợp biên trong bài toán tạo Topology
Tác giả: Trần Thùy D−ơng
Năm: 2006
5. Đặng Văn Đức (2001), Hệ thống thông tin địa lý, Nhà xuất bản Khoa học kỹ thuật, Hà Nội Sách, tạp chí
Tiêu đề: Hệ thống thông tin địa lý
Tác giả: Đặng Văn Đức
Nhà XB: Nhà xuất bản Khoa học kỹ thuật
Năm: 2001
6. Hà Minh Hòa, Trần Thùy D−ơng (2000), "Các quan điểm và xu h−ớng xây dựng hệ thống thông tin trắc địa", Đặc san khoa học và công nghệ địa chÝnh, (1), trang 5-8 Sách, tạp chí
Tiêu đề: Các quan điểm và xu h−ớng xây dựng hệ thống thông tin trắc địa
Tác giả: Hà Minh Hòa, Trần Thùy D−ơng
Năm: 2000
7. Trần Khánh, Trần Thùy D−ơng, Nguyễn Thế Công (2005), "Tối −u hóa sử dụng không gian bộ nhớ máy tính trong lập trình bình sai lưới trắc địa", Tạp chí KHKT Mỏ-Địa chất, tập (9), trang 56-59 Sách, tạp chí
Tiêu đề: Tối −u hóa sử dụng không gian bộ nhớ máy tính trong lập trình bình sai lưới trắc địa
Tác giả: Trần Khánh, Trần Thùy D−ơng, Nguyễn Thế Công
Năm: 2005
8. Trần Văn Minh (2000), Ph−ơng pháp số thuật toán và ch−ơng trình bằng Torbo Pascal, Nhà xuất bản giao thông vận tải, Hà Nội Sách, tạp chí
Tiêu đề: Ph−ơng pháp số thuật toán và ch−ơng trình bằng Torbo Pascal
Tác giả: Trần Văn Minh
Nhà XB: Nhà xuất bản giao thông vận tải
Năm: 2000
9. Robert Sedgewick (1994), Cẩm nang thuật toán, Tập 1: Các thuật toán thông dụng, Nhà xuất bản Khoa học kỹ thuật, Hà Nội Sách, tạp chí
Tiêu đề: Cẩm nang thuật toán
Tác giả: Robert Sedgewick
Nhà XB: Nhà xuất bản Khoa học kỹ thuật
Năm: 1994
10. Robert Sedgewick (1996), Cẩm nang thuật toán, Tập 2: Các thuật toán chuyên dụng, Nhà xuất bản Khoa học kỹ thuật, Hà Nội Sách, tạp chí
Tiêu đề: Cẩm nang thuật toán
Tác giả: Robert Sedgewick
Nhà XB: Nhà xuất bản Khoa học kỹ thuật
Năm: 1996
11. Võ Văn Thành, Đàm Văn Ch−ơng (1997), H−ớng dẫn lập trình Window API với Visual Basic. Tập 1. Nhà xuất bản Thống kê Sách, tạp chí
Tiêu đề: H−íng dÉn lËp tr×nh Window API với Visual Basic
Tác giả: Võ Văn Thành, Đàm Văn Ch−ơng
Nhà XB: Nhà xuất bản Thống kê
Năm: 1997
12. Võ Văn Thành, Đàm Văn Ch−ơng (1997), H−ớng dẫn lập trình Window API với Visual Basic. Tập 2. Nhà xuất bản Thống kê Sách, tạp chí
Tiêu đề: H−íng dÉn lËp tr×nh Window API với Visual Basic
Tác giả: Võ Văn Thành, Đàm Văn Ch−ơng
Nhà XB: Nhà xuất bản Thống kê
Năm: 1997
13. Võ Văn Thành, Đàm Văn Ch−ơng (1997), H−ớng dẫn lập trình Window API với Visual Basic. Tập 3. Nhà xuất bản Thống kê Sách, tạp chí
Tiêu đề: H−íng dÉn lËp tr×nh Window API với Visual Basic
Tác giả: Võ Văn Thành, Đàm Văn Ch−ơng
Nhà XB: Nhà xuất bản Thống kê
Năm: 1997
14. Vũ Mạnh T−ờng, D−ơng Anh Đức, Trần Đan Th−, Lý Quốc Ngọc (1995), Giáo trình nhập môn đồ họa và xử lý ảnh, Đại học Mở - Bán công, thành phố Hồ Chí Minh Sách, tạp chí
Tiêu đề: Giáo trình nhập môn đồ họa và xử lý ảnh
Tác giả: Vũ Mạnh T−ờng, D−ơng Anh Đức, Trần Đan Th−, Lý Quốc Ngọc
Năm: 1995
15. Vera B. Anand (2000), Đồ họa máy tính và mô hình hóa hình học, Nhà xuất bản thành phố Hồ Chí Minh Sách, tạp chí
Tiêu đề: Đồ họa máy tính và mô hình hóa hình học
Tác giả: Vera B. Anand
Nhà XB: Nhà xuất bản thành phố Hồ Chí Minh
Năm: 2000
16. Donald Hearn, M. Pauline Baker, (1997), Computer Graphics, C Version, Prentice Hall International, Inst, New Jersey Sách, tạp chí
Tiêu đề: Computer Graphics, C Version
Tác giả: Donald Hearn, M. Pauline Baker
Năm: 1997
17. Joseph O'Rourke, (1998), Computational Geometry in C, Second Edition, Cambridge University Press, New York Sách, tạp chí
Tiêu đề: Joseph O'Rourke, (1998), "Computational Geometry in C, Second Edition
Tác giả: Joseph O'Rourke
Năm: 1998
18. Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Schwarzkopt, (2000), Computational Geometry, Algorithms and Applications, Springer- Verlag, Berlin Sách, tạp chí
Tiêu đề: Computational Geometry, Algorithms and Applications
Tác giả: Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Schwarzkopt
Năm: 2000
19. Michael F. Worboys (1995), GIS : A Computing Perspective, Taylor &amp; Francis, London Sách, tạp chí
Tiêu đề: GIS : A Computing Perspective
Tác giả: Michael F. Worboys
Năm: 1995
20. Peter F. Dale and John D. McLaughlin (1988), Land Information Management, Clarendon Press, Oxford Sách, tạp chí
Tiêu đề: Land Information Management
Tác giả: Peter F. Dale and John D. McLaughlin
Năm: 1988

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm