Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 107 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
107
Dung lượng
718,86 KB
Nội dung
Bộ giáo dục đào tạo Trờng đại học mỏ - địa chất Vũ văn đoàn áp dụng hàm số phức vào việc tính tọa độ vuông góc phẳng theo phép chiếu hình trụ ngang giữ góc Luận văn thạc sĩ kỹ thuật Hà nội - 2009 Bộ giáo dục đào tạo Trờng đại học mỏ - địa chất Vũ văn đoàn áp dụng hàm số phức vào việc tính tọa độ vuông góc phẳng theo phép chiếu hình trụ ngang giữ góc Chuyên ngành: Kỹ thuật trắc địa Mà số: 60.52.85 Luận văn thạc sĩ kỹ thuật Ngời hớng dẫn khoa học pgs.ts Đỗ Ngọc Đờng Hà nội - 2009 Lời cam đoan Tôi xin cam đoan công trình nghiên cứu riêng Các số liệu, kết luận văn trung thực cha đợc công bố công trình khác Tác giả đề tài Vũ Văn Đoàn Mục lục Nội dung Chơng 1: 1.1 1.2 1.3 Ch−¬ng 2: 2.1 2.2 2.3 Ch−¬ng 3: 3.1 3.2 3.3 3.4 Ch−¬ng 4: 4.1 4.2 4.3 Trang Trang bìa phụ Lời cam đoan Mục lục Danh mục bảng, biểu Manh mục hình vẽ, đồ thị Mở đầu 11 hệ toạ độ thờng dùng Trong trắc địa Khái niệm chung hình dạng Trái đất mặt quy 11 chiếu 18 Các hệ tọa độ thờng dùng trắc địa 30 Các hệ tọa độ dùng Việt Nam tính toạ độ vuông góc phẳng theo phép 36 chiếu hình trụ ngang giữ góc dùng hàm số mũ Khái quát chung phép chiếu hình đồ Phép chiếu hình trụ ngang giữ góc dùng Việt Nam Tính tọa độ vuông góc phẳng theo phép chiếu hình trụ ngang giữ góc dùng hàm số mũ tính toạ độ vuông góc phẳng theo phép chiếu hình trụ ngang giữ góc dùng hàm số phức Cơ sở toán học xây dựng công thức Công thức hàm số phức cho phép chiếu Gauss-Kruger tính thuận Công thức hàm số phức cho phép chiếu Gauss-Kruger tính ngợc Dạng hàm phức công thức tỉ lệ chiếu góc hội tụ kinh tuyến thực nghiệm tính toạ độ vuông góc phẳng Giới thiệu chơng trình tính Tính toán thực nghiệm So sánh kết thực nghiệm Kết luận kiến nghị Danh mục công trình công bố tác giả tài liƯu tham kh¶o Phơ lơc 36 40 54 62 62 62 64 66 68 68 71 77 83 84 85 86 Danh mục bảng, biểu Trang Bảng 1.1: Một số Ellipsoid trái đất đợc hiệp hội trắc địa cao cấp 14 giới công bố Bảng 1.2: Kích th−íc c¸c Ellipsoid quy chiÕu dïng ë ViƯt Nam 15 Bảng 2.1: Phân bố tỉ lệ chiếu độ biến dạng chiều dài múi 53 chiếu Bảng 4.1: Kết tính tọa độ vuông góc phẳng dùng hàm phøc theo 71 phÐp chiÕu Gauss-Kruger B¶ng 4.2: KÕt qu¶ tính tọa độ vuông góc phẳng dùng hàm số mũ theo 72 phÐp chiÕu Gauss-Kruger B¶ng 4.3: KÕt qu¶ tÝnh tọa độ vuông góc phẳng phần mềm 72 Geotools 1.2 theo phÐp chiÕu Gauss-Kruger B¶ng 4.4: KÕt qu¶ tÝnh tọa độ trắc địa từ tọa độ vuông góc phẳng dùng 73 hàm số phức theo phép chiếu Gauss-Kruger Bảng 4.5: Kết tính tọa độ vuông góc phẳng dùng hµm sè phøc theo 73 phÐp chiÕu UTM cho mói chiếu 30 Bảng 4.6: Kết tính tọa độ vuông góc phẳng dùng hàm số mũ theo 74 phép chiếu UTM cho mói chiÕu 30 B¶ng 4.7: KÕt qu¶ tÝnh tọa độ vuông góc phẳng phần mềm 74 Geotools 1.2 theo phÐp chiÕu UTM cho mói chiÕu 30 B¶ng 4.8: Kết tính tọa độ trắc địa từ tọa độ vuông góc phẳng dùng 74 hàm số phức theo phÐp chiÕu UTM cho mói chiÕu 30 B¶ng 4.9: KÕt tính tọa độ vuông góc phẳng dùng hàm số phøc theo 75 phÐp chiÕu UTM cho mói chiÕu 60 Bảng 4.10: Kết tính tọa độ vuông góc phẳng dïng hµm sè mị theo 75 phÐp chiÕu UTM cho múi chiếu 60 Danh mục bảng, biểu Trang Bảng 4.11: Kết tính tọa độ vuông góc phẳng b»ng phÇn mỊm 76 Geotools 1.2 theo phÐp chiÕu UTM cho mói chiÕu 60 B¶ng 4.12: KÕt qu¶ tÝnh täa độ vuông góc phẳng dùng hàm số phức theo 76 phÐp chiÕu UTM cho mói chiÕu 60 B¶ng 4.13: So sánh kết tính thuận tính ngợc dùng hàm số 77 phức theo phép chiếu Gauss-Kruger Bảng 4.14: So sánh kết tính tọa độ vuông góc phẳng dïng hµm 77 sè phøc vµ hµm sè mị theo phép chiếu Gauss-Kruger Bảng 4.15: So sánh kết tính tọa độ vuông góc phẳng dùng hàm 78 số phức dùng phần mềm Geotools 1.2 theo phép chiếu Gauss-Kruger Bảng 4.16: So sánh kết tính thuận tính ngợc dùng hàm số 79 phức theo phÐp chiÕu UTM cho mói chiÕu 30 B¶ng 4.17: So sánh kết tính tọa độ vuông góc phẳng dïng hµm 79 sè phøc vµ hµm sè mị theo phÐp chiÕu UTM cho mói chiÕu 30 B¶ng 4.18: So sánh kết tính tọa độ vuông góc phẳng dùng hàm 79 số phức dùng phần mềm Geotools 1.2 theo phÐp chiÕu UTM cho mói chiÕu 30 B¶ng 4.19: So sánh kết tính thuận tính ngợc dïng hµm sè 80 phøc theo phÐp chiÕu UTM cho múi chiếu 60 Bảng 4.20: So sánh kết tính tọa độ vuông góc phẳng dùng hàm 81 sè phøc vµ hµm sè mị theo phÐp chiÕu UTM cho múi chiếu 60 Bảng 4.21: So sánh kết tính tọa độ vuông góc phẳng dùng hàm 81 số phức dùng phần mềm Geotools 1.2 theo phép chiÕu UTM cho mói chiÕu 60 Danh mơc c¸c hình vẽ, đồ thị Hình 1.1: Ellipsoid trái đất Trang 16 Hình 1.2: Hệ toạ độ thiên văn 19 Hình 1.3: Hệ tọa độ trắc địa 20 Hình 1.4: Hệ tọa độ vuông góc thẳng không gian 22 Hình 1.5: Hệ tọa độ địa diện xích đạo 23 Hình 1.6: Hệ toạ độ địa diện chân trời 24 Hình 1.7: Tam giác định vị 25 Hình 1.8: Hình chiếu điểm xét theo phơng pháp tuyến 28 Ellipsoid Hình 1.9: Ellipsoid kinh tuyÕn 29 H×nh 2.1: PhÐp chiÕu h×nh trụ đứng 39 Hình 2.2: Phép chiếu hình trụ ngang 39 Hình 2.3: Biểu thị yếu tố từ Ellipsoid lên mặt phẳng 41 Hình 2.4: Phép chiếu Gauss-Kruger 46 Hình 2.5: Hệ tọa độ phẳng phép chiếu Gauss-Kruger 47 Hình 2.6: Các công thức cần xây dựng phÐp chiÕu Gauss-Kruger 48 H×nh 2.7: PhÐp chiÕu UTM 50 Hình 2.8: Hệ tọa độ vuông góc phẳng x,y phép chiếu UTM 51 Hình 2.9: Quan hệ hệ tọa độ trắc địa hệ tọa độ phẳng 54 Hình 4.1: Giao diện chơng trình 68 Hình 4.2: Thuật toán chơng trình tính đổi tọa độ 69 Hình 4.3: Giao diƯn tÝnh täa ®é BL sang xy 70 Hình 4.4: Giao diện tính tọa độ xy sang BL 70 Mở Đầu Tính cấp thiết đề tài Một mục tiêu quan trọng công tác trắc địa xác định tọa độ điểm mặt đất hệ tọa độ định Để thuận tiện cho việc nghiên cứu nh sử dụng tài liệu trắc địa, ngời ta thờng xác định tọa độ điểm mặt ®Êt theo c¸c hƯ täa ®é kh¸c nh−: hƯ tọa độ trắc địa, hệ tọa độ vuông góc thẳng không gian, hệ tọa độ vuông góc phẳngMỗi hệ tọa độ có đặc điểm phạm vi ứng dụng khác Trong hệ tọa độ đó, hệ tọa độ trắc địa (B,L,H) hệ tọa độ vuông góc phẳng (x,y) hai hệ tọa độ đợc dùng phổ biến Hệ tọa độ trắc địa đợc sử dụng phổ biến nghiên cứu hình dạng kích thớc trái đất hệ tọa độ vuông góc phẳng đợc ứng dụng rộng rÃi tất dạng công tác trắc địa ứng dụng nh: thành lập đồ, xây dựng công trình công nghiệp, thành phố, quốc phòng Vì vậy, việc tính đổi tọa độ trắc địa thành tọa độ vuông góc phẳng công việc quan trọng thờng xuyên trắc địa Trong tất công thức tính tọa độ vuông góc phẳng theo lới chiếu hình trụ ngang giữ góc dùng đợc xây dựng sở khai triển hàm số mũ theo chuỗi Taylor hiệu độ kinh liên quan đến hoành độ Các công thức biểu diễn hàm mũ có u điểm dễ biểu diễn trực quan, nhng có hạn chế điểm khởi tính đạo hàm, số lợng số hạng, tốc độ hội tụ nh số d chuỗi độ xác phụ thuộc vào độ rộng múi chiếu Hàm phức có nhiều điểm mạnh, phép chiếu giữ góc dùng hàm phức có nhiều u điểm Vấn đề đà đợc Schuhr giới thiệu; Bowring cịng dïng hµm phøc chøng minh cho phÐp chiÕu Macato đứng, nhng phải tính lặp tính chiều dài cung kinh tuyến làm cho trình tính phức tạp; Klotz dựa sở toán học đà đề nhóm công thức khắc phục đợc nhợc điểm Việt Nam báo cáo [6] giới thiệu công thức hàm phức để tính tọa độ vuông góc phẳng công thức giới thiệu tóm tắt theo lí thuyết, ca ngợi u điểm nhng lại thiếu bớc tính cụ thể Nhằm góp phần nghiên cứu khẳng định sở khoa học, đem lại hiệu áp dụng vào việc tính toạ độ vuông góc phẳng, chọn đề tài: áp dụng hàm số phức vào việc tính tọa độ vuông góc phẳng theo phép chiếu hình trụ ngang giữ góc Trong đề tài tổng hợp kết nghiên cứu đà có hoàn thiện nhóm công thức với bớc tính cụ thể để áp dụng cho phép chiếu giữ góc Gauss-Kruger tất nhiên áp dụng đợc cho phép chiếu UTM Mục đích đề tài - Tìm hiểu kĩ phép chiếu tọa độ vuông góc phẳng - Nghiên cứu công thức - Tính toán, so sánh công thức cũ công thức để rút nhận xét khoa học ứng dụng - Góp phần vào công tác giảng dạy trắc địa mặt cầu - Xây dựng quy trình tính áp dụng vào sản xuất Đối tợng phạm vi nghiên cứu Nghiên cứu công thức tính tọa độ vuông góc phẳng dùng hàm số phức phép hình trụ ngang giữ góc Nội dung đề tài Để đạt đợc mục tiêu đề ra, luận văn cần tập trung vào nội dung sau: Các hệ tọa độ thờng dùng trắc địa Vai trò hệ tọa độ vuông góc phẳng - Phép chiếu hình đồ hệ tọa độ vuông góc phẳng (xy) tính theo phơng pháp truyền thống - Công thức tính tọa độ vuông góc phẳng (xy) theo hàm số phức - Tính toán, so sánh kết hai loại công thức - Kết luận kiến nghị việc áp dụng công thức luận văn, giới thiệu chơng trình tính tọa độ vuông góc phẳng (xy) theo công thức Phơng pháp nghiên cứu Luận văn sử dụng phơng pháp nghiên cứu sau: - Phơng pháp thống kê: Thu thập, tổng hợp xử lý thông tin, tài liệu liên quan; - Phơng pháp phân tích: Tổng hợp, xử lý logic tài liệu, giải vấn đề đặt ra; - Phơng pháp so sánh: Đối chiếu kết nghiên cứu với với thực tiễn sản xuất để đa nhận xét khoa học øng dơng ý nghÜa khoa häc vµ thùc tiƠn - Chứng thực cách tính tọa độ vuông góc phẳng đơn giản hiệu - Góp phần làm phong phú hiểu biết phép chiếu giữ góc ứng dụng trắc địa - Góp phần có cách tính giảng dạy sản xuất cách tính tọa độ vuông góc phẳng Cấu trúc luận văn Luận văn dài 86 trang đánh máy, 24 bảng biểu, 22 hình vẽ, 10 tài liệu tham khảo bao gồm phần mở đầu, bốn chơng phần kết luận kiến nghị If OptUTM.Value = True And CboMuichieu.Text = "3*" Then Print #2, " PhÐp chiÕu UTM 3*" If OptUTM.Value = True And CboMuichieu.Text = "6*" Then Print #2, " PhÐp chiÕu UTM 6*" If OptGauss.Value = True Then Print #2, " PhÐp chiÕu Gauss " Print #2, " Kinh tuyÕn trung −¬ng " & txtKinhdo.Text Print #2, " *=========ooOOoo=========*", Chr(13) & Chr(10) ProgressBar1.Value = 70 Print #2, " Toạ Độ §iÓm TÝnh ChuyÓn " Print #2, " ***** - " Print #2, " #============================================#" Print #2, " | S | Tên | Toạ Độ Sau Khi TÝnh ChuyÓn |" Print #2, " | T | | o |" Print #2, " | T | §iĨm | X(m) | Y(m) |" Print #2, " |=====|========|==============|==============|" For i = To nxd - If diem(i).x > Then xau1 = Space(9 - Len(Str(Fix(diem(i).x)))) If diem(i).x < Then xau1 = Space(8 - Len(Str(Fix(diem(i).x)))) If diem(i).y > Then xau2 = Space(9 - Len(Str(Fix(diem(i).y)))) If diem(i).y < Then xau2 = Space(8 - Len(Str(Fix(diem(i).y)))) Print #2, " | " & (i + 1) & Space(5 - Len(Str(i + 1))) & "|" _ & diem(i).ten & "|" & xau1 & Format$(diem(i).x, "#0.0000") _ & " |" & xau2 & Format$(diem(i).y, "#0.0000") & " |" Next i Print #2, " *============================================*" & Chr(13) & Chr(10) Print #2, " ooo0ooo ", Chr(13) & Chr(10) Close #2 End Sub Private Sub Command1_Click() On Error Resume Next Dim e2 As Double Dim q As Double Dim a As Double, ai1 As Double, ai2 As Double, ai3 As Double, ai4 As Double, ai5 As Double Dim b As Double, bi1 As Double, bi2 As Double, bi3 As Double, bi4 As Double, bi5 As Double Dim As Double Dim phi As String Dim phii As String Dim z As String, z1 As String, z2 As String, z3 As String, z4 As String Dim Bo As Double, B2 As Double, B4 As Double, B6 As Double, B8 As Double Dim kt As Boolean Call Soluong ReDim diem(nxd) As diem 'Chuyen doi BL sang XY If OptBLXY.Value = True Then 'Doc du lieu dau vao For i = To nxd - diem(i).ten = Trim(Table1.TextMatrix(i + 1, 1)) Next i For i = To nxd - dong = Trim(Table1.TextMatrix(i + 1, 2)) Call TachXau(dong) de = Val(MangXau(0)) mi = Val(MangXau(1)) se = Val(MangXau(2)) diem(i).b = (de + mi / 60# + se / 3600#) * Pi / 180# Next i For i = To nxd - dong = Trim(Table1.TextMatrix(i + 1, 3)) Call TachXau(dong) de = Val(MangXau(0)) mi = Val(MangXau(1)) se = Val(MangXau(2)) diem(i).L = (de + mi / 60# + se / 3600#) * Pi / 180# Next i 'Chon Elipxoid va cac tham so If OptWGS84.Value = True Then aa = 6378137# bb = 6356752.31424783 End If If OptKrasovski.Value = True Then aa = 6378245# bb = 6356863.01877305 End If e2 = 1# - bb * bb / (aa * aa) If OptGauss.Value = True Then mo = 1# If OptUTM.Value = True And Trim(CboMuichieu.Text) = "6*" Then mo = 0.9996 If OptUTM.Value = True And Trim(CboMuichieu.Text) = "3*" Then mo = 0.9999 dong = txtKinhdo.Text TachXau (dong) Lo = Val(MangXau(0)) + Val(MangXau(1)) / 60# Lo = Lo * Pi / 180# 'Tinh cac gia tri trung gian de tinh toan chieu dai cung kinh tuyen Bo = + * e2 / + 45 * e2 ^ / 64 + 175 * e2 ^ / 256 B2 = * e2 / + 15 * e2 ^ / 16 + 525 * e2 ^ / 512 B4 = 15 * e2 ^ / 64 + 105 * e2 ^ / 256 B6 = 35 * e2 ^ / 512 'Tinh toa khong gian For i = To nxd - NN = aa * aa / Sqr(aa * aa * Cos(diem(i).b) * Cos(diem(i).b) + bb * bb * Sin(diem(i).b) * Sin(diem(i).b)) L = diem(i).L - Lo T = Tan(diem(i).b) w = (1 - e2 * Sin(diem(i).b) * Sin(diem(i).b)) / (1 - e2) Xo = aa * (1 - e2) * (Bo * diem(i).b - B2 * Sin(2 * diem(i).b) / + B4 * Sin(4 * diem(i).b) / - B6 * Sin(6 * diem(i).b) / 6) diem(i).x = Xo + NN * Sin(diem(i).b) * Cos(diem(i).b) * L * L / 2# _ + NN * Sin(diem(i).b) * (Cos(diem(i).b)) ^ 3# * (4# * w ^ + w - T ^ 2) * L ^ / 24# s = NN * Sin(diem(i).b) * (L ^ / 720#) * (Cos(diem(i).b)) ^ * (8# * w ^ * (11# - 24# * T ^ 2) - 28# * w ^ * (1# - 6# * T ^ 2) + w ^ * (1# - 32# * T ^ 2) - w * 2# * T ^ + T ^ 4) _ + NN * Sin(diem(i).b) * (L ^ / 40320#) * (Cos(diem(i).b)) ^ * (1385# 3111# * T ^ + 543# * T ^ - T ^ 6) diem(i).x = (diem(i).x + s) * mo diem(i).y = NN * L * Cos(diem(i).b) _ + NN * (L ^ / 6) * (Cos(diem(i).b)) ^ * (w - T ^ 2) s = NN * (L ^ / 120) * (Cos(diem(i).b)) ^ * (4 * w ^ * (1 - * T ^ 2) + w ^ * (1 + * T ^ 2) - * w * T ^ + T ^ 4) _ + NN * (L ^ / 5040) * (Cos(diem(i).b)) ^ * (61 - 479 * T ^ + 179 * T ^ - T ^ 6) diem(i).y = (diem(i).y + s) * mo + 500000 Next i End If 'Option2.Value = True Then 'Chuyen doi XY sang BL If OptXYBL.Value = True Then 'Doc du lieu dau vao For i = To nxd - diem(i).ten = Trim(Table1.TextMatrix(i + 1, 1)) Next i For i = To nxd - dong = Trim(Table1.TextMatrix(i + 1, 2)) Call TachXau(dong) de = Val(MangXau(0)) mi = Val(MangXau(1)) se = Val(MangXau(2)) diem(i).b = (de + mi / 60# + se / 3600#) * Pi / 180# Next i For i = To nxd - dong = Trim(Table1.TextMatrix(i + 1, 3)) Call TachXau(dong) de = Val(MangXau(0)) mi = Val(MangXau(1)) se = Val(MangXau(2)) diem(i).L = (de + mi / 60# + se / 3600#) * Pi / 180# Next i 'Chon Elipxoid va cac tham so If OptWGS84.Value = True Then aa = 6378137# bb = 6356752.31424783 End If If OptKrasovski.Value = True Then aa = 6378245# bb = 6356863.01877305 End If e2 = 1# - bb * bb / (aa * aa) If OptGauss.Value = True Then mo = 1# If OptUTM.Value = True And Trim(CboMuichieu.Text) = "6*" Then mo = 0.9996 If OptUTM.Value = True And Trim(CboMuichieu.Text) = "3*" Then mo = 0.9999 dong = txtKinhdo.Text TachXau (dong) Lo = Val(MangXau(0)) + Val(MangXau(1)) / 60# Lo = Lo * Pi / 180# 'Tinh toa khong gian For i = To nxd - 'NN = aa * aa / Sqr(aa * aa * Cos(diem(i).b) * Cos(diem(i).b) + bb * bb * Sin(diem(i).b) * Sin(diem(i).b)) L = diem(i).L - Lo 'Tinh q=arctanh(sin(B))-e*arctanh(e*sin(B)) q = ATANH(Sin(diem(i).b)) - Sqr(e2) * ATANH(Sqr(e2) * Sin(diem(i).b)) 'w = q & " i" & diem(i).L phi = IMTANH(q, L) a = IMREAL(phi) b = IMAGINARY(phi) phi = IMARCSIN(a, b) 'Tinh phi i a = IMREAL(phi) b = IMAGINARY(phi) Do = a phii = IMSIN(a, b) a = Sqr(e2) * IMREAL(phii) b = Sqr(e2) * IMAGINARY(phii) phii = IMATANH(a, b) a = q + Sqr(e2) * IMREAL(phii) b = L + Sqr(e2) * IMAGINARY(phii) phii = IMTANH(a, b) a = IMREAL(phii) b = IMAGINARY(phii) phii = IMARCSIN(a, b) a = IMREAL(phii) b = IMAGINARY(phii) Loop Until Abs(a - ai) < 10 ^ -12 'Tinh cac gia tri trung gian de tinh toan chieu dai cung kinh tuyen Bo = + * e2 / + 45 * e2 ^ / 64 + 175 * e2 ^ / 256 + 11025 * e2 ^ / 16384 B2 = -3 * e2 / - 15 * e2 ^ / 32 - 525 * e2 ^ / 1024 - 2205 * e2 ^ / 4096 B4 = 15 * e2 ^ / 256 + 105 * e2 ^ / 1024 + 2205 * e2 ^ / 16384 B6 = -35 * e2 ^ / 3072 - 105 * e2 ^ / 4096 B8 = 315 * e2 ^ / 131072 a = IMREAL(phii) b = IMAGINARY(phii) ai1 = Bo * IMREAL(phii) bi1 = Bo * IMAGINARY(phii) z = IMSIN(2 * a, * b) ai2 = B2 * IMREAL(z) bi2 = B2 * IMAGINARY(z) z = IMSIN(4 * a, * b) ai3 = B4 * IMREAL(z) bi3 = B4 * IMAGINARY(z) z = IMSIN(6 * a, * b) ai4 = B6 * IMREAL(z) bi4 = B6 * IMAGINARY(z) z = IMSIN(8 * a, * b) ai5 = B8 * IMREAL(z) bi5 = B8 * IMAGINARY(z) z = aa * (1 - e2) * (ai1 + ai2 + ai3 + ai4 + ai5) & " i" & aa * (1 - e2) * (bi1 + bi2 + bi3 + bi4 + bi5) a = IMREAL(z) b = IMAGINARY(z) diem(i).x = a * mo diem(i).y = b * mo + 500000 Next i End If 'Option2.Value = True Then Call GhiKetQuaRaTep Call mnuxemketqua_Click End Sub Sub Command2_Click() Unload Me End Sub Private Sub Form_Load() Table1.TextMatrix(0, 1) = " Tên điểm " Table1.TextMatrix(0, 2) = " B ( o ' "" )" Table1.TextMatrix(0, 3) = " L ( o ' "" )" End Sub Private Sub mnudocsolieututep_Click() On Error GoTo loi DlgCommonDialog.DialogTitle = "Më tƯp sè liƯu chun ®ỉi BL sang XY ngợc lại" DlgCommonDialog.Filter = "Tệp số liệu (*.SL)|*.SL|" DlgCommonDialog.Filter = DlgCommonDialog.Filter + _ "Tệp văn (*.TXT)|*.TXT|" DlgCommonDialog.Filter = DlgCommonDialog.Filter + _ "TÊt c¶ tƯp ( *.* )|*.*" DlgCommonDialog.FilterIndex = DlgCommonDialog.ShowOpen If DlgCommonDialog.FileName "" Then 'Doc so lieu BLH If OptBLXY.Value = True Then Open DlgCommonDialog.FileName For Input As #1 Input #1, Tenluoi txttenluoi.Text = Tenluoi Input #1, nxd If nxd > Then Table1.Rows = nxd + For i = To nxd Line Input #1, dong Call TachXau(dong) Table1.TextMatrix(i, 0) = i Table1.TextMatrix(i, 1) = MangXau(0) Table1.TextMatrix(i, 2) = MangXau(1) & " " & MangXau(2) & " " & MangXau(3) Table1.TextMatrix(i, 3) = MangXau(4) & " " & MangXau(5) & " " & MangXau(6) Next i Close #1 End If 'Doc so lieu XYZ If OptXYBL.Value = True Then Open DlgCommonDialog.FileName For Input As #1 Input #1, Tenluoi txttenluoi.Text = Tenluoi Input #1, nxd If nxd > Then Table1.Rows = nxd + For i = To nxd Line Input #1, dong Call TachXau(dong) Table1.TextMatrix(i, 0) = i Table1.TextMatrix(i, 1) = MangXau(0) Table1.TextMatrix(i, 2) = MangXau(1) Table1.TextMatrix(i, 3) = MangXau(2) Next i Close #1 End If End If ' if "" Exit Sub loi: Close #1 MsgBox "TÖp sè liệu nhập không định dạng.", vbCritical, "Thông báo lỗi" End Sub Private Sub mnughisolieuratep_Click() On Error Resume Next Dim xau1 As String Dim xau2 As String Dim Tenluoi As String With DlgCommonDialog DialogTitle = "Hép tho¹i l−u tƯp tin " Filter = "TÖp sè liÖu (*.SL)|*.SL|" Filter = Filter + _ "Tệp văn (*.TXT)|*.TXT|" Filter = Filter + _ "TÊt c¶ tƯp ( *.* )|*.*" FilterIndex = FileName = "" ShowSave End With Open DlgCommonDialog.FileName For Output As #1 Tenluoi = txttenluoi.Text Print #1, Tenluoi Print #1, nxd 'Ghi cac diem tinh chuyen For i = To nxd Print #1, Table1.TextMatrix(i, 1), Table1.TextMatrix(i, 2), _ Table1.TextMatrix(i, 3) Next i Close #1 End Sub Private Sub mnutaoluoimoi_Click() Unload Me frmCDBLXY.Show End Sub Private Sub mnuthoat_Click() Unload Me End Sub Private Sub mnuxemketqua_Click() On Error Resume Next sFile = "KQCDBLXY.kq" fMainForm.mnuMotepketqua_Click Me.Visible = False frmD.WindowState = End Sub Private Sub Table1_Compare(ByVal Row1 As Long, ByVal Row2 As Long, Cmp As Integer) End Sub Phô lôc ®æi xy sang BL Option Explicit 'Diem 'Diem Private Type diem ten As String * x As Double y As Double b As Double L As Double End Type 'Cac bien cuc bo Dim i As Integer, j As Integer, k As Integer Dim nxd As Integer Dim s As Double, mo As Double Dim de As Integer, mi As Integer, se As Double Dim aa As Double, bb As Double, NN As Double, MM As Double Dim w As Double, T As Double, L As Double, Lo As Double, Xo As Double Dim Tenluoi As String Dim diem() As diem Private Sub Soluong() nxd = For i = To Table1.Rows - If Trim(Table1.TextMatrix(i, 1)) "" And Trim(Table1.TextMatrix(i, 2)) "" _ And Trim(Table1.TextMatrix(i, 3)) "" Then nxd = nxd + Else Exit For Next i End Sub Private Sub GhiKetQuaRaTep() On Error Resume Next Dim Xau As String Dim xau1 As String Dim xau2 As String Dim xau3 As String Dim xau4 As String Open "KQCDBLXY.kq" For Output As #2 'GHI TEP KET QUA Print #2, " Kết Quả Chuyển Đổi Hệ Toạ Độ Vuông Góc " Print #2, Space(33 - Fix(Len(Tenluoi) / 2)) & Tenluoi Print #2, " *========oooOooo=========*" Print #2, " | ChØ Tiªu Kü ThuËt |" Print #2, " * *", Chr(13) & Chr(10) Print #2, " 1.Sè ®iÓm tÝnh chuyÓn : " & nxd If OptWGS84.Value = True Then Print #2, " 2.Elipsoid WGS-84 " If OptKrasovski.Value = True Then Print #2, " 2.Elipsoid Krasovski " If OptUTM.Value = True And CboMuichieu.Text = "3*" Then Print #2, " PhÐp chiÕu UTM 3*" If OptUTM.Value = True And CboMuichieu.Text = "6*" Then Print #2, " PhÐp chiÕu UTM 6*" If OptGauss.Value = True Then Print #2, " PhÐp chiÕu Gauss " Print #2, " Kinh tuyÕn trung −¬ng " & txtKinhdo.Text Print #2, " *=========ooOOoo=========*", Chr(13) & Chr(10) ProgressBar1.Value = 70 Print #2, " Toạ Độ Điểm Tính Chuyển " Print #2, " ***** - " Print #2, " #================================================#" Print #2, " | S | Tªn | Toạ Độ Sau Khi Tính Chuyển |" Print #2, " | T | | o |" Print #2, " | T | §iĨm | B( o ' "" ) | L( o ' "" ) |" Print #2, " |=====|========|================|================|" For i = To nxd - diem(i).b = diem(i).b * 180# / Pi de = Fix(diem(i).b) mi = Fix((diem(i).b - de) * 60#) se = ((diem(i).b - de) * 60# - mi) * 60# If Len(Str(de)) = Then Xau = " 0" If Len(Str(de)) = Then Xau = " " If Len(Str(de)) = Then Xau = "" xau1 = Xau & de & " " & Format(mi, "00") & " " & Format(se, "00.000000") diem(i).L = diem(i).L * 180# / Pi de = Fix(diem(i).L) mi = Fix((diem(i).L - de) * 60#) se = ((diem(i).L - de) * 60# - mi) * 60# If Len(Str(de)) = Then Xau = " 0" If Len(Str(de)) = Then Xau = " " If Len(Str(de)) = Then Xau = "" xau2 = Xau & de & " " & Format(mi, "00") & " " & Format(se, "00.000000") Print #2, " | " & (i + 1) & Space(5 - Len(Str(i + 1))) & "|" _ & diem(i).ten & "|" & xau1 & " |" & xau2 & " |" Next i Print #2, " *====================================================*" & Chr(13) & Chr(10) Print #2, " ooo0ooo ", Chr(13) & Chr(10) Close #2 Beep End Sub Private Sub Command1_Click() On Error Resume Next Dim e2 As Double Dim q As Double Dim a As Double, ai1 As Double, ai2 As Double, ai3 As Double, ai4 As Double, ai5 As Double Dim b As Double, bi1 As Double, bi2 As Double, bi3 As Double, bi4 As Double, bi5 As Double Dim As Double Dim phi As String Dim phii As String Dim z As String Dim Bo As Double, Bio As Double, Ao As Double, A2 As Double, A4 As Double, A6 As Double, A8 As Double Dim kt As Boolean Call Soluong ReDim diem(nxd) As diem 'Doc du lieu dau vao For i = To nxd - diem(i).ten = Trim(Table1.TextMatrix(i + 1, 1)) diem(i).x = Val(Trim(Table1.TextMatrix(i + 1, 2))) diem(i).y = Val(Trim(Table1.TextMatrix(i + 1, 3))) Next i 'Chon Elipxoid va cac tham so If OptWGS84.Value = True Then aa = 6378137# bb = 6356752.31424783 End If If OptKrasovski.Value = True Then aa = 6378245# bb = 6356863.01877305 End If e2 = 1# - bb * bb / (aa * aa) If OptGauss.Value = True Then mo = 1# If OptUTM.Value = True And Trim(CboMuichieu.Text) = "6*" Then mo = 0.9996 If OptUTM.Value = True And Trim(CboMuichieu.Text) = "3*" Then mo = 0.9999 dong = txtKinhdo.Text TachXau (dong) Lo = Val(MangXau(0)) + Val(MangXau(1)) / 60# Lo = Lo * Pi / 180# 'Tinh cac gia tri trung gian de tinh toan chieu dai cung kinh tuyen Bo = + * e2 / + 45 * e2 ^ / 64 + 175 * e2 ^ / 256 + 11025 * e2 ^ / 16384 A2 = * e2 / + * e2 ^ / 16 + 213 * e2 ^ / 2048 + 255 * e2 ^ / 4096 A4 = 21 * e2 ^ / 256 + 21 * e2 ^ / 256 + 533 * e2 ^ / 8192 A6 = 151 * e2 ^ / 6144 + 151 * e2 ^ / 4096 A8 = 1097 * e2 ^ / 131072 'Tinh toa trac dia For i = To nxd - a = diem(i).x / (aa * (1 - e2) * Bo * mo) b = (diem(i).y - 500000) / (aa * (1 - e2) * Bo * mo) z = IMSIN(2 * a, * b) ai2 = A2 * IMREAL(z) bi2 = A2 * IMAGINARY(z) z = IMSIN(4 * a, * b) ai3 = A4 * IMREAL(z) bi3 = A4 * IMAGINARY(z) z = IMSIN(6 * a, * b) ai4 = A6 * IMREAL(z) bi4 = A6 * IMAGINARY(z) z = IMSIN(8 * a, * b) ai5 = A8 * IMREAL(z) bi5 = A8 * IMAGINARY(z) phi = a + ai2 + ai3 + ai4 + ai5 & " i" & b + bi2 + bi3 + bi4 + bi5 a = IMREAL(phi) b = IMAGINARY(phi) z = IMSIN(a, b) a = IMREAL(z) b = IMAGINARY(z) z = IMATANH(a, b) ai1 = IMREAL(z) bi1 = IMAGINARY(z) z = IMATANH(Sqr(e2) * a, Sqr(e2) * b) a = Sqr(e2) * IMREAL(z) b = Sqr(e2) * IMAGINARY(z) a = ai1 - a b = bi1 - b diem(i).L = b + Lo diem(i).b = ARCSIN(TANH(a)) Do Bio = diem(i).b diem(i).b = ARCSIN(TANH(a + Sqr(e2) * ATANH(Sqr(e2) * Sin(Bio)))) Loop Until Abs(diem(i).b - Bio) < 10 ^ -12 Next i Call GhiKetQuaRaTep Call mnuxemketqua_Click End Sub Sub Command2_Click() Unload Me End Sub Private Sub Form_Load() Table1.TextMatrix(0, 1) = " Ten diem " Table1.TextMatrix(0, 2) = " X ( m )" Table1.TextMatrix(0, 3) = " Y ( m )" End Sub Private Sub mnudocsolieututep_Click() On Error GoTo loi DlgCommonDialog.DialogTitle = "Më tÖp sè liệu chuyển đổi BL sang XY ngợc lại" DlgCommonDialog.Filter = "TÖp sè liÖu (*.SL)|*.SL|" DlgCommonDialog.Filter = DlgCommonDialog.Filter + _ "Tệp văn (*.TXT)|*.TXT|" DlgCommonDialog.Filter = DlgCommonDialog.Filter + _ "Tất c¶ tƯp ( *.* )|*.*" DlgCommonDialog.FilterIndex = DlgCommonDialog.ShowOpen If DlgCommonDialog.FileName "" Then 'Doc so lieu BLH Open DlgCommonDialog.FileName For Input As #1 Input #1, Tenluoi txttenluoi.Text = Tenluoi Input #1, nxd If nxd > Then Table1.Rows = nxd + For i = To nxd Line Input #1, dong Call TachXau(dong) Table1.TextMatrix(i, 0) = i Table1.TextMatrix(i, 1) = MangXau(0) Table1.TextMatrix(i, 2) = MangXau(1) Table1.TextMatrix(i, 3) = MangXau(2) Next i Close #1 End If ' if "" Exit Sub loi: Close #1 MsgBox "TÖp sè liÖu nhËp không định dạng.", vbCritical, "Thông báo lỗi" End Sub Private Sub mnughisolieuratep_Click() On Error Resume Next Dim xau1 As String Dim xau2 As String Dim Tenluoi As String With DlgCommonDialog DialogTitle = "Hép tho¹i l−u tƯp tin " Filter = "TÖp sè liÖu (*.SL)|*.SL|" Filter = Filter + _ "Tệp văn (*.TXT)|*.TXT|" Filter = Filter + _ "Tất c¶ tƯp ( *.* )|*.*" FilterIndex = FileName = "" ShowSave End With Open DlgCommonDialog.FileName For Output As #1 Tenluoi = txttenluoi.Text Print #1, Tenluoi Print #1, nxd 'Ghi cac diem tinh chuyen For i = To nxd Print #1, Table1.TextMatrix(i, 1), Table1.TextMatrix(i, 2), _ Table1.TextMatrix(i, 3) Next i Close #1 End Sub Private Sub mnutaoluoimoi_Click() Unload Me frmCDBLXY.Show End Sub Private Sub mnuthoat_Click() Unload Me End Sub Private Sub mnuxemketqua_Click() On Error Resume Next sFile = "KQCDBLXY.kq" fMainForm.mnuMotepketqua_Click Me.Visible = False frmD.WindowState = End Sub Private Sub Table1_Compare(ByVal Row1 As Long, ByVal Row2 As Long, Cmp As Integer) End Sub ... toạ độ vuông góc phẳng theo phép 36 chiếu hình trụ ngang giữ góc dùng hàm số mũ Khái quát chung phép chiếu hình đồ Phép chiếu hình trụ ngang giữ góc dùng Việt Nam Tính tọa độ vuông góc phẳng theo. .. theo phép chiếu hình trụ ngang giữ góc dùng hàm số mũ tính toạ độ vuông góc phẳng theo phép chiếu hình trụ ngang giữ góc dùng hàm số phức Cơ sở toán học xây dựng công thức Công thức hàm số phøc... kĩ hai phép chiếu hình trụ ngang giữ góc đà dùng Việt Nam Đó phép chiếu Gauss-Kruger, phép chiếu UTM việc tính tọa độ vuông góc phẳng theo hai phép chiếu 2.2 Phép chiếu hình trụ ngang giữ góc dùng