Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 14:21 13.06.24 
Клубове / Техника / Мобилни комуникации / GPS Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Source code - Helmert [re: Dim]
Автор TUONO (непознаваем)
Публикувано14.09.04 08:45  



От тук можете да извадите формулите. След обяд ще обърна внимание на другите съобщения...


{Трансформация на GPS координати}
procedure TGPSKYFrm.TrnBtnClick(Sender: TObject);
begin
if (bENFl<>'') AND (bYXFl<>'') then
begin

if Fft<>'' then
begin
TrFDlg.Execute;
outFl:=TrFDlg.FileName;
TrPath.Caption:=outFl;
end;
if (Fft<>'') AND (outFl<>'') then
begin
if RGTrans.ItemIndex=0 then
begin
GPS1:=InYXDlg.FileName;
YX1:=InENDlg.FileName;
end;
if RGTrans.ItemIndex=1 then
begin
GPS1:=InENDlg.FileName;
YX1:=InYXDlg.FileName;
end;

AssignFile(GPS,GPS1);
Reset(GPS);
np:=0;
while NOT Eoln(GPS) do
begin
Readln(GPS);
begin
np:=np+1;
end;
end;
BasePLbl.Caption:=FloatToStrF(np,ffFixed,3,0);
CloseFile(GPS);
sumE:=0;
sumN:=0;
sumY:=0;
sumX:=0;
sumdY2:=0;
sumdX2:=0;
P1:=0;
P2:=0;
Q1:=0;
Q2:=0;
AssignFile(GPS,GPS1);
Reset(GPS);
AssignFile(YX,YX1);
Reset(YX);
while NOT Eoln(GPS) do
begin
Readln(GPS,Ng,E,N);
Readln(YX,Nl,Y,X);
begin
sumE:=sumE+E;
sumN:=sumN+N;
sumY:=sumY+Y;
sumX:=sumX+X;
end;
end;
CloseFile(YX);
CloseFile(GPS);
cE:=sumE/np;
cN:=sumN/np;
cY:=sumY/np;
cX:=sumX/np;
dcAb:=cE-cY;
dcOr:=cN-cX;
AssignFile(GPS,GPS1);
Reset(GPS);
AssignFile(YX,YX1);
Reset(YX);
while NOT Eoln(GPS) do
begin
Readln(GPS,Ng,E,N);
Readln(YX,Nl,Y,X);
begin
dE:=E-cE;
dN:=N-cN;
dY:=Y-cY;
dX:=X-cX;
dlAb:=dE-dY;
dlOr:=dN-dX;
P1:=P1+dX*dlAb;
P2:=P2+dY*dlOr;
Q1:=Q1+dY*dlAb;
Q2:=Q2+dX*dlOr;
sumdX2:=sumdX2+dX*dX;
sumdY2:=sumdY2+dY*dY;
end;
end;
CloseFile(YX);
CloseFile(GPS);
p:=(P1-P2)/(sumdX2+sumdY2);
q:=(Q1+Q2)/(sumdX2+sumdY2);
A:=dcOr+cY*p-cX*q;
B:=dcAb-cX*p-cY*q;
ALbl.Caption:=FloatToStrF(A,ffFixed,15,5);
BLbl.Caption:=FloatToStrF(B,ffFixed,15,5);
pLbl.Caption:=FloatToStrF(p,ffFixed,15,5);
qLbl.Caption:=FloatToStrF(q,ffFixed,15,5);
AssignFile(YX,YX1);
Reset(YX);
AssignFile(Err,'Err.txt');
Rewrite(Err);
while NOT Eoln(YX) do
begin
Readln(YX,Nl,Y,X);
begin
Et:=Y+X*p+Y*q+B;
Nt:=X-Y*p+X*q+A;
Writeln(Err,Nl:6:0,Et:12:3,Nt:12:3);
end;
end;
CloseFile(YX);
CloseFile(Err);
sumEY:=0;
sumNX:=0;
tp:=0;
AssignFile(GPS,GPS1);
Reset(GPS);
AssignFile(RepFl,'Report.txt');
Rewrite(RepFl);
AssignFile(Err,'Err.txt');
Reset(Err);
S_Date:=DateToStr(Date);
Writeln(RepFl,'Дата: ',S_Date);
Writeln(RepFl);
Writeln(RepFl,'Базови данни в СТАРА координатна система: ',bENFl);
Writeln(RepFl,'Базови данни в НОВА координатна система: ',bYXFl);
Writeln(RepFl);
Writeln(RepFl,'Номер ','Yo ','Xo ','Yn ','Xn ','Ms');
while NOT Eoln(GPS) do
begin
Readln(GPS,Ng,E,N);
Readln(Err,Nm,Ym,Xm);
sumEY:=sumEY+((E-Ym)*(E-Ym));
sumNX:=sumNX+((N-Xm)*(N-Xm));
repMs:=SQRT(((E-Ym)*(E-Ym))+((N-Xm)*(N-Xm)));
Writeln(RepFl,Ng:6:0,E:12:3,N:12:3,Ym:12:3,Xm:12:3,' ',repMs:6:3);
end;
Writeln(RepFl);
Writeln(RepFl);
Writeln(RepFl,'Брой базови точки: ',np);
Writeln(RepFl);
Writeln(RepFl,'Формула за транформация: Yn = Yo + pXo + qYo + B');
Writeln(RepFl,' Xn = Xo - pYo + qXo + A');
Writeln(RepFl);
Writeln(RepFl,'Стойтости на коефициентите: A = ',A:30:17);
Writeln(RepFl,' B = ',B:30:17);
Writeln(RepFl,' p = ',p:30:17);
Writeln(RepFl,' q = ',q:30:17);
CloseFile(RepFl);
My:=SQRT(sumEY/np);
Mx:=SQRT(sumNX/np);
Ms:=SQRT(Mx*Mx+My*My);
M1Val.Caption:=FloatToStrF(My,ffFixed,3,3);
M2Val.Caption:=FloatToStrF(Mx,ffFixed,3,3);
M3Val.Caption:=FloatToStrF(Ms,ffFixed,3,3);
CloseFile(Err);
CloseFile(GPS);
Erase(Err);
AssignFile(YXft,Fft);
Reset(YXft);
npt1:=0;
while NOT Eoln(YXft) do
begin
Readln(YXft);
begin
npt1:=npt1+1;
end;
end;
CloseFile(YXft);
TrpLbl.Caption:=FloatToStrF(npt1,ffFixed,3,0);
AssignFile(YXft,Fft);
Reset(YXft);
AssignFile(YXtr,outFl);
Rewrite(YXtr);
npt2:=0;
while NOT Eoln(YXft) do
begin
Readln(YXft,Nl,Y,X);
begin
Et:=Y+X*p+Y*q+B;
Nt:=X-Y*p+X*q+A;
Writeln(YXtr,Nl:6:0,Et:12:3,Nt:12:3);
npt2:=npt2+1;
pr:=(npt1/npt2)*100;
ProG.Progress:=Ceil(pr);
end;
end;
ProG.Progress:=100;
CloseFile(YXft);
CloseFile(YXtr);
end;
end;
if (bENFl='') OR (bYXFl='') then MessageDlg('Няма данни за базовите точки',mtError,[mbOK],0);

end;
{Трансформация на GPS координати}

"...от къде идваш и на къде отиваш..."


Цялата тема
ТемаАвторПубликувано
* Convertor на координати Dim   09.09.04 12:03
. * Re: Convertor на координати TUONO   09.09.04 12:22
. * Re: Convertor на координати TUONO   09.09.04 12:31
. * Re: Convertor на координати Dim   10.09.04 09:32
. * Re: Convertor на координати TUONO   10.09.04 11:21
. * Kakvo mi trqbva Dim   10.09.04 12:06
. * Re: Kakvo mi trqbva TUONO   10.09.04 12:51
. * Re: Kakvo mi trqbva Dim   10.09.04 13:19
. * Re: Kakvo mi trqbva TUONO   10.09.04 16:10
. * Re: Kakvo mi trqbva garmin_gps   12.09.04 03:35
. * Re: Kakvo mi trqbva bobo   12.09.04 23:15
. * Transt Dim   15.09.04 12:27
. * Re: Kakvo mi trqbva TUONO   13.09.04 09:05
. * Re: Kakvo mi trqbva mn_t   13.09.04 21:06
. * Re: Kakvo mi trqbva garmin_gps   13.09.04 23:18
. * Re: Kakvo mi trqbva TUONO   14.09.04 14:47
. * 1970 г. Официлна? DanailP   12.09.04 18:09
. * Re: 1970 г. Официлна? D.H.V.   12.09.04 19:16
. * Re: 1970 г. Официлна? mn_t   12.09.04 19:57
. * Source code - Helmert TUONO   14.09.04 08:45
. * 10x, bobo Dim   17.09.04 09:31
. * Re: Transf D.H.V.   17.09.04 14:03
. * Re: Transf Dim_cR   17.09.04 14:25
. * Re: Transf D.H.V.   17.09.04 19:12
. * Re: 10x, bobo bobo   17.09.04 19:22
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.