Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

Карты   Найти похожие ветки 

 
Edu.1982   (2006-08-15 22:13) [0]

Как в Delphi можно задать координаты точек и чтобы между начальной и конечной точкой измерялась расстояние


 
TUser ©   (2006-08-15 22:34) [1]

Квадратный корень из суммы квадратов разностей соотвествующих координат. Это если геометрия евклидова.


 
KilkennyCat ©   (2006-08-15 23:05) [2]

> [1] TUser ©   (15.08.06 22:34)

можно и проще сказать :) теорема Пифагора
Ты лучше код напиши, нефиг флудить.


 
Ega23 ©   (2006-08-16 12:23) [3]


> Как в Delphi можно задать координаты точек


(2, 4); (4.12, 3.12)


> между начальной и конечной точкой измерялась расстояние


r=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
Это для ДПСК


 
Desdechado ©   (2006-08-16 12:52) [4]

Расстояние между точками по прямой или по ломаной?
Если по ломаной, то для каждых двух точек ломаной считаем по Пифагору, а потом складываем.

Но это в плоских системах координат.
Если ж координаты на геоиде, сфере или еще какие (систем много), то там свои правила. На то она и карта :)

А если с поправкой на рельеф местности, то ваще жуть...


 
Сергей М. ©   (2006-08-16 13:18) [5]


> чтобы между начальной и конечной точкой измерялась расстояние


Само по себе что ли "измерялось" ?


 
Separator ©   (2006-08-16 13:39) [6]

function Rastoyanie(Points: array of TPoint): Extended;
var i: Integer;
begin
   Result:= 0.0;
   for i:= Low(Points) + 1 to High(Points) do
       Result:= Result + sqrt((Points[i - 1].X - Points[i].X) * (Points[i - 1].X - Points[i].X) + (Points[i - 1].Y - Points[i].Y) * (Points[i - 1].Y - Points[i].Y))
end;

Пример для использования:

procedure TForm1.Button1Click(Sender: TObject);
begin
   ShowMessage(FloatToStr(Rastoyanie([Point(1, 1), Point(55, 55)])));
end;


 
Ketmar ©   (2006-08-16 13:51) [7]

> [6] Separator ©   (16.08.06 13:39)
а какой глубокий смысл в array of TPoint? а если их будет 25, то что за результат в итогде выйдет? расстояние от Мухосранска до Марс-Сити в единицах измерения Альфы Центавра?


 
Джо ©   (2006-08-16 13:53) [8]

> [7] Ketmar ©   (16.08.06 13:51)
> > [6] Separator ©   (16.08.06 13:39)
> а какой глубокий смысл в array of TPoint?

Например, такая функция пригодна для вычисления длин полилиний (Polylines), т.е., ломанных.


 
ffo ©   (2006-08-21 11:51) [9]


> Как в Delphi можно задать координаты точек и чтобы между
> начальной и конечной точкой измерялась расстояние


И Дальность тебе тут и Азимут

// Определение A и D по геод коорд
procedure    BLAS (b1,l1,b2,l2:RealType;var a,s:RealType);

procedure BLAS(b1,l1,b2,l2:RealType;var a,s:RealType);
 const  c1=0.006693421623;c2=0.006738255415;c3=6356863.01877;
 var x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,
     x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33:RealType ;i:byte;
 begin
 x1:=Sqrt(1-c1);
 x2:=Cos(b1);
 x3:=Cos(b2);
 x4:=b1;
 if x2<>0 then x4:=ArcTan(Sin(b1)*x1/x2);
 x5:=b2;
 if x3<>0 then x5:=ArcTan(Sin(b2)*x1/x3);
 x6:=l2-l1;
 if x6>pi  then x6:=-2*pi+x6;
 if x6<-pi then x6:= 2*pi+x6;
 x7:=Sqr(Sin((x5-x4)/2));
 x8:=Sqr(Cos((x5+x4)/2));
 x9:=x6;
 x10:=Sin(x4);
 x11:=Cos(x4);
 x12:=Sin(x5);
 for i:=1 to 7 do begin
   x13:=x9/2;
   x14:=2*ASin(Sqrt(x7*Sqr(Cos(x13))+x8*Sqr(Sin(x13))));
   x15:=Sin(x14);
   x16:=Cos(x14);
   if x11=0 then a:=Pi;
   if x15=0 then a:=0;
   x17:=x11*x15;
   if x17<>0 then begin
     a:=ACos((x12-x10*x16)/x17);
     if x6<0 then a:=2*Pi-a;
     end;
   if x15<>0 then begin
     x1:=ASin(Sin(x9)*Cos(x5)/x15);
     if a<0.25*Pi then a:=x1;
     if a>1.75*Pi then a:=2*Pi+x1;
     if(a>0.75*Pi)and(a<1.25*Pi)then a:=Pi-x1;
     end;
   x18:=ASin(Sin(a)*x11);
   x19:=Pi/2;
   x20:=Cos(a);
   x21:=x20*x11;
   if x21<>0 then begin
     x19:=ArcTan(x10/x21);
     if x19<0 then x19:=Pi+x19;
     end;
   x22:=Sqr(Cos(x18));
   x23:=x22*c1/16;
   x24:=c1*(0.5+c1/8-x23);
   x25:=c1*x23;
   x26:=2*x19+x14;
   x27:=x15*Cos(x26);
   x9:=x6+Sin(x18)*(x24*x14+x25*x27);
 end;
 x28:=x26*2;



Страницы: 1 вся ветка

Текущий архив: 2006.09.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
1-1153996431
zrv
2006-07-27 14:33
2006.09.10
формирование XML-файла


15-1155793834
Ega23
2006-08-17 09:50
2006.09.10
С Днём рождения! 17 августа


1-1154280131
Lordalexander
2006-07-30 21:22
2006.09.10
Прозрачный Label


15-1155808965
sleept
2006-08-17 14:02
2006.09.10
еще раз про пхп


15-1155800592
Ketmar
2006-08-17 11:43
2006.09.10
господа, проверьте на работоспособность, плиз...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский