Berechnung einer Entfernung mittels Koordinaten

Ja, die Funktion liefert immer X- und Y-Wert.
Also einfach damit Koordinaten für beide Punkte berechnen und Entfernung ausrechnen wie beschrieben.

Poste doch mal deinen Code.
 
Code:
$k1 = 1;
$k2 = 1;
$k3 = 1;

$k4 = 1;
$k5 = 1;
$k6 = 2;


$a = array( "inselpunkte_breite" => 4, 
            "inselpunkte_hoehe" => 4, 
            "inselgruppen_breite" => 10, 
            "inselgruppen_hoehe" => 10, 
            "ozeane_breite" => 2, 
            "ozeane_hoehe" => 2 
        ); 

function berechne_koordinaten1($k1, $k2, $k3){ 
    global $a; 
    $x1 = (($k1-1)%$a['ozeane_breite'])*$a['inselgruppen_breite']*$a['inselpunkte_breite'] + (($k2-1)%$a['inselgruppen_breite'])*$a['inselpunkte_breite'] + ($k3-1)%$a['inselpunkte_breite']; 
    $y1 = floor(($k1-1)/$a['ozeane_breite'])*$a['inselgruppen_hoehe']*$a['inselpunkte_hoehe'] + floor(($k2-1)/$a['inselgruppen_breite'])*$a['inselpunkte_hoehe'] + floor(($k3-1)/$a['inselpunkte_breite']); 
    return array($x1, $y1); 
}  

function berechne_koordinaten2($k4, $k5, $k6){ 
    global $a; 
    $x2 = (($k4-1)%$a['ozeane_breite'])*$a['inselgruppen_breite']*$a['inselpunkte_breite'] + (($k5-1)%$a['inselgruppen_breite'])*$a['inselpunkte_breite'] + ($k6-1)%$a['inselpunkte_breite']; 
    $y2 = floor(($k4-1)/$a['ozeane_breite'])*$a['inselgruppen_hoehe']*$a['inselpunkte_hoehe'] + floor(($k5-1)/$a['inselgruppen_breite'])*$a['inselpunkte_hoehe'] + floor(($k6-1)/$a['inselpunkte_breite']); 
    return array($x2, $y2); 
}  


$abstand = sqrt((($x1-$x2)*($x1-$x2)) + (($y1-$y2)*($y1-$y2)));
 
Du brauchst die Funktion nur einmal.
Außerdem solltest du sie auch mal aufrufen...

PHP:
$a = array( "inselpunkte_breite" => 4,
            "inselpunkte_hoehe" => 4,
            "inselgruppen_breite" => 10,
            "inselgruppen_hoehe" => 10,
            "ozeane_breite" => 2,
            "ozeane_hoehe" => 2
        );

function berechne_koordinaten($k1, $k2, $k3){
    global $a;
    $x = (($k1-1)%$a['ozeane_breite'])*$a['inselgruppen_breite']*$a['inselpunkte_breite'] + (($k2-1)%$a['inselgruppen_breite'])*$a['inselpunkte_breite'] + ($k3-1)%$a['inselpunkte_breite'];
    $y = floor(($k1-1)/$a['ozeane_breite'])*$a['inselgruppen_hoehe']*$a['inselpunkte_hoehe'] + floor(($k2-1)/$a['inselgruppen_breite'])*$a['inselpunkte_hoehe'] + floor(($k3-1)/$a['inselpunkte_breite']);
    return array($x, $y);
}  


$koordinaten_1 = berechne_koordinaten(1,1,1);
$koordinaten_2 = berechne_koordinaten(1,1,2);
$abstand = sqrt(pow($koordinaten_1[0]-$koordinaten_2[0],2) + pow($koordinaten_1[1]-$koordinaten_2[1],2));
 
Zurück