Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
pomierzonych metodą ortogonalną
Kartowanie pikiet pomierzonych metodą ortogonalną
3
Dane zapisujemy do plików tekstowych:
osnxy.txt pomort.txt (numer pikiety odcięta rzędna – z minusem w lewo, z plusem w prawo)
4
linie.txt (linie do narysowania od punktu do punktu):
1 2 2 3 3 4 4 5 itd.
5
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
6
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
7
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
8
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.
9
'*********************** DANE*****************
sub dane osnowa pikiety linie end sub '*********************** MAIN ******************* sub Main dane przetwarzanie wyniki end sub
10
'*********************** 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 while not 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
11
'*********************** 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
12
'*********************** 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
13
'*********************** PRZETWARZANIE *********************
sub przetwarzanie xy_pikiet kartowanie linie end sub
14
B a hi li P A
15
'***************************AZYMUT **********************************************
Function Azymut(xa as double, ya as double, xb as double, yb as double) as double Dim dx 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
16
'***************************** 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
17
'*********************** KARTOWANIE ***********************
sub kartowanie kart_osnowy kart_pikiet end sub
18
'*********************** 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)) next i end sub
19
'*********************** 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)) next i end sub
20
'********************************** 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) MbeSendReset next i end sub
23
'************************ WYNIKI - RAPORT ****************
sub wyniki raport_plik raport_osnowa raport_pomiary raport_xy close #1 end sub
24
'*************** 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
25
'*************** 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
26
'*************** 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
27
'*************** 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
28
Dane punkty osnowy Nr X Y Miary ortogonalne Nr Odcieta Rzedna
29
Obliczone współrzędne pikiet
Nr X Y
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.