|
| Afstand mellem to punkter Fra : Uffe Holst |
Dato : 27-06-02 21:43 |
|
Hej,
Mit spørgsmål er ganske simpelt: Hvordan beregner jeg afstanden mellem to
punkter?
For nu et gøre besvarelsen lidt vanskeligere for jer, så er det to punkter
på jordkloden, dvs. geografiske koordinater i stil med mellem f.eks. et
punkt som N 55° 12,34 og E 12° 65,76 (hvor det så end er henne) og et andet
punkt.
--
Uffe Holst
| |
Torben Ægidius Mogen~ (28-06-2002)
| Kommentar Fra : Torben Ægidius Mogen~ |
Dato : 28-06-02 10:25 |
|
"Uffe Holst" <uhc@post6.tele.dk> writes:
> Mit spørgsmål er ganske simpelt: Hvordan beregner jeg afstanden
> mellem to punkter?
> For nu et gøre besvarelsen lidt vanskeligere for jer, så er det to
> punkter på jordkloden, dvs. geografiske koordinater i stil med
> mellem f.eks. et punkt som N 55° 12,34 og E 12° 65,76 (hvor det så
> end er henne) og et andet punkt.
Det første du skal gøre er at lave grader, minutter og sekunder om til
decimalgrader: a° b' c'' er (a+b/60+c/3600)°. Hvis længdegraden er
vestlig længde, er tallet negativt (f.eks. W 12° = -12°). Sydlig
bredde gøres også negativ. Vi kalder herefter længdegraden L og
breddegraden B.
Derefter skal du beregne de rumlige koordinater for punkterne,
skaleret så jordkloden er en kugle med radius 1. Her er (x,y) i
ækvators plan og z er den vinkelrette afstand fra dette plan. (0,0,0)
er centrum af kuglen, og det punkt, hvor nulmeridianen skærer ækvator
er (1,0,0). Nordpolen er (0,0,1) og sydpolen (0,0,-1). Formlerne er:
x = cos(L)*cos(B)
y = sin(L)*cos(B)
z = sin(B)
Hvor sin og cos er sinus og cosinus for decimalgrader. Hvis du kun
har sin og cos for radianer, skal du først konvertere: rad(B) =
B*pi/180, hvor pi = 3.14159265358979....
Du kan nu nemt beregne den rumlige afstand d mellem de to punkter
(x,y,z) og (x1,y1,z1): d = sqrt((x-x1)^2+(y-y1)^2+(z-z1)^2), hvor sqrt
er kvadratroden.
Hvis du gerne vil have afstanden A på kuglens overflade, så er den
A = 2*asin(d/2)
hvor asin er den inverse funktion til sin. Her får du så afstanden
målt i grader (eller radianer, afhængig af hvilken sinusfunktion du
bruger). Hvis du vil lave om til km på jordens overflade, så er
K = A*(jordens omkreds)/360
hvis A er målt i grader. Hvis A er målt i radianer, er
K = A*(jordens omkreds)/pi
Disse beregninger antager at jorden er en perfekt kugle. Beregninger,
der tager hensyn til jordens egentlige facon er en del mere
besværlige.
Torben Mogensen (torbenm@diku.dk)
| |
Ibib Narfaz (28-06-2002)
| Kommentar Fra : Ibib Narfaz |
Dato : 28-06-02 10:57 |
|
Torben Ægidius Mogensen skrev...
>...
>Hvis du gerne vil have afstanden A på kuglens overflade, så er den
>
>A = 2*asin(d/2)
Nå, da! Hvad nu hvis d , som jo var den rumlige afstand mellem
punkterne, er f.eks. 1000 , så bliver A = 2*asin(500) eller hvad?!
| |
Henning Makholm (28-06-2002)
| Kommentar Fra : Henning Makholm |
Dato : 28-06-02 11:30 |
|
Scripsit "Ibib Narfaz" <a@b.c>
> Torben Ægidius Mogensen skrev...
> >Hvis du gerne vil have afstanden A på kuglens overflade, så er den
> >A = 2*asin(d/2)
> Nå, da! Hvad nu hvis d , som jo var den rumlige afstand mellem
> punkterne, er f.eks. 1000
Det bliver svært når man har startet med at definere jordens radius
til at være 1.
--
Henning Makholm "Manden med det store pindsvin er
kommet vel ombord i den grønne dobbeltdækker."
| |
Ibib Narfaz (29-06-2002)
| Kommentar Fra : Ibib Narfaz |
Dato : 29-06-02 13:09 |
|
Henning Makholm skrev i meddelelsen ...
>Det bliver svært når man har startet med at definere jordens radius
>til at være 1.
Min fejl. Undskyld!
| |
Uffe Holst (28-06-2002)
| Kommentar Fra : Uffe Holst |
Dato : 28-06-02 11:57 |
|
In an article of 28 Jun 2002 Ibib Narfaz wrote:
> Nå, da! Hvad nu hvis d , som jo var den rumlige afstand mellem
> punkterne, er f.eks. 1000 , så bliver A = 2*asin(500) eller hvad?!
Torben satte jordens radius til 1.
--
Uffe Holst
| |
Uffe Holst (28-06-2002)
| Kommentar Fra : Uffe Holst |
Dato : 28-06-02 11:56 |
|
In an article of 28 Jun 2002 Torben Ægidius Mogensen wrote:
> Disse beregninger antager at jorden er en perfekt kugle. Beregninger,
> der tager hensyn til jordens egentlige facon er en del mere
> besværlige.
Tak for forklaringen. Det burde jo være forholdsvis nemt at lave et lille
program, som kan beregne det.
Spørgsmålet er blot hvor stor afvigelsen er mellem den perfekte kugle og
den egentlige jordklode. Hvor upræcis vil den beregnede afstand fra f.eks.
København til Århus mon være?
--
Uffe Holst
| |
Jeppe Stig Nielsen (07-07-2002)
| Kommentar Fra : Jeppe Stig Nielsen |
Dato : 07-07-02 20:00 |
|
"Torben Ægidius Mogensen" wrote:
>
> Derefter skal du beregne de rumlige koordinater for punkterne,
>[...]
> Du kan nu nemt beregne den rumlige afstand d mellem de to punkter
> (x,y,z) og (x1,y1,z1): d = sqrt((x-x1)^2+(y-y1)^2+(z-z1)^2), hvor sqrt
> er kvadratroden.
En anden måde at tænke på det på:
Du kan også finde vektorernes prikprodukt og udnytte at prikproduktet
er lig med cosinus til vinklen mellem vektorerne (enhedsvektorer).
Denne vinkel er lig afstand langs den krumme overflade (vi måler jo
vinkler i radianer!).
Da Torben har hjulpet os med
x = cos(L)*cos(B)
y = sin(L)*cos(B)
z = sin(B)
får vi følgende eksplicitte formel
v = Arccos( x1 x2 + y1 y2 + z1 z3 )
= Arccos( cos(L1)cos(B1)cos(L2)cos(B2) + sin(L1)cos(B1)sin(L2)cos(B2) + sin(B1)sin(B2) )
Hvis planetens radius R er forskellig fra 1, skal man blot gange svaret
med R.
--
Jeppe Stig Nielsen <URL: http://jeppesn.dk/>. «
"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)
| |
|
|