Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

pomierzonych metodą ortogonalną

Podobne prezentacje


Prezentacja na temat: "pomierzonych metodą ortogonalną"— Zapis prezentacji:

1 pomierzonych metodą ortogonalną
Kartowanie pikiet pomierzonych metodą ortogonalną

2

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

21

22

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


Pobierz ppt "pomierzonych metodą ortogonalną"

Podobne prezentacje


Reklamy Google