S ột bài báo cáo không thể trình bày hết được, chúng ta có thể tham khảo qua tài liệu c MapInfo và làm cho các h th ng GIS làm b ng MapInfo tr nên thệnh MapBasic ối giống với Visual Basi
Trang 1Luận văn
Nghiên cứu lập trình tính biến dạng xoay trong một tam giác
địa động lực
Trang 2M c L c ục Lục ục Lục
LỜI MỞ ĐẦU 3
Đ T VẤN ĐỀ ẶT VẤN ĐỀ 5
TÍNH THỰC TẾ TRONG VI C LỰA CHỌN ĐỀ TÀI ỆC LỰA CHỌN ĐỀ TÀI 5
CHƯƠNG I : 7
CƠ SỞ LÝ THUYẾT CHO XÂY DỰNG CHƯƠNG TRÌNH 7
1.1 LÝ THUYẾT BIẾN DẠNG 7
1.1.1 BIẾN DẠNG M T CHIỀU ỘT CHIỀU 7
1.1.2 BIẾN DẠNG HAI CHIỀU 8
1.1.2.1 Khái ni m ệm 8
1.1.2.2 Trình tự tính biến dạng 10
1.1.3 BIẾN DẠNG XOAY 10
1.1.3.1 Biến dạng xoay là gì? 10
1.1.3.2 Minh họa thể hi n biến dạng xoay ệm 10
1.1.4 TAM GIÁC ĐỊA Đ NG LỰC ỘT CHIỀU 11
1.1.4.1 Tam giác địa động lực là gì? 11
1.1.4.2 Tính biến dạng xoay trong m t tam giác địa đ ng lực ột tam giác địa động lực ột tam giác địa động lực .12
1.2 MA TR N ẬN 13
1.2.1 KHÁI NI M ỆC LỰA CHỌN ĐỀ TÀI 13
1.2.1.1 Định nghĩa ma trận 13
1.2.2.2 Phép nhân ma tr n với m t số ận với một số ột tam giác địa động lực .14
1.2.2.3 Phép nhân ma tr n ận với một số 14
1.2.2.4 Ma tr n chuyển vị ận với một số 15
1.2.3 ĐỊNH THỨC 16
1.2.3.1 Định nghĩa 16
1.2.3.2 Tính chất của định thức 17
1.2.3.3 Cách tính định thức 17
1.2.4 MA TR N NGHỊCH ĐẢO ẬN 18
1.2.4.1 Định nghĩa ma tr n nghịch đảo ận với một số 18
1.2.4.2 Điều kiện cần và đủ để tồn tại ma trận nghịch đảo 18
1.2.4.3 Ví dụ tính ma tr n nghịch đảo theo công thức (1.24) ận với một số 18
1.2.5 GIẢI H PHƯƠNG TRÌNH TUYẾN TÍNH BẰNG MA TR N NGHỊCH ĐẢO ỆC LỰA CHỌN ĐỀ TÀI ẬN 19
Trang 31.2.5.1 H phương trình tuyến tính ệm 19
1.2.5.2 Giải h phương trình tuyến tính bằng ma tr n nghịch đảo ệm ận với một số 19
1.3 SAI SỐ 20
1.3.1 KHÁI NI M ỆC LỰA CHỌN ĐỀ TÀI 20
CHƯƠNG 2 : XÂY DỰNG CHƯƠNG TRÌNH 22
2.1 NGÔN NGỮ L P TRÌNH ẬN 22
2.1.1 TỔNG QUAN VỀ PHẦN MỀM MAPINFO 22
2.1.1.1 Đồ họa trong Mapinfo 23
2.1.1.2 Dữ li u trong Mapinfo ệm 24
2.1.2 NGÔN NGỮ L P TRÌNH MAPBASIC ẬN 28
2.1.2.1 Tổng quan về Mapbasic 28
2.1.2.2 Nội Dung 29
Nh p New đ m c a s biên t p ch ấp New để mở cửa sổ biên tập chương trình ể mở cửa sổ biên tập chương trình ở cửa sổ biên tập chương trình ửa sổ biên tập chương trình ổ biên tập chương trình ập chương trình ương trình ng trình 29
Vi t các dòng l nh MapBasic ết các dòng lệnh MapBasic ệnh MapBasic 29
Nhìn chung ngôn ng MapBasic t ương trình ng đ i gi ng v i Visual Basic, đ có th trình bày các ối giống với Visual Basic, để có thể trình bày các ối giống với Visual Basic, để có thể trình bày các ới Visual Basic, để có thể trình bày các ể mở cửa sổ biên tập chương trình ể mở cửa sổ biên tập chương trình hàm, các câu l nh trong MapBasic thì trong m t bài báo cáo không th trình bày h t ệnh MapBasic ột bài báo cáo không thể trình bày hết ể mở cửa sổ biên tập chương trình ết các dòng lệnh MapBasic đ ược, chúng ta có thể tham khảo qua tài liệu c, chúng ta có th tham kh o qua tài li u ể mở cửa sổ biên tập chương trình ảo qua tài liệu ệnh MapBasic L p trình MapBasic cho H th ng thông ập trình MapBasic cho Hệ thống thông ệ thống thông ống thông tin đ a lý GIS MapInfo ịa lý GIS MapInfo c a tác gi ủa tác giả ảo qua tài liệu GS TSKH Tr n Văn Đ c ần Văn Đắc ắc Chúng em ch gi i thi u ỉ giới thiệu ới Visual Basic, để có thể trình bày các ệnh MapBasic m t s l nh vẽ c b n đã đ ột bài báo cáo không thể trình bày hết ối giống với Visual Basic, để có thể trình bày các ệnh MapBasic ơng trình ảo qua tài liệu ược, chúng ta có thể tham khảo qua tài liệu ứng dụng trong đợt thực tập S c ng d ng trong đ t th c t p S ụng trong đợt thực tập S ợc, chúng ta có thể tham khảo qua tài liệu ực tập S ập chương trình 32
2.2 XÂY DỰNG CHƯƠNG TRÌNH 33
2.2.1 TỔNG QUAN VỀ XÂY DỰNG CHƯƠNG TRÌNH 33
2.2.2.3 Thu t toán lấy dữ li u chọn tam giác và hiển thị lưới tam giác ận với một số ệm 39
2.2.2.4 Thu t toán nhân ma tr n b c 4 ận với một số ận với một số ận với một số 40
2.2.2.5 Thu t toán chuyển vị ma tr n b c 4 ận với một số ận với một số ận với một số 41
2.2.2.6 Thu t toán tính định thức ma tr n b c 4 ận với một số ận với một số ận với một số 42
2.2.2.7 Thu t toán tính ma tr n nghịch đảo b c 4 ận với một số ận với một số ận với một số 44
L I M Đ U ỜI MỞ ĐẦU Ở ĐẦU ẦU
Ngày nay với sự phát triển của khoa học công nghệ thì công nghệ thông tin được áp dụng vào mọi ngành nghề trong đời sống – xã hội Việc áp dụng công nghệ thông tin vào các mọi ngành nghề giúp tối ưu hóa thời gian cho con người đồng thời mang lại độ chính xác cao trong công việc, giảm bớt sức lao động của con người
Trang 4Song hành với sự phát triển của công nghệ thông tin như vậy, ngành địa chất cũngxác định được tầm quan trọng của công nghệ thông tin để áp dụng vào xây dựng vàgiải các bài toán trong địa chất Ví dụ như việc áp dụng thành lập các bản đồ địachất, quản lý dữ liệu địa chất, tính toán trữ lượng khoáng sản v v Việc áp dụngcông nghệ thông tin vào ngành địa chất mang lại sự nhanh chóng và chính xác,mang tính vượt trội so với các phương pháp cổ điển mà con người trực tiếp phải xửlý Áp dụng công nghệ thông tin trong địa chất cũng dẫn đến các nhà địa chất cónhững phán đoán chính xác hơn trong việc dự đoán, phân tích trong những vấn đềcủa địa chất học Hiện nay, trên thế giới việc áp dụng công nghệ thông tin vàongành địa chất học đã mang lại nhiều thành tựu cho sự vượt bậc của nó Đã có rấtnhiều những chương trình phần mềm được xây dựng phục vụ trong công tác nghiêncứu về địa chất đã được công bố mang lại những hiệu quả rất cao trong công việc,dẫn đến những chương trình này là những phần không thể thiếu và quan trọng trongnghiên cứu v v Ở Việt Nam hiện nay, trong ngành địa chất cũng đã coi trọngviệc áp dụng công nghệ thông tin trong những xử lý tính toán phức tạp mà đòi hỏicon người mất nhiều thời gian và công sức Một điển hình cho xu thế phát triển hiện
đại này là tại phòng Địa Động Lực – Viện Địa Chất, một đơn vị trực thuộc của Viện Khoa Học Và Công Nghệ Việt Nam, trưởng phòng là PGS.TS Phan Trọng Trịnh đã có những hướng mang tính hiện đại hóa bằng việc áp dụng nhiều phần mềm trong việc xử lý những vấn đề mà phòng Địa Động Lực nghiên cứu, ví dụ như các phần mềm xử lý trong bản đồ như Arc Gis, Surfer, MapInfo các phần mềm sử lý số liệu GPS như Bernese, Gamit,Fonda,Gipsy,Globk và các phần mềm xử
lý số liệu dịch chuyển để tính toán biến dạng trong bộ phần mềm QOCA
(Quasi-Observation Combination Analysis)
Trong quá trình thực tập tốt nghiệp, em được bộ môn Tin Học Địa Chất tạo điều kiện cho em được thực tập tại phòng Địa Động Lực, tại đây em đã được tiếp xúc sử dụng bộ phần mềm QOCA dùng để tính biến dạng kiến tạo trong vỏ Trái Đất, đó là một trong những phần nhiệm vụ quan trọng mà tại phòng Địa Động Lực
nghiên cứu Tuy nhiên bộ phần mềm chạy trên nền của HĐH(Hệ Điều Hành) Linux
là HĐH không phổ biến tại Việt Nam và bộ phần mềm QOCA vẫn còn tương đốikhó sử dụng Nhận định được những vấn đề này và những vấn đề đặt ra Việt Nam
cũng cần có những phần mềm xử lý cho riêng mình, PGS.TS Phan Trọng Trịnh
mong muốn xây dựng một chương trình tính biến dạng kiến tạo vỏ Trái Đất mangmột thương hiệu của Việt Nam, dễ sử dụng, phù hợp với người dùng của Việt Nam
Đáp lại sự mong muốn đó và sự dẫn dắt chỉ bảo của PGS.TS Phan Trọng Trịnh,
em xin mạnh dạn xây dựng một chương trình tính biến dạng kiến tạo của vỏ TráiĐất trong đồ án tốt nghiệp của mình với đề tài:
“Nghiên cứu lập trình tính biến dạng xoay trong một tam giác Địa động lực”
Trang 5Chương trình được xây dựng là một tool của phần mềm xử lý bản đồ Mapinfo
11 với ngôn ngữ lập trình là MapBasic 9.5 Chương trình này có chức năng xử lý
một phần trong tính toán biến dạng đó là tính biến dạng xoay cho một tam giác địađộng lực Đồ án gồm 4 chương và được bố cục như sau :
Nhìn chung chương trình đã đáp ứng được mục đích đề ra, tuy nhiên do kiếnthức còn hạn chế cũng như xây dựng chương trình này đòi hỏi nhiều kiến thứcchuyên sâu và hạn hẹp về thời gian nghiên cứu nên chương trình không thể tránhcòn nhiều thiếu sót
Để xây dựng được chương trình này em xin chân thành cám ơn sự giúp đỡ và
những ý kiến quý báu của PGS.TS Phan Trọng Trịnh, là người đã hướng dẫn
xuyên suốt trong quá trình thực tập đến hoàn thành đồ án tốt nghiệp này, cùng đó
em cũng cám ơn tới sự giúp đỡ của các thầy các cô trong bộ môn Tin Học Địa Chất đã giúp đỡ em hoàn thành được đồ án tốt nghiệp.
Em xin chân thành cám ơn!
Đ T V N Đ ẶT VẤN ĐỀ ẤN ĐỀ Ề
TÍNH TH C T TRONG VI C L A CH N Đ TÀI ỰC TẾ TRONG VIỆC LỰA CHỌN ĐỀ TÀI Ế TRONG VIỆC LỰA CHỌN ĐỀ TÀI ỆC LỰA CHỌN ĐỀ TÀI ỰC TẾ TRONG VIỆC LỰA CHỌN ĐỀ TÀI ỌN ĐỀ TÀI Ề
Hiện nay, trên thế giới và Việt Nam cùng với sự phát triển mạnh mẽ và mangtính đột phá của công nghệ thì việc áp dụng công nghệ thông tin vào giải các bài
Trang 6toán trong Địa chất học đang là một nhu cầu tất yếu và chủ đạo Đặc biệt với sự độtphá về công nghệ định vị toàn cầu GPS (Global Positioning System) thì việc áp
dụng các phần mềm theo số liệu GPS để tính toán biến dạng động lực của vỏ TráiĐất là quan trọng và chủ đạo Việc áp dụng các phần mềm tính toán giúp tối ưu thờigian xử lý và mang lại sự chính xác rất cao và nó đang là yếu tố cần thiết cho việcxử lý đánh giá biến dạng địa động lực mà nó đã được áp dụng trên thế giới và ViệtNam
Tại phòng Địa Động Lực – Viện Địa Chất chuyên nghiên cứu về sự biến
đổi trong vỏ Trái Đất thì việc áp dụng phần mềm tính toán các số liệu cho tính biếndạng của vỏ Trái Đất được ưu tiên hàng đầu Để từ đó có thể đánh giá được sự biếnđổi kiến tạo vỏ Trái Đất, đánh giá dự báo động đất,sóng thần tại khu vực Việt Namđể có những phương án đối phó thiên tai cần thiết
MỤC ĐÍCH, YÊU CẦU
MỤC ĐÍCH
Xuất phát từ những nhu cầu của thực tế và thu thập dữ liệu trong quá trình
thực tập tốt nghiệp người thiết kế sử dụng ngôn ngữ lập trình Mapbasic để thành lập chương trình là một tool của phần mềm ứng dụng công nghệ GIS là Mapinfo.
Chương trình này là một công cụ xứ lý các số liệu dịch chuyển của vỏ Trái Đất đểtính toán đưa ra được thông số biến dạng là biến dạng xoay trong một tam giác địađộng lực và sai số của nó
YÊU CẦU
- Chương trình phải trực quan,dễ hiểu và dễ sử dụng
- Gọn nhẹ và đa dạng trong lựa chọn các chức năng
- Chính xác cao và hiệu quả
- Thích hợp với hệ điều hành của Window, với các loại phần cứng phổ biến ở Việt Nam
Trang 7CH ƯƠNG I : NG I :
C S LÝ THUY T CHO XÂY D NG CH ƠNG I : Ở ĐẦU Ế TRONG VIỆC LỰA CHỌN ĐỀ TÀI ỰC TẾ TRONG VIỆC LỰA CHỌN ĐỀ TÀI ƯƠNG I : NG TRÌNH
1.1 LÝ THUY T BI N D NG Ế TRONG VIỆC LỰA CHỌN ĐỀ TÀI Ế TRONG VIỆC LỰA CHỌN ĐỀ TÀI ẠNG
1.1.1 BI N D NG M T CHI U Ế TRONG VIỆC LỰA CHỌN ĐỀ TÀI ẠNG ỘT CHIỀU Ề
Giả sử có thanh vật liệu cứng trong hệ toạ độ một chiều (0 , x)¿Hình 1.1).Trên đó có hai điểm rất gần nhau A(x ) và B(x +dx). Khi tác dụng một lực P theohướng x từ đầu mút của thanh cứng, thanh này sẽ bị kéo dài và các điểm A , B cũngđều dịch chuyển (displace)
Giả sử dịch chuyển này là vô cùng bé, biên độ dịch chuyển sẽ phụ thuộc vàovị trí của điểm dọc theo thanh: càng gần điểm tác dụng lực P,thì dịch chuyển cànglớn Do đó,điểm B sẽ bị dịch chuyển nhiều hơn so với điểm A.Dịch chuyển tại điểm
A được biểu diễn là u(x ) và của điểm B được biểu diễn là u(x +dx ) (Hình1.1)
Do dịch chuyển dx vô cùng bé nên có thể viết:
u(x +dx ) = ∂ u
∂ x dx (1.1) và :
A ’ B ’ = d ( x )+ (u ( x )+ ∂ u
∂ x dx) – u ( x )= d ( x ) + ∂ u ∂ x dx (1.2)
Hình 1.1: Minh họa biến dạng một chiều
Biến dạng (strain) được định nghĩa là tỉ số của sự thay đổi chiều dài của vật
thể so với chiều dài ban đầu của nó Do đó:
Trang 8ε x = ∆ L L = A ’ B ’− AB AB = (d ( x )+ ∂u
∂ x dx)−d ( x )
d ( x )
= ∂ u ∂ x (1.3)
Như vậy biến dạng vô cùng bé là gradient không gian của dịch chuyển Loại
biến dạng mô tả trên được gọi là biến dạng pháp tuyến (normal strain), cũng có thể
được khái quát hoá trong không gian hai hay ba chiều.Tuy nhiên trong không gian
hai hay ba chiều, sẽ xuất hiện dạng biến dạng khác, gọi là biến dạng tiếp tuyến hay biến dạng trượt (shear strain), biểu diễn biến dạng bóp méo theo góc, không phải
biến dạng căng giãn.Trường hợp biến dạng trong không gian hai chiều sẽ được môtả sau đây
1.1.2 BI N D NG HAI CHI U Ế TRONG VIỆC LỰA CHỌN ĐỀ TÀI ẠNG Ề
Do việc xác định chuyển dịch thẳng đứng của vỏ Trái Đất còn hạn chế nên tachỉ xét các biến dạng do chuyển dịch nằm ngang của vỏ Trái Đất trong không gian 2chiều
1.1.2.1 Khái ni m ệ thống thông
Giả sử trong không gian Đề-các hai chiều,trên mặt phẳng xy theo trục x (Ox
dương chỉ hướng đông) và trục y (Oy dương chỉ hướng bắc), dịch chuyển của chấtđiểm X là rất nhỏ.Vận tốc chuyển dịch u là một hàm theo vị trí của điểm X ( x , y) cóthể được viết dưới dạng:
u¿δXX) = u( X) + ∂ X ∂ u δXX (1.4) Hai thành phần vận tốc theo phương của trục x và y có thể viết như sau:
Trang 9g được gọi là tensor gradient vận tốc dịch chuyển ngang.
Do gradient vận tốc thường bao hàm cả biến dạng nén ép/căng giãn và biếndạng xoay, nên g là một tensor bất đối xứng Theo lý thuyết về tensor, một tensorbậc hai bất kỳ có thể phân tách thành hai tensor, bao gồm một tensor đối xứng vàmột tensor b ất đối xứng [Malvern, 1969] Do đó (1.7) có thể viết thành:
2{∂ u y
∂ x −
∂u x
∂ y } 0 ] (1.9) Nếu đặt:
ϵ được gọi là tensor vận tốc biến dạng (strain rate tensor) hay tensor đối
xứng
Ω là tensor vận tốc xoay (rotation rate tensor) hay tensor phản đối xứng.
Trang 10 ε x và ε y là vận tốc biến dạng pháp tuyến (nornal strain) trên mặt phẳng xytheo trục x và trục y.Chúng được gọi là vận tốc giãn nở (hay căng giãn) khicó giá trị dương và vận tốc nén ép khi có giá trị âm.
ε xy=ε yx là vận tốc biến dạng trượt (shear strain) không kèm theo sự xoay.
Tensor vận tốc biến dạng ϵ không phụ thuộc vào sự tịnh tiến của hệ toạđộ và ảnh hưởng không đáng kể vào phép xoay toạ độ: tensor vận tốc xoay Ω
không phụ thuộc vào phép tịnh tiến hệ toạ độ
Do những ưu điểm trên của tensor vận tốc biến dạng người ta thường sửdụng các tham số tính từ các thành phần của nó, bao gồm ε x,ε y,ε xy để mô tả biến dạng bề mặt vỏ trái đất.
1.1.2.2 Trình t tính bi n d ng ự tính biến dạng ến dạng ạng
Đầu tiên ta có các dữ liệu đo vận tốc chuyển dịch trên bề mặt Trái Đất (được
đo bằng GPS) được thể hiện trong một lưới các điểm đo Chia lưới các điểm
đo này thành các đa giác (thường là tam giác) sao cho khoảng cách trong cáccạnh của đa giác tương đối bằng nhau Từ đó ta sẽ tính các giá trị biến dạngtrong một đa giác này
Từ vận tốc chuyển dịch đo được trong đa giác ta tính được tensor gradientchuyển dịch ngang
Từ tensor gradient vận tốc chuyển dịch ngang,có thể phân tách thành tensorvận tốc biến dạng (tensor đối xứng) và tensor vận tốc xoay (tensor phản đốixứng)
Tensor vận tốc biến dạng được biển diễn theo các vận tốc biến dạng chínhtrong trong hệ toạ độ của các trục chính
Giả định rằng biến dạng là đồng nhất trong mỗi đa giác,các giá trị vận tốcbiến dạng được tính trung bình trong mỗi đa giác và được biểu diễn tại tâmcủa đa giác đó
1.1.3 BI N D NG XOAY Ế TRONG VIỆC LỰA CHỌN ĐỀ TÀI ẠNG
1.1.3.1 Biến dạng xoay là gì?
Theo (1.11) thì biến dạng xoay là một tensor phản đối xứng và thường đượcký hiệu là ω Giả sử ta có một điểm đo trên bề mặt của vỏ trái đất, khi biết tốc độchuyển dịch của điểm này thì ta sẽ xác định được hướng dịch chuyển của điểm đó,nhưng do các yếu tố biến dạng trong vỏ Trái đất điểm này sẽ xoay đi một góc nàođó so với mốc ban đầu và góc này chính là thể hiện vận tốc biến dạng xoay
Trang 11B’
C’
G
1.1.3.2 Minh h a th hi n bi n d ng xoay ọa thể hiện biến dạng xoay ể hiện biến dạng xoay ệ thống thông ến dạng ạng
Hình 1.2: Minh họa biến dạng xoay
Trong hình 1.2 thì hình (a) thể hiện điểm A tại gốc mũi tên là điểm tại vị tríban đầu trong không gian, điểm B là điểm sau khi đo, mũi tên sẽ là đương thể hiệnhướng dịch chuyển của điểm A, và chiiều mũi tên thể hiện biến dạng xoay của điểmtại vị trí A hình (b) tương tự như (a) nhưng chiều xoay ngược lại Hình (c) và (d) làký hiệu biến dạng xoay thể hiện trên bản đồ
1.1.4 TAM GIÁC Đ A Đ NG L C ỊA ĐỘNG LỰC ỘT CHIỀU ỰC TẾ TRONG VIỆC LỰA CHỌN ĐỀ TÀI
1.1.4.1 Tam giác địa động lực là gì?
Giả sử ta có một loạt các điểm khác nhau đo tốc độ dịch chuyển bề mặt tráiđất, các điểm này được bố trí các khoảng cách tương đối với nhau tùy theo lưới đolà lớn hay nhỏ Để tính biến dạng cho vùng được bố trí các điểm đo này thì người tatính biến dạng trong từng đa giác một, và đa giác này thường là một tam giác (tức là
3 điểm đo một tạo thành một tam giác) Tam giác này thường được người xác địnhlựa chọn theo nguyên tắc tam giác Delaunay Và biến dạng tính được trong tam giácthể hiện và qui về trọng tâm của tam giác đó
Trang 12Hình 1.3: Minh họa biến dạng xoay trong tam giác địa động lực
Trong hình 1.3 thể hiện một tam giác địa động lực trong đó thể hiện 3 đầucủa tam giác là 3 điểm đo được bố trí trên bề mặt trái đất các mũi tên màu đỏ thểhiện các tốc độ dịch chuyển, ký hiệu biến dạng xoay được thể hiện trên trọng tâm Gcủa tam giác
1.1.4.2 Tính bi n d ng xoay trong m t tam giác đ a đ ng l c ến dạng ạng ột tam giác địa động lực ịa lý GIS MapInfo ột tam giác địa động lực ự tính biến dạng
Trong không gian Decac 2 chiều của một tam giác địa động lực.Gọi v xij, v yij
là vận tốc dịch chuyển của điểm thứ i tới điểm thứ j lần lượt theo trục ox và oy Gọi
x ij, y ij là khoảng cách của điểm thứ itới điểm thứ j lần lượt theo trụcoxvà oy v xij, v yij
có đơn vị là m/năm, x ij, y ij đơn vị là met Theo đó ta sẽ có:
∂ y ] là gradient vector vận tốc(F chưa biết)
Từ công thức (1.12) F=(A t C V− 1
A)−1 A t C−1V V ij (1.13)Trong đó C V là ma trận hiệp phương sai của vận tốc dịch chuyển
Tính được F ta có thể tính được biến dạng xoay ω theo công thức :
Trang 131.2.1 KHÁI NI M ỆC LỰA CHỌN ĐỀ TÀI
1.2.1.1 Định nghĩa ma trận
Khi a ij ∈ Z, ∀ i, j thì A được gọi là ma trận nguyên a ij ∈C, ∀ i, j thì Ađượcgọi là ma trận phức Nếu không chỉ rõ a ij thì A gọi là tập số thực
Một ma trận A có cỡ m× n có thể được viết tắt dưới dạng :
A= [a ij]i= ´ 1 , m
j= ´ 1 , n hay A = [a ij]m × n (1.17) Khi m=n ta nói A là ma trận vuông cấp n hoặc m
Tập hợp tất cả các ma trận cỡ m× n được ký hiệu là M m ×n
Trang 141.2.1.2 Ví dụ:
Ma trận [2 3 04 5 7] là một ma trận cỡ 2 ×3
Ma trận [4 57 2] là một ma trận vuông cấp 2
1.2.2 CÁC PHÉP TOÁN TRONG MA TRẬN
1.2.2.2 Phép nhân ma tr n v i m t s ập trình MapBasic cho Hệ thống thông ới một số ột tam giác địa động lực ống thông
Cho ma trận A = [a ij]m × n cỡ m× n , và số thực k Ta định nghĩa và ký hiệuphép nhân ma trận với một số như sau :
kA = [ka ij]m × n (1.19) Ví dụ 1.2: 12 [2 3 04 5 7] = [1 3/22 5/2 7/20 ]
Tính chất 1.1: Các tính chất sau đúng với ma trận cùng cỡ :
Trang 151.2.2.3 Phép nhân ma tr n ập trình MapBasic cho Hệ thống thông
Định nghĩa 1.1: Tích hai ma trận A=[a ij]m × p và B=[b ij]p × n là ma trận cỡ
m× n được ký hiệu và định nghĩa bởi AB=[c ij]m ×n , trong đó
Ta thấy rằng tích của hai ma trận A và B được định nghĩa khi số cột của A
bằng số hàng của B.Vì vậy có thể định nghĩa ABnhưng không định nghĩa được BA
nếu số cột của B không bằng số hàng của A
Khi A , B là hai ma trận vuông cùng cấp thì ta có đồng thời AB và BA Mặcdù vậy chưa chắc có đẳng thức AB=BA, hay nói cách khác tích của ma trận khôngcó tính giao hoán Chẳng hạn, xét:
A=[2 03 5] B=[2 45 1]
AB=[31 174 8 ] ≠ BA=¿[16 2013 15]
Tính chất 1.2: Giả sử A , B , Clà các ma trận với số cột số hàng thích hợp đểcác phép toán sau được xác định thì ta có đẳng thức :
1 A(BC)=( AB)Ctính kết hợp
2 A(B+C )=AB+ ACtính phân phối bên trái phép nhân ma trận với phépcộng
3 (B+C) A=BA+CAtính phân phối bên phải phép nhân ma trận với phépcộng
4 Với mọi k ∈ R , k (AB)=(kA )B= A (kB).
5 Với mọi số tự nhiên dương n ta xét ma trận I n vuông cấp n có các phầntử trên đường chéo bằng 1 và ở các vị trí khác đều bằng 0
I n=[10⋱01]
Khi đó ma trận A cỡ m× n ta có I m A= A=A I n
Ma trận I nđược gọi là ma trận đơn vị cấp n
Trang 161.2.2.4 Ma tr n chuy n v ập trình MapBasic cho Hệ thống thông ể hiện biến dạng xoay ịa lý GIS MapInfo
Định nghĩa 1.2: Cho ma trận Acỡ m× n ,nếu ta đổi các hàng của ma trận A
thành các cột (do đó các cột thành các hàng)thì ta được ma trận mới cỡ n × m , gọi là
ma trận chuyển vị của ma trận trênA , ký hiệu A t
1.2.3 Đ NH TH C ỊA ĐỘNG LỰC ỨC
1.2.3.1 Định nghĩa
Khi giải hệ phương trình tuyến tính {a ' x+b ' y=c ' ax +by =c ta tính các định thức
D=|a ' b ' a b|=ab ’−b ’ a, D x=|c ' b' c b|=cb '−bc ' , D y=|a ' c ' a c|=ac '−ca '
Như vậy định thức của ma trận A=¿[a11 a12
a21 a22] vuông cấp 2 là :
|A|=¿ |a11 a12
a21 a22| ¿a11a22−a12a21
Trang 17Định nghĩa 1.4: Định thức của ma trận vuông A=[a ij]m ×n được ký hiệu là
det A hay |A| và định nghĩa bởi biểu thức :
det A=∑
σϵ S n sgnσ a 1 σ (1) … a nσ (n) (1.22)
Như vậy định thức của ma trận vuông A=[a ij]m ×n là tổng tất cả các tích gồm n
phần tử trên n hàng mà ở trên n cột khác nhau của ma trận A và nhân với +1 hoặc 1
Ví dụ 1.5: Tính định thức của một ma trận bậc 3 có dạng [a11 a12 a13
thì detA ’=−detA
2 Định thức có tính chất tuyến tính đối với mỗi hàng:
Cho hai ma trận A=[a ij]n ×n, B=[b ij]n × n và ma trận C=[c ij]n ×n có hàng thứ klàtổ hợp tuyến tính của hàng thứ k của A và B
Nghĩa là {c ij=a ij=b ij n ế u i ≠ k
c ij=αaa kj+βbb kj ; với mọi j=1, , n
Thì detC =αadetA+ βbdetB
3 Từ 1 và 2 suy ra rằng trong một ma trận có hai hàng tỷ lệ thì định thứcbằng 0
4 Nếu ta cộng vào một hàng một tổ hợp tuyến tính các hàng khác thì địnhthức không thay đổi
5 Định thức của ma trận chuyển vị bằng định thức của ma trận đó:
Trang 181.2.3.3 Cách tính đ nh th c ịa lý GIS MapInfo ức
Định lý 1.1: A ij=(−1 )(i+ j)M ij (1.23)
Trong đó M ij là định thức của ma trận cấp n−1 có được bằng cách xoá hàng i cột jcủa ma trận A
1.2.4 MA TR N NGH CH Đ O ẬN ỊA ĐỘNG LỰC ẢO
1.2.4.1 Đ nh nghĩa ma tr n ngh ch đ o ịa lý GIS MapInfo ập trình MapBasic cho Hệ thống thông ịa lý GIS MapInfo ảo
Định nghĩa 1.5: Ma trận vuông A được gọi là khả nghịch nếu tồn tại ma trậnvuông cùng cấp B sao cho I=BA= AB Trong đó I là ma trận đơn vị
Phép nhân ma trận có tính kết hợp nên ma trận B ở định nghĩa trên nếu tồn tại thì duy nhất, ta gọi ma trận này là ma trận nghịch đảo của A, ký hiệuA−1
1.2.4.2 Đi u ki n c n và đ đ t n t i ma tr n ngh ch đ o ều kiện cần và đủ để tồn tại ma trận nghịch đảo ệ thống thông ần Văn Đắc ủa định thức ể hiện biến dạng xoay ồn tại ma trận nghịch đảo ạng ập trình MapBasic cho Hệ thống thông ịa lý GIS MapInfo ảo
Định lý 1.2 : (điều kiện cần) Nếu A khả nghịch thì det A ≠ 0(lúc đó ta nói matrận A không suy biến)
Định nghĩa 1.6: Ma trận B=[A ij]n × n trong đó A ij là phần bù đại số của phần tử
a ij của ma trận A=[a ij]n ×n, được gọi là ma trận phụ hợp của A
Định lý 1.3 : (điều kiện đủ) Nếu det A ≠ 0thì A khả nghịch và
Trang 191.2.4.3 Ví d tính ma tr n ngh ch đ o theo công th c (1.24) ục Lục ập trình MapBasic cho Hệ thống thông ịa lý GIS MapInfo ảo ức
Ví dụ 1.6: Ma trận A=[1 2 32 5 3
1.2.5 GI I H PH ẢO ỆC LỰA CHỌN ĐỀ TÀI ƯƠNG I : NG TRÌNH TUY N TÍNH B NG MA TR N Ế TRONG VIỆC LỰA CHỌN ĐỀ TÀI ẰNG MA TRẬN ẬN
NGH CH Đ O ỊA ĐỘNG LỰC ẢO
1.2.5.1 H ph ệ thống thông ương trình tuyến tính ng trình tuy n tính ến dạng
Hệ m phương trình tuyến tính n ẩn có dạng tổng quát:
Trong đó : x1,x2, ,x n là nẩn
a ij là hệ số của ẩn thứ jtrong phương trình i ,
b i là vế phải của phương trình thứ i;i−1, , n ; j=1, ,m
Trang 20Khi các vế phải b i¿0 thì hệ phương trình được gọi là thuần nhất.
1.2.5.2 Gi i h ph ảo ệ thống thông ương trình tuyến tính ng trình tuy n tính b ng ma tr n ngh ch đ o ến dạng ằng ma trận nghịch đảo ập trình MapBasic cho Hệ thống thông ịa lý GIS MapInfo ảo
Từ công thức (1.25) ta có dạng ma trận của hệ phương trình tuyến tính :
AX=B (1.27) Giải phương trình (1.27) theo phương pháp ma trận nghịch đảo ta có côngthức : X =A−1B (1.28)
1.3 SAI SỐ
1.3.1 KHÁI NI M ỆC LỰA CHỌN ĐỀ TÀI
Giả sử x là số gần đúng của x¿ (x¿ : số đúng),
Khi đó ∆=|x−x¿
| gọi là sai số thực sự của x Vì không xác định được ∆ nên ta xét đến 2 loại sai số đó là sai số tuyệt đốivà sai số tương đối :
- Sai số tuyệt đối: Giả sử ∃ ∆ x>0 đủ bé sao cho |x−x¿
|≤ ∆ x Khi đó ∆ x gọilà sai số tuyệt đối của x
- Sai số tương đối :được định nghĩa và ký hiệu bởi công thức:
δXx= ∆ x
|x| (1.29)
1.3.2 CÁC LOẠI SAI SỐ
Dựa vào nguyên nhân gây sai số, ta có các loại sai số sau:
- Sai số giả thiết: xuất hiện do việc giả thiết bài toán đạt được một số điềukiện lý tưởng nhằm làm giảm độ phức tạp của bài toán
- Sai số do số liệu ban đầu: xuất hiện do việc đo đạc và cung cấp giá trịđầu vào không chính xác
Trang 21- Sai số phương pháp : xuất hiện do việc giải bài toán bằng phương phápgần đúng.
- Sai số tính toán : xuất hiện do làm tròn số trong quá trình tính toán, quátrình tính càng nhiều thì sai số tích luỹ càng lớn
1.3.3 SAI SỐ TÍNH TOÁN
Giả sử dùng n số gần đúng xi(i= ´ 1,n)để tính đại lượng y,
Với y=f(x i)=f(x1, x2, …, x n) Trong đó f là hàm khả vi liên tục theo các đốisố của x i Khi đó sai số của yđược xác định theo công thức sau :
Sai số tuyệt đối: ∆ y =∑
Ta tính sai số cho các trường hợp của hàm f như sau :
- Trường hợp f có dạng tổng: y=f(x i)=± x1± x2± … ± x n
- Trường hợp f có dạng lũy thừa :
y=f ( x )=x ∝(∝>0) Ta có : lny=lnf =∝lnx
|∂ lnf ∂ x |=∝
|x| Suy ra δX y=∝ ∆ x
|x|=∝ δXx (1.34)
Trang 22Ví dụ 1.7: Tính sai số của:
∆ c
|c|)
CH ƯƠNG I : NG 2 : XÂY D NG CH ỰC TẾ TRONG VIỆC LỰA CHỌN ĐỀ TÀI ƯƠNG I : NG TRÌNH
2.1 NGÔN NG L P TRÌNH Ữ LẬP TRÌNH ẬN
Để xây dựng chương trình tính biến dạng xoay trong một tam giác địa độnglực, em lựa chọn xây dựng chương trình là thành lập một tool (công cụ) của phần
mềm Mapinfo Đây là phần mềm GIS được dùng phổ biến và rộng rãi trên thế giới
và Việt Nam, và thành lập tool này dựa trên ngôn ngữ lập trình mở rộng của nó, đó
Trang 23là MapBasic Cụ thể trong chương trình được trình bày trong đồ án này em sử dụng MapBasic 9.5 và Mapinfo 11.0 là những phiên bản mới nhất hiện nay.
2.1.1 T NG QUAN V PH N M M MAPINFO ỔNG QUAN VỀ PHẦN MỀM MAPINFO Ề ẦU Ề
MapInfo là một phần mềm nhằm giúp chúng ta xử lý bản đồ số cũng như cácthông tin liên quan đến địa lý Trước đây xử lý bản đồ là một chức năng chuyênnghiệp của ngành bản đồ học Với sự ra đời của Mapinfo, việc xử lý bản đồ trở nênmột công việc mà mọi người đều có thể làm được Không những có các chức năngcủa bản đồ thông dụng như cung cấp thông tin địa lý, giúp định vị trong thực địa, Mapinfo còn là một phần mềm rất mạnh giúp xử lý và phân tích thông tin trên bảnđồ số Chức năng này của Mapinfo khiến cho nó trở thành một hệ cơ sở dữ liệu địalý Tính năng này còn được tăng cường thêm nhờ khả năng liên kết được với các hệ
cơ sở dữ liệu như Microsoft Access, SQL Sever, Oracle, Sử dụng Mapinfo có thể
hỗ trợ giải quyết được nhiều vấn đề thực tế một cách nhanh chóng và chính xác Một bản đồ trong Mapinfo bao gồm hai phần : phần bản đồ (hay phần đồhọa) và phần dữ liệu (hay thông tin)
2.1.1.1 Đ h a trong Mapinfo ồn tại ma trận nghịch đảo ọa thể hiện biến dạng xoay
Phần đồ họa của Mapinfo là những vật thể được biểu hiện trên màn hình máytính giống như bản đồ giấy nhưng có bản chất khác Phần đồ họa được hiển thịtrong cửa sổ bản đồ (Map Window) Mapinfo sử dụng các khái nệm toán học đểbiểu diễn các chi tiết trên bản đồ Có 3 kiểu khái niệm toán học chính được sử dụngđể xây dựng bản đồ trên Mapinfo (Hình 2.1) :
- Điểm : là một vật thể toán học không có kích thước, không có chiều dài, chỉcó tọa độ (trong một hệ trục tọa độ nào đó) Người ta sử dụng vật thể điểm đểminh họa cho một thành phố,một trạm xăng,một trường học, Điểm đượctượng trưng bằng một chấm trong toán học Trong Mapinfo,tùy theo nộidung của điểm đó (minh họa cho cái gì) mà người ta có thể sử dụng mộttrong nhiều biểu tượng khác nhau để minh họa một điểm Vì vậy điểm trongMapinfo được gọi là biểu tượng (symbol)
- Đường: là một vật thể hình học không có chiều rộng nhưng có chiều dài.Đường trong Mapinfo bao gồm các thành phần nhỏ được gọi là đoạn(segment) Giữa hai đoạn liền nhau gọi là nốt (node) Các điểm nốt này chophép ta chỉnh sửa các đường.Đường được sử dụng để minh họa cho một consông, một đường giao thông,
- Vùng : là một vật thể có diện tích.Vùng cũng bao gồm các thành phần nhỏ làđoạn và các điểm nốt nhưng đoạn đầu tiên và đoạn cuối cùng gặp nhau nêntạo ra một đường khép kín và phần phía trong đường ranh giới đó có diện
Trang 24tích Vùng có chu vi là đường giới hạn ranh giới của vùng đó Vùng thựcchất là một hình đa giác.Vùng được sử dụng để minh họa cho một quận, mộttỉnh,một cái ao,
Hình 2.1: Minh họa các kiểu đồ họa chính trong Mapinfo
Các thông tin đồ họa trên Mapinfo được gọi là các đối tượng (object)
Người làm bản đồ số cần phải biết cách số hóa những thông tin địa lý từ bảnđồ giấy vào bản đồ số sao cho đúng cách.Ví dụ như khi nói đến một cái ao có thể
“nhìn” thấy (tức là thấy được bằng mắt thường trên bản đồ giấy hình dạng của cái
ao ở một tỉ lệ nào đó) thì ta số hóa nó thành một vùng, nhưng khi làm một bản đồ tỉlệ rất nhỏ thì ta lại không nhìn thấy hình dạng cái ao đó nên được minh họa thànhmột điểm.Tương tự như vậy,một con đường trên một bản đồ tỉ lệ nhỏ thì được minhhọa bằng kiểu đường, nhưng trên một bản đồ tỉ lệ lớn thì con đường sẽ có chiềurộng, lúc đó ta minh họa con đường bằng đối tượng có chiều rộng,lúc đó ta minhhọa con đường bằng một đối tượng kiểu vùng
Phần đồ họa trong Mapinfo được quản lý theo lớp (layer), có nghĩa là cácthông tin địa lý được tố chức theo từng nhóm,ví dụ như trên bản đồ của một thànhphố, ta có lớp đường xá, lớp quận, lớp địa danh, lớp sông suối Nhờ khả năng nàymà ta có thể hiển thị thông tin theo ý muốn.Khi muốn sử dụng những thông tin nào
ta có thể mở những lớp thông tin đó ra Cửa sổ bản đồ có thể chứa một hay nhiềulớp bản đồ đang được mở Nếu các lớp bản đồ thuộc cùng một vị trí địa lý thì có thểhiển thị chồng lên nhau Ta có thể hình dung mỗi lớp bản đồ như là một tờ giấykính (transparency) có hình vẽ và bản đồ giống như nhiều tờ giấy kính chồng lênnhau để tạo ra một cái nhìn cuối cùng Các lớp bản đồ được sắp xếp theo thứ tự trêndưới, có nghĩa là lớp ở dưới bị lớp ở trên che khuất những phần chung.Ngoài ra
Trang 25phía trên cùng các lớp bản đồ được mở luôn luôn có một lớp mặc định được gọi là
lớp Cosmetic (Cosmetic Layer).Lớp này giống như một lớp nháp, ta có thể đánh dấu
chỉnh sửa vào lớp này và thêm bớt các vật thể đồ họa vào nó nhưng không ảnhhưởng đến các lớp bản đồ khác ở dưới Những vật thể được vẽ thêm vào lớp bản đồnày có thể được lưu dưới dạng được mở hoặc lưu thành một lớp bản đồ riêng Lớp
Cosmetic còn được sử dụng trong việc trình bày bản đồ khi in ấn, ví dụ như thêm
các chi tiết để trình bày bản đồ Các đối tượng trong lớp này không có phần dữ liệu
2.1.1.2 D li u trong Mapinfo ữ liệu trong Mapinfo ệ thống thông
Ngoài phần đối tượng đồ họa,bản đồ số trong Mapinfo còn có dữ liệu đượchiển thị trong một cửa sổ được gọi là cửa sổ Brower(cửa sổ dữ liệu) Dữ liệu trongMapinfo được hiển thị trên một bảng và chúng được cấu trúc theo dữ liệu tương tựcác kiểu dữ liệu khác như Excel,Access, Ngoài ra Mapinfo cũng có thể mở cácdữ liệu khác Ta có thể mở một tập tin Excel hay Access trong Mapinfo và xử lýchúng như những bảng dữ liệu bình thường của Mapinfo
Mỗi cửa sổ dữ liệu có thể hiển thị thông tin của một lớp bản đồ hay một phầncủa một lớp bản đồ Cửa sổ này bao gồm các ô giống nhau như bảng tính Excel.Các ô được xếp theo chiều dọc được gọi là trường(field) hay cột (column) Mỗi cộthiển thị một loại thuộc tính của đối tượng trên bản đồ số, ví dụ đối với bản đồ cáctỉnh của Việt Nam chẳng hạn, ta có thể có các cột tên tỉnh,diện tích tỉnh,chu vitỉnh,dân số, Mỗi một cột có một định dạng khác nhau tùy theo nội dung chứatrong cột đó Ta có thể thêm hay bớt trường cũng như thay đổi định dạng cáctrường Tên trường không hiển thị tiếng Việt được nên khi tạo trường ta không đượcgõ dấu tiếng Việt vào tên trường Trên cùng cửa sổ dữ liệu có tiêu đề cột (in đậm),tức tên trường Các hàng trong cửa sổ dữ liệu được gọi là bản ghi (record) Bên tráimỗi hàng có một ô vuông Khi sử dụng công cụ chọn, ta có thể nhắp chuột lên ôvuông đó để chọn bản ghi đó Khi được chọn ô vuông biến thành màu đen Mỗi mộtbản ghi liên kết với một vật thể đồ họa trên cửa sổ bản đồ,hay nói cách khác mỗi đốitượng đồ họa trên cửa sổ bản đồ có thông tin nằm trên một hàng trong cửa sổ dữliệu Đối tượng đồ họa và dữ liệu là hai thành phần thống nhất của một bản đồ sốtrong Mapinfo Nếu mở cửa sổ đồ họa và cửa sổ dữ liệu của một lớp bản đồ cùnglúc thì khi sử dụng công cụ chọn, ta có thể nhắp chuột lên chọn một vật thể đồ họatrên cửa sổ bản đồ Khi một dối tượng trên cửa sổ bản đồ được chọn thì bản ghitương ứng trong cửa sổ dữ liệu cũng được chọn và ngược lại
Nếu ta quan niệm bản đồ số như là các lớp đối tượng đồ họa thì cửa sổ dữliệu là thông tin của vật thể trên bản đồ Nếu ta quan niệm bản đồ số như là một cơsở dữ liệu thì các đối tượng đồ họa trên một lớp bản đồ là một “cột” được gọi là
“cột đối tượng” (object column hay obj column),vì cột đó không hiển thị được trong
cửa sổ dữ liệu nên được hiển thị riêng trong cửa sổ bản đồ Vì Mapinfo quan niệm
Trang 26bản đồ số như một cơ sở dữ liệu với các đối tượng trong cửa sổ bản đồ được coi như
một “ cột” nên một bản đồ cũng được gọi là một bảng ( table) Mapinfo sử dụng
thuật ngữ này để chỉ cả dữ liệu lẫn đồ họa(“cột” đối tượng) trong một bản đồ số.Một bảng của Mapinfo có thể không có “cột” đối tượng Lúc đó chúng hoàn toàngiống như một cơ sở dữ liệu bình thường, kiểu dữ liệu của Excel hay Access Cửa
sổ dữ liệu có thể là dữ liệu nguyên thủy của Mapinfo ( native) hay dữ liệu của các
định dạng khác (như Excel, Access, ) nhưng được đăng ký vào Mapinfo
Những tính chất liên quan đến đồ họa của bản đồ số được xử lý trong cửa sổbản đồ Những thông tin liên quan đến dữ liệu (tên,dân số,thuộc tính,đặc điểm, )được xử lý trong các trường của cửa sổ dữ liệu Những thông tin về dữ liệu này cóthể được đưa lên bản đồ bằng một số lệnh khác nhau để minh họa làm rõ bản đồ lúctrình bày bản đồ để in hoặc tiến hành phân tích như một hệ cơ sở dữ liệu bìnhthường và kết quả phân tích cũng có thể được phản ánh trên cửa sổ bản đồ Ngượclại một số thông tin trên bản đồ có thể được cập nhật vào dữ liệu bằng một số lệnh.Tùy nhu cầu của người dùng có thể mở cửa sổ bản đồ hay cửa sổ dữ liệu hoặc mởcả hai Ngoài ra còn một số loại cửa sổ khác nữa trong Mapinfo
2.1.1.3 Giao diện Mapinfo
Khi khởi động Mapinfo trên màn hình có các thành phần chính sau:
- Menu chính : gồm các menu lệnh chính của Mapinfo là File,Edit,Tool, Object, Query, Table, Options,Map/Browse (hay một menu khác, tùy vào cửa sổ nào đang được kích hoạt), Window, Help.
- Thanh công cụ : Có 3 thanh công cụ chính là Standard, Main, Drawing Thanh công cụ Standard gồm các lệnh thường được sử dụng trên
các menu chính
Thanh công cụ Main gồm 23 nút lệnh liên quan đến các thành phần
chính của một bản đồ số như lệnh chọn, chỉnh thiết lập cửa sổ bản đồ,biểu đồ/đồ thị, kiểm soát lớp,
Thanh công cụ Drawing bao gồm các nút lệnh liên quan đến việc vẽ
và chỉnh sửa phần đồ họa của bản đồ
Ngoài ra nếu còn có thanh công cụ DBMS.Đây là thanh công cụ cho
phép liên kết và thao tác dữ liệu của các hệ dữ liệu khác nhau như
Access, SQL Server,
Dưới cùng cửa sổ Mapinfo là thanh trạng thái ( Status Bar) Thanh
này cho biết thông tin cũng như tình trạng của cửa sổ đang được kíchhoạt
Trang 27Menu chính
Cửa sổ chính của Mapinfo
Cửa sổ Dữ li u ệm
Cửa sổ Bản đồ
Thanh công cụ Main Thanh công cụ Drawing
Thanh công cụ Standard
Thanh trạng thái
Hình 2.2: Giao diện Mapinfo
Ta mở một bản đồ là bản đồ Việt Nam Bảng này có tên là vietnam Cách mởnhư sau :
- Khới động Mapinfo, cửa sổ Quick Start hiện ra.
- Chọn Open a Table > Open, vào thư mục chứa tập tin vietnam.tab rồi chọn nó và tiếp chọn Open.
Trang 28Ta sẽ thấy cửa sổ bản đồ được mở ra Để thấy cửa sổ dữ liệu ta chọn
Window > New Browser Window, cửa sổ dữ liệu của bản đồ vietnam
được mở ra (Hình 2.2)
Ta có thể mở nhiều cửa sổ khác nhau cùng một lúc trong Mapinfo Tuy nhiênvào một thời điểm chỉ có một cửa sổ được kích hoạt Cửa sổ được kích hoạt là cửasổ màu xanh trên thanh tiêu đề (màu mặc định, màu này có thể khác tùy thiết lậpmàu trên HĐH), những cửa sổ không được kích hoạt có màu xám Ta kích hoạt mộtcửa sổ bản đồ bằng cách nhắp chuột vào thanh tiêu đề của cửa sổ từ menu chínhchọn Window > <tên cửa sổ> Những thao tác ta thực hiện chỉ tác động lên cửa sổnào đó đang được kích hoạt Cửa sổ kích hoạt luôn nằm trên cùng
2.1.2 NGÔN NG L P TRÌNH MAPBASIC Ữ LẬP TRÌNH ẬN
2.1.2.1 T ng quan v Mapbasic ổng quan về Mapbasic ề Mapbasic
MapBasic là ngôn ng l p trình trong môi trập chương trình ường MapInfo MapBasicng MapInfo MapBasiclàm tăng thêm s c m nh c a MapInfo lên nhi u l n Nó làm cho t đ ng hóaứng dụng trong đợt thực tập S ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ủa tác giả ều lần Nó làm cho tự động hóa ần Nó làm cho tự động hóa ực tập S ột bài báo cáo không thể trình bày hết
được, chúng ta có thể tham khảo qua tài liệu c MapInfo và làm cho các h th ng GIS làm b ng MapInfo tr nên thệnh MapBasic ối giống với Visual Basic, để có thể trình bày các ằng MapInfo trở nên thương ở cửa sổ biên tập chương trình ương trìnhng
m i hóa ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa
B ng MapBasic, chúng ta có th làm thay đ i hay làm m i hoàn toàn cácằng MapInfo trở nên thương ể mở cửa sổ biên tập chương trình ổ biên tập chương trình ới Visual Basic, để có thể trình bày cácthanh menu, các h p h i th ai c a MapInfo Đi u này có nghĩa là, v iột bài báo cáo không thể trình bày hết ột bài báo cáo không thể trình bày hết ọai của MapInfo Điều này có nghĩa là, với ủa tác giả ều lần Nó làm cho tự động hóa ới Visual Basic, để có thể trình bày cácMapBasic, chúng ta có th t o ra các giao di n h t s c thu n ti n cho MapInfo.ể mở cửa sổ biên tập chương trình ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ệnh MapBasic ết các dòng lệnh MapBasic ứng dụng trong đợt thực tập S ập chương trình ệnh MapBasic
MapBasic được, chúng ta có thể tham khảo qua tài liệu c đánh giá cao b i các tính năng đ c s c c a nó, nh : ở cửa sổ biên tập chương trình ặc sắc của nó, như: ắc của nó, như: ủa tác giả ư
MapBaic d h c, vì nó đễ học, vì nó được phát triển từ Basic chuẩn, và nó rất gần ọai của MapInfo Điều này có nghĩa là, với ược, chúng ta có thể tham khảo qua tài liệu c phát tri n t Basic chu n, và nó r t g nể mở cửa sổ biên tập chương trình ừ Basic chuẩn, và nó rất gần ẩn, và nó rất gần ấp New để mở cửa sổ biên tập chương trình ần Nó làm cho tự động hóagũi v i Visual Basic ới Visual Basic, để có thể trình bày các
Kh năng t đ ng hóa MapInfo: N u thao tác MapInfo b ng "tay" chúngảo qua tài liệu ực tập S ột bài báo cáo không thể trình bày hết ết các dòng lệnh MapBasic ằng MapInfo trở nên thương
ta t n nhi u công s c h n là khi dùng MapBasic đ l p trình cho MapBasicối giống với Visual Basic, để có thể trình bày các ều lần Nó làm cho tự động hóa ứng dụng trong đợt thực tập S ơng trình ể mở cửa sổ biên tập chương trình ập chương trình
đi u khi n MapInfo th c hi n t đ ng các thao tác Trong th c t , nhi u côngều lần Nó làm cho tự động hóa ể mở cửa sổ biên tập chương trình ực tập S ệnh MapBasic ực tập S ột bài báo cáo không thể trình bày hết ực tập S ết các dòng lệnh MapBasic ều lần Nó làm cho tự động hóa
vi c làm trên MapInfo không th th c hi n n i n u nh không có s tr giúpệnh MapBasic ể mở cửa sổ biên tập chương trình ực tập S ệnh MapBasic ổ biên tập chương trình ết các dòng lệnh MapBasic ư ực tập S ợc, chúng ta có thể tham khảo qua tài liệu
c a MapBasic M t ví d đ n gi n, chúng ta không th th hi n đủa tác giả ột bài báo cáo không thể trình bày hết ụng trong đợt thực tập S ơng trình ảo qua tài liệu ể mở cửa sổ biên tập chương trình ể mở cửa sổ biên tập chương trình ệnh MapBasic ược, chúng ta có thể tham khảo qua tài liệu c v t c aệnh MapBasic ủa tác giả
m t lu ng khói khi nó ch m đ t, n u không bi t l p trình b ng MapBasicột bài báo cáo không thể trình bày hết ! ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ấp New để mở cửa sổ biên tập chương trình ết các dòng lệnh MapBasic ết các dòng lệnh MapBasic ập chương trình ằng MapInfo trở nên thương
ho c chúng ta t n khá nhi u th i gian đ vẽ m t đ i tặc sắc của nó, như: ối giống với Visual Basic, để có thể trình bày các ều lần Nó làm cho tự động hóa ờng MapInfo MapBasic ể mở cửa sổ biên tập chương trình ột bài báo cáo không thể trình bày hết ối giống với Visual Basic, để có thể trình bày các ược, chúng ta có thể tham khảo qua tài liệu ng nh con đư ường MapInfo MapBasicng,sông su i V i MapBasic ch trong nháy m t b n đã vẽ xong m t đ i tối giống với Visual Basic, để có thể trình bày các ới Visual Basic, để có thể trình bày các ỉ giới thiệu ắc của nó, như: ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ột bài báo cáo không thể trình bày hết ối giống với Visual Basic, để có thể trình bày các ược, chúng ta có thể tham khảo qua tài liệu ng
nh th ư ết các dòng lệnh MapBasic
MapBasic là công c h u hi u đ truy v n d li u Ch ng h n, cácụng trong đợt thực tập S ệnh MapBasic ể mở cửa sổ biên tập chương trình ấp New để mở cửa sổ biên tập chương trình ệnh MapBasic ẳng hạn, các ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa
m nh đ Select c a MapBasic không nh ng v n gi nguyên s c m nh c aệnh MapBasic ều lần Nó làm cho tự động hóa ủa tác giả ẫn giữ nguyên sức mạnh của ứng dụng trong đợt thực tập S ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ủa tác giả ngôn ng SQL mà còn được, chúng ta có thể tham khảo qua tài liệu c phát tri n thêm v i các đ i tể mở cửa sổ biên tập chương trình ới Visual Basic, để có thể trình bày các ối giống với Visual Basic, để có thể trình bày các ược, chúng ta có thể tham khảo qua tài liệu ng b n đ Cácảo qua tài liệu !
phương trìnhng ti n truy v n c a MapBasic cho phép chúng ta l c, s p x p, t ng h pệnh MapBasic ấp New để mở cửa sổ biên tập chương trình ủa tác giả ọai của MapInfo Điều này có nghĩa là, với ắc của nó, như: ết các dòng lệnh MapBasic ổ biên tập chương trình ợc, chúng ta có thể tham khảo qua tài liệu
d li u b n đ theo các yêu c u c a chúng ta ệnh MapBasic ảo qua tài liệu ! ần Nó làm cho tự động hóa ủa tác giả
Trang 29 MapBasic là m t ngôn ng l p trình m MapBasic có kh năng liên k tột bài báo cáo không thể trình bày hết ập chương trình ở cửa sổ biên tập chương trình ảo qua tài liệu ết các dòng lệnh MapBasic
v i các phới Visual Basic, để có thể trình bày các ương trìnhng ti n l p trình khác, có th s d ng DDE (Dynamic Dataệnh MapBasic ập chương trình ể mở cửa sổ biên tập chương trình ửa sổ biên tập chương trình ụng trong đợt thực tập SExchange) Chúng ta cũng có th s d ng OLE Automation cùng v i MapBasic.ể mở cửa sổ biên tập chương trình ửa sổ biên tập chương trình ụng trong đợt thực tập S ới Visual Basic, để có thể trình bày cácCác chương trìnhng trình MapBasic có th g i và s d ng các file th vi n liên k tể mở cửa sổ biên tập chương trình ọai của MapInfo Điều này có nghĩa là, với ửa sổ biên tập chương trình ụng trong đợt thực tập S ư ệnh MapBasic ết các dòng lệnh MapBasic
đ ng c a Windows (các file.DLL) Các file.DLL này có th đột bài báo cáo không thể trình bày hết ủa tác giả ể mở cửa sổ biên tập chương trình ược, chúng ta có thể tham khảo qua tài liệu c cung c pấp New để mở cửa sổ biên tập chương trình
thương trìnhng m i b i Windows hay do chúng ta hay ai đó vi t trên các ngôn ngạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ở cửa sổ biên tập chương trình ết các dòng lệnh MapBasickhác nh C, Delphi, Visual Basic ư
MapBasic cho phép chúng ta tích h p thi t k b n đ v i s liên k tợc, chúng ta có thể tham khảo qua tài liệu ết các dòng lệnh MapBasic ết các dòng lệnh MapBasic ảo qua tài liệu ! ới Visual Basic, để có thể trình bày các ực tập S ết các dòng lệnh MapBasicVisual Basic hay C.delphi v i các ch c năng c a MapInfo ới Visual Basic, để có thể trình bày các ứng dụng trong đợt thực tập S ủa tác giả
Cũng nh các ngôn ng m nh khác ch y trên n n Windows, MapBasicư ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ều lần Nó làm cho tự động hóacho phép th c thi các chực tập S ương trìnhng trình ng d ng khác khi nó đang ch y Và sauứng dụng trong đợt thực tập S ụng trong đợt thực tập S ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóakhi ch y xong các chạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ương trìnhng trình ng d ng này thì nó hòan tr l i môi trứng dụng trong đợt thực tập S ụng trong đợt thực tập S ảo qua tài liệu ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ường MapInfo MapBasicng
trưới Visual Basic, để có thể trình bày cácc đó c a MapInfo ủa tác giả
Tóm l i, n u ch bi t MapInfo thôi thì ch a đ ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ết các dòng lệnh MapBasic ỉ giới thiệu ết các dòng lệnh MapBasic ư ủa tác giả
Bi t MapBasic sau khi đã bi t MapInfo là yêu c u không th thi u v iết các dòng lệnh MapBasic ết các dòng lệnh MapBasic ần Nó làm cho tự động hóa ể mở cửa sổ biên tập chương trình ết các dòng lệnh MapBasic ới Visual Basic, để có thể trình bày các
nh ng ai làm v GIS ều lần Nó làm cho tự động hóa
2.1.2.2 N i Dung ột tam giác địa động lực.
a Biên t p m t ch ập trình MapBasic cho Hệ thống thông ột tam giác địa động lực ương trình tuyến tính ng trình MapBasic
Nh p New đ m c a s biên t p chấp New để mở cửa sổ biên tập chương trình ể mở cửa sổ biên tập chương trình ở cửa sổ biên tập chương trình ửa sổ biên tập chương trình ổ biên tập chương trình ập chương trình ư ng trình ơng trình
Vi t các dòng l nh MapBasicết các dòng lệnh MapBasic ệnh MapBasic
Chon m c File -> Save đ ghi file chụng trong đợt thực tập S ể mở cửa sổ biên tập chương trình ương trìnhng trình, MapBasic sẽ t đ ng thêmực tập S ột bài báo cáo không thể trình bày hết
ph n m r ng cho tên file là.mbần Nó làm cho tự động hóa ở cửa sổ biên tập chương trình ột bài báo cáo không thể trình bày hết
Ch n m c Project -> Compile đ d ch chọai của MapInfo Điều này có nghĩa là, với ụng trong đợt thực tập S ể mở cửa sổ biên tập chương trình ịch chư ư ng trình Chơng trình ư ng trình đã đơng trình ược, chúng ta có thể tham khảo qua tài liệu c
d ch có ph n m r ng cho tên file là.mbxịch chư ần Nó làm cho tự động hóa ở cửa sổ biên tập chương trình ột bài báo cáo không thể trình bày hết
b Ch y ch ạng ương trình tuyến tính ng trình MapBasic:
Trong Mapinfo, ch n m c Run MapBasic Program M t c a s h i thoaiọai của MapInfo Điều này có nghĩa là, với ụng trong đợt thực tập S ột bài báo cáo không thể trình bày hết ửa sổ biên tập chương trình ổ biên tập chương trình ột bài báo cáo không thể trình bày hết
sẽ xu t hi n đ b n ch n file mbx đ ch y chấp New để mở cửa sổ biên tập chương trình ệnh MapBasic ể mở cửa sổ biên tập chương trình ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ọai của MapInfo Điều này có nghĩa là, với ể mở cửa sổ biên tập chương trình ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ương trìnhng trình
Chú ý: (1)- Sau bư c 2, n u b n Compile ngay chới Visual Basic, để có thể trình bày các ết các dòng lệnh MapBasic ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ương trìnhng trình thì MapBasic sẽyêu c u b n đ t tên cho file chần Nó làm cho tự động hóa ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ặc sắc của nó, như: ư ng trình N u đã đơng trình ết các dòng lệnh MapBasic ược, chúng ta có thể tham khảo qua tài liệu c đ t tên trặc sắc của nó, như: ưới Visual Basic, để có thể trình bày cácc đó thìMapBasic sẽ yêu c u b n Save file chần Nó làm cho tự động hóa ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ư ng trình, r i nó m i compile cho b n ơng trình ! ới Visual Basic, để có thể trình bày các ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa
(2)- Sau bư c Save, n u b n ch n m c Project -> Run thì MapInfo tới Visual Basic, để có thể trình bày các ết các dòng lệnh MapBasic ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ọai của MapInfo Điều này có nghĩa là, với ụng trong đợt thực tập S ực tập S
đ ng m ra đ ch y chột bài báo cáo không thể trình bày hết ở cửa sổ biên tập chương trình ể mở cửa sổ biên tập chương trình ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ương trìnhng trình MapBasic
Víd : bụng trong đợt thực tập S ở cửa sổ biên tập chương trình ư c 2, b n vi t dòng l nh MapBasic sau đây: ới Visual Basic, để có thể trình bày các ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ết các dòng lệnh MapBasic ệnh MapBasic
Note "Welcome to MapBasic!"
Trang 30Và ghi vào file v i tên: WELCOME.MBới Visual Basic, để có thể trình bày các
Thì sau khi file WELCOME.mb được, chúng ta có thể tham khảo qua tài liệu c d ch sẽ có file WELCOME.MBXịch chư
Và b n ch n file.mbx đ Run là WELCOME.MBXạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ọai của MapInfo Điều này có nghĩa là, với ể mở cửa sổ biên tập chương trình
c Liên k t các modun đ có m t ch ến dạng ể hiện biến dạng xoay ột tam giác địa động lực ương trình tuyến tính ng trình MapBasic d ng.mbx: ạng
Các file modun là các file MapBasic ch ch a m t ph n c a chỉ giới thiệu ứng dụng trong đợt thực tập S ột bài báo cáo không thể trình bày hết ần Nó làm cho tự động hóa ủa tác giả ương trìnhng trình, ví
d trong n i dung c a nó có Declare Sub m t th t c nào đó có tên là A, nh ngụng trong đợt thực tập S ột bài báo cáo không thể trình bày hết ủa tác giả ột bài báo cáo không thể trình bày hết ủa tác giả ụng trong đợt thực tập S ưtrong n i dung c a nó b n chột bài báo cáo không thể trình bày hết ủa tác giả ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ưa m th t c A là ở cửa sổ biên tập chương trình ủa tác giả ụng trong đợt thực tập S
Nh p New đ m c a s biên t p chấp New để mở cửa sổ biên tập chương trình ể mở cửa sổ biên tập chương trình ở cửa sổ biên tập chương trình ửa sổ biên tập chương trình ổ biên tập chương trình ập chương trình ư ng trìnhơng trình
Trong c a s Edit vi t đo n chửa sổ biên tập chương trình ổ biên tập chương trình ết các dòng lệnh MapBasic ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ư ng trìng sau: ơng trình
[LINK]
Application=textbox.mbxModulee=textbox.mboModulee=auto_lib.mbo(Gi s b n đã có trên đĩa 3 file textbox.mbx và textbox.mbo và auto_lib.mbo)ảo qua tài liệu ửa sổ biên tập chương trình ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa
Ch n File > Save V i ph n m r ng là.mbP (MapBasic Project)ọai của MapInfo Điều này có nghĩa là, với ới Visual Basic, để có thể trình bày các ần Nó làm cho tự động hóa ở cửa sổ biên tập chương trình ột bài báo cáo không thể trình bày hết
Ch n File > Closeọai của MapInfo Điều này có nghĩa là, với
Ch n Project > Select Project File đ ch n file.mbPọai của MapInfo Điều này có nghĩa là, với ể mở cửa sổ biên tập chương trình ọai của MapInfo Điều này có nghĩa là, với
Ch n Project > Link Current Project đ d ch file MBP này thành.mbX ọai của MapInfo Điều này có nghĩa là, với ể mở cửa sổ biên tập chương trình ịch chư
e Tên file và ki u file c a MapBasic: ể hiện biến dạng xoay ủa định thức
Có các l ai t p tin sau đây: ọai của MapInfo Điều này có nghĩa là, với ập chương trình
erros.doc là t p tin text, nó listing các mã l i c a t p tinập chương trình ỗi của tập tin ủa tác giả ập chương trình
mapbasic.exe là t p tin ch y môi trập chương trình ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ường MapInfo MapBasicng Basic
Trang 31mapbasic.def là t p tin include, nó ch a các mã đ nh nghĩa chu n ập chương trình ứng dụng trong đợt thực tập S ịch chư ẩn, và nó rất gần
Menu.def là t p tin include, nó ch a các mã chu n liên quan v i menu ập chương trình ứng dụng trong đợt thực tập S ẩn, và nó rất gần ới Visual Basic, để có thể trình bày cácIcons.def là t p tin include, nó ch a các mã chu n liên quan v i con trập chương trình ứng dụng trong đợt thực tập S ẩn, và nó rất gần ới Visual Basic, để có thể trình bày các ỏchu t ột bài báo cáo không thể trình bày hết
Mapbasic.hlp là t p tin help on-line (giúp đ tr c tuy n)ập chương trình ỡ trực tuyến) ực tập S ết các dòng lệnh MapBasic
Mapbasic.h là t p tin header c a C/C++, có n i dung tập chương trình ủa tác giả ột bài báo cáo không thể trình bày hết ơng trìnhng t t i nó ực tập S ới Visual Basic, để có thể trình bày cácMapbasic.def t p tin tập chương trình ư ng t mapbasic.def trên, nhơng trình ực tập S ưng dùng cú pháp
c a C/C++ủa tác giả
Mapbasic.bas là t p tin header c a Visual Basic, có n i dung tập chương trình ủa tác giả ột bài báo cáo không thể trình bày hết ương trìnhng tực tập S
t i nó ới Visual Basic, để có thể trình bày các
Mapbasic.def t p tin tập chương trình ơng trìnhng t mapbasic.def trên, nh ng dùng cú pháp c aực tập S ư ủa tác giả Visual Basic
Mapbasic65.isu t p tin c n cho uninstall MapBasicập chương trình ần Nó làm cho tự động hóa
Mbres650.DLL là t p tin thập chương trình vi n đ ng ch a tài nguyên g m chu i vàệnh MapBasic ột bài báo cáo không thể trình bày hết ứng dụng trong đợt thực tập S ! ỗi của tập tin
h p tho iột bài báo cáo không thể trình bày hết ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa
Milib650.DLL là ph n c a software, ch a các mã th c hi n đần Nó làm cho tự động hóa ủa tác giả ứng dụng trong đợt thực tập S ực tập S ệnh MapBasic ược, chúng ta có thể tham khảo qua tài liệu c
Papersize.def là t p tin include c a MB, ch a các l nh liên quan đ nập chương trình ủa tác giả ứng dụng trong đợt thực tập S ệnh MapBasic ết các dòng lệnh MapBasic
đi u khi n in c a MapBasicều lần Nó làm cho tự động hóa ể mở cửa sổ biên tập chương trình ủa tác giả
Errors.doc t p tin text listing các mã l i c a MapBasicập chương trình ỗi của tập tin ủa tác giả
Usrinfrnb.log ch a nh t ký c a quá trình cài đ tứng dụng trong đợt thực tập S ập chương trình ủa tác giả ặc sắc của nó, như:
Samples là thư m c ch a các chụng trong đợt thực tập S ứng dụng trong đợt thực tập S ương trìnhng trình ví d c a các file.mb và.mbpụng trong đợt thực tập S ủa tác giả
f C a s MapBasic trong màn hình MapInfo ửa sổ MapBasic trong màn hình MapInfo ổ MapBasic trong màn hình MapInfo
Khi b n nh p Choose Options > Show MapBasic Window thì m t c a sạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ấp New để mở cửa sổ biên tập chương trình ột bài báo cáo không thể trình bày hết ửa sổ biên tập chương trình ổ biên tập chương trìnhMapBasic xu t hi n bên dấp New để mở cửa sổ biên tập chương trình ệnh MapBasic ưới Visual Basic, để có thể trình bày cáci màn hình MapInfo
B n có th l i d ng c a s này đ h c h i v MapBasic r t nhanh B i vì h uạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ể mở cửa sổ biên tập chương trình ợc, chúng ta có thể tham khảo qua tài liệu ụng trong đợt thực tập S ửa sổ biên tập chương trình ổ biên tập chương trình ể mở cửa sổ biên tập chương trình ọai của MapInfo Điều này có nghĩa là, với ỏ ều lần Nó làm cho tự động hóa ấp New để mở cửa sổ biên tập chương trình ở cửa sổ biên tập chương trình ần Nó làm cho tự động hóanhư nh ng thao tác c a b n v i MapInfo đ u tủa tác giả ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ới Visual Basic, để có thể trình bày các ều lần Nó làm cho tự động hóa ương trìnhng ng v i các dòng l nhứng dụng trong đợt thực tập S ới Visual Basic, để có thể trình bày các ệnh MapBasicMapBasic hi n ra ngay sau khi b n th c hi n nh ng thao tác đó Đó cũng làệnh MapBasic ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ực tập S ệnh MapBasiccách đ b n vi t chể mở cửa sổ biên tập chương trình ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ết các dòng lệnh MapBasic ương trìnhng trình MapBasic được, chúng ta có thể tham khảo qua tài liệu c nhanh h n (b ng cách copy vàơng trình ằng MapInfo trở nên thươngpaste nh ng đo n l nh MapBasic hi n ra trong c a s này vào chạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ệnh MapBasic ệnh MapBasic ửa sổ biên tập chương trình ổ biên tập chương trình ư ng trìnhơng trìnhMapBasic đang so n c a b n) ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ủa tác giả ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa
Trang 32C a s này còn có m t vài công d ng khác sẽ đửa sổ biên tập chương trình ổ biên tập chương trình ột bài báo cáo không thể trình bày hết ụng trong đợt thực tập S ược, chúng ta có thể tham khảo qua tài liệu c trình bày ph n sau ở cửa sổ biên tập chương trình ần Nó làm cho tự động hóa
g Tìm l i khi biên t p ch ỗi khi biên tập ch ập trình MapBasic cho Hệ thống thông ương trình tuyến tính ng trình
N u chết các dòng lệnh MapBasic ư ng trình b n có l i cú pháp thì khi compile chơng trình ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ỗi của tập tin ương trìnhng trình,Mapbasic sẽ báo l i ỗi của tập tin
Ví d đo n mã l nh sau đây có l i: ụng trong đợt thực tập S ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ệnh MapBasic ỗi của tập tin
Dim x as string
For x=1 to 10
note str$(x)next
End Sub
và b n ghi file chạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ương trìnhng trình v i tên: first.mb Thì khi compile chới Visual Basic, để có thể trình bày các ương trìnhng trình,
b n sẽ b báo l i: ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ịch chư ỗi của tập tin
first.mb: 4: Loop control variable not numeric
N u b n nh p đúp vào first.mb: 4 thì con tr sẽ nháy dòng For và báo choết các dòng lệnh MapBasic ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ấp New để mở cửa sổ biên tập chương trình ỏ ở cửa sổ biên tập chương trình
b n bi t l i là bi n đi u khi n không ph i ki u numeric B n cũng có thạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ết các dòng lệnh MapBasic ỗi của tập tin ết các dòng lệnh MapBasic ều lần Nó làm cho tự động hóa ể mở cửa sổ biên tập chương trình ảo qua tài liệu ể mở cửa sổ biên tập chương trình ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ể mở cửa sổ biên tập chương trình
nh p vào Search > Goto line, r i gõ giá tr 4 trong h p Goto line number đ tìmấp New để mở cửa sổ biên tập chương trình ! ịch chư ột bài báo cáo không thể trình bày hết ể mở cửa sổ biên tập chương trình
đ n dòng có l iết các dòng lệnh MapBasic ỗi của tập tin
h M t vài l nh c b n ột tam giác địa động lực ệ thống thông ơng trình tuyến tính ảo
Nhìn chung ngôn ng MapBasic tương trìnhng đ i gi ng v i Visual Basic, đ cóối giống với Visual Basic, để có thể trình bày các ối giống với Visual Basic, để có thể trình bày các ới Visual Basic, để có thể trình bày các ể mở cửa sổ biên tập chương trình
th trình bày các hàm, các câu l nh trong MapBasic thì trong m t bài báo cáoể mở cửa sổ biên tập chương trình ệnh MapBasic ột bài báo cáo không thể trình bày hết không th trình bày h t để mở cửa sổ biên tập chương trình ết các dòng lệnh MapBasic ược, chúng ta có thể tham khảo qua tài liệu c, chúng ta có th tham kh o qua tài ể mở cửa sổ biên tập chương trình ảo qua tài liệu li u ệnh MapBasic L p ập trình MapBasic cho Hệ thống thông trình MapBasic cho H th ng thông tin đ a lý GIS MapInfo ệ thống thông ống thông ịa lý GIS MapInfo c a tác gi ủa tác giả ảo qua tài liệu GS TSKH Tr n Văn Đ c ần Văn Đắc ắc Chúng em ch gi i thi u m t s l nh vẽ c b n đã đỉ giới thiệu ới Visual Basic, để có thể trình bày các ệnh MapBasic ột bài báo cáo không thể trình bày hết ối giống với Visual Basic, để có thể trình bày các ệnh MapBasic ơng trình ảo qua tài liệu ược, chúng ta có thể tham khảo qua tài liệu c
ng d ng trong đ t th c t p S
ứng dụng trong đợt thực tập S ụng trong đợt thực tập S ợc, chúng ta có thể tham khảo qua tài liệu ực tập S ập chương trình
1 L nh vẽ đi m Create Point ệ thống thông ể hiện biến dạng xoay
Trang 33Create Point (1000000, 3000000)
Symbol MakeSymbol (34, Reb, 18)
34 là ki u ký hi u, Red là màu ký hi u, 18 là kích thể mở cửa sổ biên tập chương trình ệnh MapBasic ệnh MapBasic ưới Visual Basic, để có thể trình bày các ủa tác giả c c a ký hi u ệnh MapBasic
2 L nh vẽ đ ệ thống thông ường CreateLine ng CreateLine
Create Line (x1, y1) (x2, y2)
[ Pen ]
Trong đó (x1, y1) là t a đ đi m đ u đo n, (x2, y2) là đi m cu i c a ọai của MapInfo Điều này có nghĩa là, với ột bài báo cáo không thể trình bày hết ể mở cửa sổ biên tập chương trình ần Nó làm cho tự động hóa ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa ể mở cửa sổ biên tập chương trình ối giống với Visual Basic, để có thể trình bày các ủa tác giả
đo n ạnh của MapInfo lên nhiều lần Nó làm cho tự động hóa
[Pen] là ki u để mở cửa sổ biên tập chương trình ường MapInfo MapBasicng, màu đường MapInfo MapBasicng, đ r ng đột bài báo cáo không thể trình bày hết ột bài báo cáo không thể trình bày hết ường MapInfo MapBasicng
Ví d : ụng trong đợt thực tập S
Create Line (73 5, 42.6) (73 67, 42.9)
Pen MakePen(1, 2, BLACK)
Ngoài ra còn có các l nh vẽ đa giác ệnh MapBasic Create Region, vẽ cung tròn Create Arc, Create Object… chúng ta có th tham kh o ể mở cửa sổ biên tập chương trình ảo qua tài liệu ph n Help c a MapBasicần Nó làm cho tự động hóa ủa tác giả
2.2 XÂY D NG CH ỰC TẾ TRONG VIỆC LỰA CHỌN ĐỀ TÀI ƯƠNG I : NG TRÌNH
2.2.1 T NG QUAN V XÂY D NG CH ỔNG QUAN VỀ PHẦN MỀM MAPINFO Ề ỰC TẾ TRONG VIỆC LỰA CHỌN ĐỀ TÀI ƯƠNG I : NG TRÌNH
Để xây dựng chương trình tính biến dạng xoay trong một tam giác địa độnglực này trước tiên ta cần xác định các dữ liệu đầu vào và dữ liệu đầu ra Ở đây dữliệu đầu vào của chương trình là file số liệu là một file Excel có chứa các dữ liệu vềcác điểm đo tốc độ dịch chuyển trong đó tại mỗi điểm có chứa các thông số tọa độ,vận tốc dịch chuyển theo phương Bắc và Đông, sai số vận tốc dịch chuyển (Hình3.3) Và thêm một file đầu vào nữa là file Excel chứa dữ liệu chọn tam giác (Hình3.4), file chọn tam giác này do người sử dụng tự chọn để tính biến dạng cho nhữngtam giác trong lưới đo một cách trực quan nhất
Trong hình 3.3 là một ví dụ về file số liệu đầu vào để tính biến dạng, file nàylấy số liệu từ bảng “ Vận tốc chuyển dịch tuyệt đối của các điểm đo GPS trong khuvực nghiên cứu tính biến dạng trong tài liệu luận văn tiến sĩ “BIẾN DẠNG KIẾNTẠO HIỆN ĐẠI KHU VỰC BIỂN ĐÔNG VIỆT NAM THEO SỐ LIỆU DỊCH
CHUYỂN GPS” của nghiên cứu sinh Nguyễn Văn Hướng tại Phòng Địa Động Lực – Viện Địa Chất.
Trang 34Trong hình 3.4 là file chọn tam giác địa động lực cho tính biến dạng, File nàygồm các trường đó là tên tam giác (tên này sẽ được thể hiện tại trọng tâm của tamgiác) và 3 trường là số ký hiệu của 3 đỉnh tam giác, mỗi trường là một ký hiệu chomột điểm của tam giác được chọn Ký hiệu này là số thứ tự trong file Excel của fileđầu vào cho tính toán biến dạng Các con số ký hiệu ở 3 trường này là không được
trùng nhau.Ví dụ như tại file chọn tam giác, tam giác có tên TG_01 sẽ là 3 điểm BLV1, DOHO,KUNM trong file số liệu đầu vào tạo thành 2,4,7 là ký hiệu trong 3 trường của file chọn tam giác là số thứ tự của 3 điểm BLV1, DOHO, KUNM trong
file số liệu đầu vào
Trang 35Tên điểm đo Kinh đột tam giác địa động lực.
Vỹ đột tam giác địa động lực.
V n tốc chuyển dịch ận với một số
theo hướng Đông
V n tốc chuyển dịch ận với một số
theo hướng Bắc
Sai số V n tốc chuyển dịch ận với một số theo hướng Đông,Bắc
Hình 2.3: File đầu vào theo số liệu GPS Biển Đông
Trang 36Tên tam giác chọn 3 đỉnh của tam giác được ký hi u là số thứ ệm
tự của điểm đo trong file đầu vào
Hình 2.4: File chọn tam giác địa động lực
Để tính biến dạng xoay trong một tam giác địa động lực theo công thức(1.14) thì ta phải làm tuần tự các bước như trong mục 1.1.2.2(Chương 1) Trong xâydựng chương trình thì đầu tiên chương trình cần phải đọc hiểu được dữ liệu trongfile đầu vào (Hình 2.3) và kết quả đầu ra là một file kết quả cho ta biết được giá trịbiến dạng xoay và sai số của nó trong từng tam giác Kết quả này được ghi vào một
file có định dạng “.txt “ Các thuật toán sẽ được chỉ rõ ở mục 2.2.2 (Chương 2) và
cách sử dụng và giao diện của chương trình được chỉ rõ tại chương 3 của đồ án
Trang 37Bắt đầu
Nh p dữ li u từ file Excel ận với một số ệm
Yes/No Hiển thị lưới tốc đ chuyển dịchột tam giác địa động lực.
No
Hiển thị lưới điểm đo
Nh p dữ li u chọn tam giác ận với một số ệm
Tính
Tính sai số
Hiển thị ký hi u biến dạng xoay ệm
Kết thúc
2.2.2 THUẬT TOÁN TRONG XÂY DỰNG CHƯƠNG TRÌNH
Chương trình được xây dựng sử dụng cho tính biến dạng xoay trong một tamgiác địa động lực được thực hiện bằng thuật toán tổng hợp như sau (Hình 2.5) :
Hình 2.5: Minh họa thuật toán chương trình
Dưới đây là những thuật toán chi tiết trong chương trình :
Trang 382.2.2.1 Thuật toán lấy dữ liệu và hiển thị điểm lưới đo
Thuật toán này có thể mô tả như sau : Trước tiên ta có một khai báo một biến
có cấu trúc DI() có dạng cấu trúc tên là Diem có cách khai báo như sau:
Global DI() as Diem
Trong này có chứa các biến x,y,vx,vy,svx,svy có nghĩa lần lượt là các biến lưu
kinh độ, vĩ độ, vận tốc dịch chuyển theo hướng Đông, vận tốc chuyển dịch theohướng Bắc bản đồ, sai số vận tốc dịch chuyển theo hướng Đông, Bắc bản đồ.Biến
DI() này sẽ lưu dữ liệu từ file Excel số liệu có chứa nhưng thông tin trên (Hình 2.3), dữ liệu được lấy lần lượt theo hàng và DI(i) với i tương ứng là số hàng lưu trên DI() cho tới khi kết thúc file số liệu thì thôi:
Dim awin as integer
Dim tenlop as String
awin=frontwindow()
tenlop=LayerInfo(awin,1,LAYER_INFO_NAME)
if tenlop<>"Cosmetic1" then
Set Coordsys table tenlop
Set Map Layer 1 Editable on
else
tenlop=LayerInfo(1,2,LAYER_INFO_NAME)
Set Coordsys table tenlop
Set Map Layer 2 Editable on
End if
Dim i as integer
i=1
Redim DI(i)
Open table "C:\BienDang.Tab"
Fetch First From BienDang