1 / 29

Kartowanie pikiet

Kartowanie pikiet. pomierzonych metodą ortogonalną. Dane zapisujemy do plików tekstowych: osnxy.txt 1001 1000.00 1000.00 1002 1040.00 1000.00. pomort.txt (numer pikiety odcięta rzędna – z minusem w lewo, z plusem w prawo) 1 1.98 9.02 2 3.04 5.96 3 5.99 6.98 4 7.02 4.01

kohana
Télécharger la présentation

Kartowanie pikiet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kartowanie pikiet pomierzonych metodą ortogonalną

  2. Dane zapisujemy do plików tekstowych: osnxy.txt 1001 1000.00 1000.00 1002 1040.00 1000.00 pomort.txt (numer pikiety odcięta rzędna – z minusem w lewo, z plusem w prawo) 1 1.98 9.02 2 3.04 5.96 3 5.99 6.98 4 7.02 4.01 5 9.97 5.03

  3. linie.txt (linie do narysowania od punktu do punktu): 1 2 2 3 3 4 4 5 itd.

  4. Program powinien mieć postać strukturalną – powinien składać się z wielu procedur – im krótsza procedura tym lepiej. Główna część programu MAIN może właściwie w każdym programie wyglądać tak jak niżej: '*********************** MAIN ******************* sub Main dane przetwarzanie wyniki end sub

  5. Na początku programu umieszcza się zmienne Public, które są dostępne w całym programie – zmienne globalne. W procedurach definiuje się zmienne lokalne, które dostępne są wyłącznie w tych procedurach, w których zostały zdefiniowane. Public nro() as integer, xo() as double, yo() as double Public nrp() as integer, xp() as double, yp() as double Public odc() as double, rze() as double Public odp() as integer, dop() as integer Public ios as integer, ipik as integer, ilin as integer

  6. Numery i współrzędne punktów osnowy: nro() as integer, xo() as double, yo() as double Numery i współrzędne pikiet: nrp() as integer, xp() as double, yp() as double Odcięte i rzędne pikiet: odc() as double, rze() as double Numery punktów do połączenia: odp() as integer, dop() as integer Liczba punktów osnowy, pikiet i linii do narysowania: ios as integer, ipik as integer, ilin as integer

  7. Procedury i funkcje w programie muszą być zapisane w takiej kolejności, aby każda procedura lub funkcja była zdefiniowana przed jej pierwszym wywołaniem.

  8. '*********************** DANE***************** sub dane osnowa pikiety linie end sub '*********************** MAIN ******************* sub Main dane przetwarzanie wyniki end sub

  9. '*********************** OSNOWA ************************* sub osnowa dim plik_osn as string dim i as integer plik_osn = MbeInputBox("Podaj nazwę pliku z danymi osnowy", "D:\osnxy.txt", "WCZYTYWANIE DANYCH OSNOWY ") open plik_osn for input as #1 ios=0 whilenot eof(1) ios=ios+1 redim preserve nro(ios) redim preserve xo(ios) redim preserve yo(ios) input #1, nro(ios), xo(ios), yo(ios) wend close #1 end sub

  10. '*********************** PIKIETY ************************* sub pikiety dim plik_pik as string dim i as integer plik_pik = MbeInputBox("Podaj nazwę pliku z wynikami pomiarów", "D:\pomort.txt", "WCZYTYWANIE WYNIKÓW POMIARÓW ") open plik_pik for input as #1 ipik=0 while not eof(1) ipik=ipik+1 redim preserve nrp(ipik) redim preserve odc(ipik) redim preserve rze(ipik) input #1, nrp(ipik),odc(ipik),rze(ipik) wend close #1 end sub

  11. '*********************** LINIE ************************* sub linie dim plik_lin as string dim i as integer plik_lin = MbeInputBox("Podaj nazwę pliku połączeń", "D:\linie.txt", "WCZYTYWANIE PLIKU POŁĄCZEŃ ") open plik_lin for input as #1 ilin=0 while not eof(1) ilin=ilin+1 redim preserve odp(ilin) redim preserve dop(ilin) input #1, odp(ilin),dop(ilin) wend close #1 end sub

  12. '*********************** PRZETWARZANIE ********************* sub przetwarzanie xy_pikiet kartowanie linie end sub

  13. B hi a li P A

  14. '***************************AZYMUT ********************************************** Function Azymut(xa as double, ya as double, xb as double, yb as double) as double Dimdx as double, dy as double, az as double dx=xb-xa: dy=yb-ya if dx=0 then if dy<0 then az=300 if dy>0 then az=100 else az=atn(dy/dx)*200/pi end if if dx<0 then az=az+200 if az<0 then az=az+400 azymut=az end function

  15. '***************************** XY_PIKIET **************************************** sub xy_pikiet Dim xa as double, ya as double, l as double, s as double,cs as double, sn as double Dim az as double Redim xp(ipik): Redim yp(ipik) xa=xo(1):ya=yo(1) az= azymut(xo(1),yo(1),xo(2),yo(2)) for i=1 to ipik l=odc(i):h=rze(i) sn=sin(az/200*pi) cs=cos(az/200*pi) xp(i)=xa+l*cs-h*sn yp(i)=ya+l*sn+h*cs next i end sub

  16. '*********************** KARTOWANIE *********************** sub kartowanie kart_osnowy kart_pikiet end sub

  17. '*********************** KARTOWANIE OSNOWY *********************************** sub kart_osnowy Dim point As MbePoint Dim i as integer for i= 1 to ios MbeSendCommand "PLACE CIRCLE ICON " MbeSendCommand "IGEN CONSTRAIN RADIUS 0.3" point.x = yo(i) point.y = xo(i) MbeSendDataPoint point, 1% MbeSendReset MbeSendCommand "PLACE TEXT" MbeSendCommand cstr(nro(i)) point.x = yo(i) point.y = xo(i) MbeSendDataPoint point, 1% MbeSendReset next i end sub

  18. '*********************** KARTOWANIE PIKIET ************************************ sub kart_pikiet Dim point As MbePoint Dim i as integer for i= 1 to ipik MbeSendCommand "PLACE CIRCLE ICON " MbeSendCommand "IGEN CONSTRAIN RADIUS 0.1" point.x = yp(i) point.y = xp(i) MbeSendDataPoint point, 1% MbeSendReset MbeSendCommand "PLACE TEXT" MbeSendCommand cstr(nrp(i)) point.x = yp(i) point.y = xp(i) MbeSendDataPoint point, 1% MbeSendReset next i end sub

  19. '********************************** RYSOWANIE LINII***************************** sub rys_linie Dim point As MbePoint Dim i1 as integer, i2 as integer for i= 1 to ilin i1=odp(i): i2=dop(i) MbeSendCommand "PLACE SMARTLINE „ point.x = yp(i1) point.y = xp(i1) MbeSendDataPoint point, 1% point.x = yp(i2) point.y = xp(i2) MbeSendDataPoint point, 1% MbeSendReset next i end sub

  20. '************************ WYNIKI - RAPORT **************** sub wyniki raport_plik raport_osnowa raport_pomiary raport_xy close #1 end sub

  21. '*************** RAPORT NAZWA PLIKU ****************************** sub raport_plik() Dim plikr as string ' Pytanie o nazwę pliku raportu plikr=MbeInputBox("Podaj nazwę pliku raportu","D:\raport1.txt","PLIK RAPORTU") Open plikr for Output as #1 end sub

  22. '*************** RAPORT OSNOWA ****************************** sub raport_osnowa() Dim i as integer Print #1, "Dane punkty osnowy" Print #1, "Nr X Y" for i=1 to ios print #1,nro(i), format$(xo(i),"0.00"), format$(yo(i),"0.00") next i Print #1," " end sub

  23. '*************** RAPORT POMIARY ****************************** sub raport_pomiary() Dim i as integer Print #1, "Miary ortogonalne" Print #1, "Nr Odcieta Rzedna" for i=1 to ipik print #1,nrp(i), format$(odc(i),"0.00"), format$(rze(i),"0.00") next i Print #1," " end sub

  24. '*************** RAPORT WSPÓŁRZĘDNE PIKIET ************************* sub raport_xy() Dim i as integer Print #1, "Obliczone współrzędne pikiet" Print #1, "Nr X Y" for i=1 to ipik print #1,nrp(i), format$(xp(i),"0.00"), format$(yp(i),"0.00") next i Print #1," " end sub

  25. Dane punkty osnowy Nr X Y 1001 1000.00 1000.00 1002 1040.00 1040.00 Miary ortogonalne Nr Odcieta Rzedna 1 1.98 9.02 2 3.04 5.96 3 5.99 6.98 4 7.02 4.01 5 9.97 5.03 6 11.03 -5.98 7 11.03 -13.02 8 12.04 8.97 9 13.98 11.95 10 13.98 -5.95 11 13.98 -9.97 12 16.01 12.03 13 16.97 -10.02 14 16.97 -13.01

  26. Obliczone współrzędne pikiet Nr X Y 1 995.04 1007.76 2 997.91 1006.39 3 999.29 1009.19 4 1002.14 1007.79 5 1003.51 1010.59 6 1012.04 1003.56 7 1016.99 998.61 8 1002.15 1014.88 9 1001.40 1018.37 10 1014.13 1005.64 11 1016.96 1002.81 12 1002.84 1019.81 13 1019.07 1004.93 14 1021.19 1002.81 15 1014.16 1014.16 16 1015.52 1015.52 17 1011.33 1021.23 18 1016.95 1019.78

More Related