login  Naam:   Wachtwoord: 
Registreer je!
 Forum

afstand

Offline stijnhau - 06/07/2006 19:07
Avatar van stijnhauOnbekend hallo

ik maak en game.
nu wil ik dat er een afstand berekent wordt tussen 2 punten.
deze worden bijde aangegeven met een coordinaat.
maar hoe kan ik daar nu van maken.
6 KM(of zo) is de afstand tussen die 2

B.V.
514,165,7.5
528,61,9.5
hoe kan ik hioer de aftand tussen berekenen.

20 antwoorden

Gesponsorde links
Offline MothZone - 06/07/2006 19:09 (laatste wijziging 06/07/2006 19:15)
Avatar van MothZone PHP ver gevorderde Ik vermoed dat dit x,y,z is?

Dan is het gewoon 2x pythagoras gebruiken denk ik.

edit
Heb ff wat uitgewerkt, vermoed dat het zo wel moet lukken.
  1. afstand1 = (x2 - x1)
  2. afstand2 = (y2 - y1)
  3.  
  4. afstand12 = V(afstand1² + afstand2²)
  5.  
  6. afstand3 = (z2 - z1)
  7.  
  8. totale_afstand = V(afstand12² + afstand3²)

Met die V(...) bedoel ik dus vierkantswortel he

edit2 die van frederic is beter denk ik, ookal komt het op hetzelfde neer
Offline Frederic - 06/07/2006 19:12
Avatar van Frederic PHP ver gevorderde Alstublief 
http://upload.w...539c78.png
Offline groenie - 06/07/2006 19:14
Avatar van groenie Nieuw lid damn, juist te laat;-) ik denk dat het het gemakkelijkst is met die formule. Gewoon x,y en z invullen en je hebt je afstand 
Offline Frederic - 06/07/2006 19:16
Avatar van Frederic PHP ver gevorderde Dit is rekenen met punten in 3D, met de formule die ik je gaf kan je perfect de afstand zoeken..
Offline stijnhau - 06/07/2006 19:31 (laatste wijziging 06/07/2006 19:32)
Avatar van stijnhau Onbekend de coorinaten hangen af van de plaats waar je bent en waar je henen wilt.
ga nu is zien wat je gaf.
gekeken.
maar het probleem is dat het 1 var is.
Offline marten - 06/07/2006 19:32
Avatar van marten Beheerder zijn dit gps coordinaten? Zo nee kan ik deze formule daar ook voor gebruiken?
Offline stijnhau - 06/07/2006 19:35 (laatste wijziging 07/07/2006 15:08)
Avatar van stijnhau Onbekend dit zijn coordinaten van een foto.
waar iets staat waar je op kan klikken.

update:
heb het bijna.
nu wil ik enkel alle $getal optellen.

  1. $a = $query['coords'];
  2. $totala = count(explode(",", $a));
  3. $a = explode(",", $a);
  4.  
  5. $b = $query2['coords'];
  6. $totalb = count(explode(",", $b));
  7. $b = explode(",", $b);
  8.  
  9. $i = 0;
  10. while($i < $totala){
  11. $antwoord = $a[$i];
  12. $stemmen = $b[$i];
  13. $getal = $antwoord - $stemmen;
  14. $getal = abs($getal);
  15. $getal = $getal/100;
  16. $getal = round($getal);
  17. //hier moet ik alle $getallen optellen die er zijn en komen.
  18. //ik moet ze ook hieronder(in of uit de while echoen).
  19. $i++;


update: update:
doe nu vokgens wat je me gaf.
maar hoe tel ik die 3 nu op?
  1. $a = $query['coords'];
  2. $totala = count(explode(",", $a));
  3. $a = explode(",", $a);
  4.  
  5. $b = $query2['coords'];
  6. $totalb = count(explode(",", $b));
  7. $b = explode(",", $b);
  8.  
  9. $i = 0;
  10. $ie = 0;
  11. while($i < $totala){
  12. $antwoord = $a[$i];
  13. $stemmen = $b[$i];
  14. $getal = $antwoord - $stemmen;
  15. $getal =pow($getal,2);
  16. echo $getal;
  17. echo "<br>";
  18. }


update: update: update:
heb dit al maar geeft een fout
Warning: array_sum(): The argument should be an array in /var/www/city-crime/v3/test.php on line 30

Warning: Cannot use a scalar value as an array in /var/www/city-crime/v3/test.php on line 34


Warning: array_sum(): The argument should be an array in /var/www/city-crime/v3/test.php on line 30

Warning: Cannot use a scalar value as an array in /var/www/city-crime/v3/test.php on line 34


Warning: array_sum(): The argument should be an array in /var/www/city-crime/v3/test.php on line 30

Warning: Cannot use a scalar value as an array in /var/www/city-crime/v3/test.php on line 34


Warning: array_sum(): The argument should be an array in /var/www/city-crime/v3/test.php on line 38
  1. $a = $query['coords'];
  2. $totala = count(explode(",", $a));
  3. $a = explode(",", $a);
  4.  
  5. $b = $query2['coords'];
  6. $totalb = count(explode(",", $b));
  7. $b = explode(",", $b);
  8.  
  9. $i = 0;
  10. $ie = 0;
  11. while($i < $totala){
  12. array_sum($getal);
  13. $antwoord = $a[$i];
  14. $stemmen = $b[$i];
  15. $getal = $antwoord - $stemmen;
  16. $getal[$i] =pow($getal,2);
  17. echo "<br>";
  18. $i++;
  19. }
  20. $getalweergeef = array_sum($getal);
  21. echo $getalweergeef;
Offline Thomas - 07/07/2006 14:53
Avatar van Thomas Moderator Wat doen $antwoord en $stemmen daar in hemelsnaam tussen? Het is toch geen poll?

Is het een afstand in een 2-dimensionaal vlak, of een 3-dimensionale ruimte?

Probeer je gedachten eens te ordenen, en pak het stapsgewijs aan.

stap #1: het splitsen van de coordinaten
druk deze eens af bij wijze van debug?
stap #2: het berekenen van de afstand
gebruik de formule die Fréderic gaf als het een 3D-ruimte betreft.
Offline stijnhau - 07/07/2006 15:05 (laatste wijziging 07/07/2006 15:13)
Avatar van stijnhau Onbekend 2D ruimte
jah dat komt uiiit een poll dat stukje.
maar als die fout weg is kan ik weer verder.
update:
Warning: array_sum(): The argument should be an array in /var/www/city-crime/v3/test.php on line 30


Warning: array_sum(): The argument should be an array in /var/www/city-crime/v3/test.php on line 30


Warning: array_sum(): The argument should be an array in /var/www/city-crime/v3/test.php on line 30


Warning: array_sum(): The argument should be an array in /var/www/city-crime/v3/test.php on line 37

  1. $a = $query['coords'];
  2. $totala = count(explode(",", $a));
  3. $a = explode(",", $a);
  4.  
  5. $b = $query2['coords'];
  6. $totalb = count(explode(",", $b));
  7. $b = explode(",", $b);
  8.  
  9. $i = 0;
  10. $ie = 0;
  11. while($i < $totala){
  12. array_sum($getal);
  13. $antwoord = $a[$i];
  14. $stemmen = $b[$i];
  15. $get[$i] = $antwoord[$i] - $stemmen[$i];
  16. echo "<br>";
  17. $i++;
  18. }
  19. $getalweergeef = array_sum($getal);
  20. echo $getalweergeef;
Offline Thomas - 07/07/2006 15:46
Avatar van Thomas Moderator De regelnummers komen niet overeen met je codefragment.

$getal is of niet gedefineerd, of is geen array - je doet ook helemaal niets met die array_sum()...

Echt, gooi al die zooi die er niets mee te maken heeft er eens uit?
Offline stijnhau - 10/07/2006 09:02 (laatste wijziging 10/07/2006 20:44)
Avatar van stijnhau Onbekend dit is al verbneterd maar er gaat nog iets fout.
als je op de foto ziet zie je dat 2 huisjes een maar MM van mekaar liggen de een al verder dan de ander.
maar die dat verder ligt zijn afstand is 2KM korter.
  1. $a = $query['coords'];
  2. $a = explode(",", $a);
  3.  
  4. $b = $query2['coords'];
  5. $b = explode(",", $b);
  6.  
  7. $i = 0;
  8. while($i < 2){
  9. $antwoord = $a[$i];
  10. $stemmen = $b[$i];
  11. $get[$i] = $stemmen[$i] - $antwoord[$i];
  12. $getal[$i] = pow($get[$i],2);
  13. $i++;
  14. }
  15. $getalweergeef = array_sum($getal);
  16. $getalweergeef = sqrt($getalweergeef);
  17. $getalweergeef = round($getalweergeef,2);
  18. echo "De afstand bedraagt ".$getalweergeef." KM.<br>";
Offline marten - 10/07/2006 10:12 (laatste wijziging 10/07/2006 10:13)
Avatar van marten Beheerder welke foto?

regel 8

while($i < '2'

getallen buiten quotes ==> while($i < 2
Offline stijnhau - 10/07/2006 10:16 (laatste wijziging 10/07/2006 21:11)
Avatar van stijnhau Onbekend hij berekent de afstand in dat scriptsje.
maar als je op kaart liggen die 2 coordinaten op een paar mm van mekaar

is de formule mis of is er iets met men scriptje.

http://city-crime.gamecoll.com/fout.JPG
jier zie je duedenlijkd at er iets mis is met de KM's
Offline merlin_nl - 10/07/2006 21:43
Avatar van merlin_nl PHP interesse goh das mijn buurt.. lelystad 
Offline stijnhau - 11/07/2006 08:12
Avatar van stijnhau Onbekend jah dat kan.
maar geen idee waarom de KM's mis zijn
Offline rambo - 11/07/2006 08:56
Avatar van rambo HTML beginner Ik vraag me af waarom je een z-coördinaat erbij neemt? Het is een plat vlak dus er zit helemaal geen diepte in. Een x- en y-coördinaat is genoeg om de afstand tussen 2 punten uit te rekenen; je kan gewoon eenmaal de stelling van Pythagoras gebruiken.
Offline stijnhau - 11/07/2006 10:22 (laatste wijziging 11/07/2006 15:37)
Avatar van stijnhau Onbekend als ik die 3de weg ode dan klopt er niks meer van.
dan is er niks meer.
want dat getal is de groote van de bol.
Offline Thomas - 11/07/2006 15:44
Avatar van Thomas Moderator Moet er dan rekening gehouden worden met de kromming van de aarde? Deze zal niet overal hetzelfde zijn - denk ook aan bergen / dalen / zeeën. Je hebt in dat opzicht sowieso niets aan de hemelsbrede afstand.

Begin gewoon eens in een tweedimensionaal vlak, en maak gebruik van eerdergenoemde voorbeelden (stelling van Pythagoras).
Teken eens het een en ander voor jezelf uit, dat werkt vaak verhelderend.
Offline ottorocket - 11/07/2006 18:04
Avatar van ottorocket Onbekend het is opgelost op http://www.webscripters.be door klasje
  1. <?
  2. //start script
  3.  
  4. $A = explode(",", $_GET[A]);
  5. $B = explode(",", $_GET[B]);
  6.  
  7. $k=$A[0]-$B[0]; //(x-afstand tussen beide punten)
  8. $l=$B[1]-$A[1]; //(y-astand tussen beide punten)
  9. $k=pow($k,2);
  10. $l=pow($l,2);
  11.  
  12. $afstand=sqrt($k+$l);
  13.  
  14. echo 'De afstand tussen beide punten bedraagt: '.$afstand;
  15. ?>
Offline stijnhau - 11/07/2006 18:17
Avatar van stijnhau Onbekend jah het is opgelost.
dankje voor de hulp.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.269s