Routenplaner, Galaxiekoordinaten

Lord-Roli

Mitglied
Hallo,

ich bin gerade dabei einen Routenplaner zu basteln.
Der Routenplaner sollte folgendes können.

Man gibt mehrere Koordinaten ein
bsp.:
PHP:
$startkoordinate1 = "10-10-10";
$koords1 = "20-20-20";
$koords2 = "30-30-30";
$koords3 = "40-40-40";
$koords4 = "50-50-50";
$koords5 = "60-60-60";

davon soll er die beste Route finden bsp.: das jetzt der kürzeste weg von "startkoordinate nach koords1 nach koords3 nach koords5 nach koords2 nach koords4" wäre

ich habe mit folgendem code angefangen:

PHP:
<?php

include("config.php");

if (isset($_POST["submit"]))
{

	$id = $_POST["id"];
	$startkoords 		= $_POST["startkoords"];

	$splitStartKoords 	= explode("-", $startkoords); 
	$startX = $splitStartKoords[0]; 
	$startY = $splitStartKoords[1]; 
	$startZ = $splitStartKoords[2]; 
	
	echo "<b>Startpunkt:</b> $startkoords<br/>";
	
	for ($i = 1; $i <= $id; $i++)
	{
		
		$koords[$i]  = $_POST["route$i"];
		$splitKoords = explode("-", $koords[$i]); 
		$xCoord[$i] = $splitKoords[0]; 
		$yCoord[$i] = $splitKoords[1]; 
		$zCoord[$i] = $splitKoords[2]; 
		
		//von Startkoordinate die nächst näherste Koordinate finden
		$firstX  = $startX;
		$secondX = $xCoord[$i];
		
		$firstY	 = $startY;
		$secondY = $yCoord[$i];
		
		$firstZ	 = $startZ;
		$secondZ = $zCoord[$i];
			
		$x = $firstX - $secondX;
		$y = $firstY - $secondY;
		$z = $firstZ - $secontZ;
		
		$c= sqrt($x*$x+$y*$y);
		$entfernung	  = sqrt($c*$c+$z*$z);
		$entfernungen = round($entfernung, 2);

		//weiter weiß i ned oder irgendwas ist falsch
		
	}

}

?>

<script type="text/javascript">

var arrInput = new Array(1);
var arrInputValue = new Array(1);

function addInput() {
arrInput.push(arrInput.length);
arrInputValue.push("");
display();
}

function display() {
document.getElementById('parah').innerHTML="";
for (intI=1;intI<arrInput.length;intI++) {
document.getElementById('parah').innerHTML+=createInput(arrInput[intI], arrInputValue[intI]);
}
}

function saveValue(intId,strValue) {
arrInputValue[intId]=strValue;
}

function createInput(id,value) {
return "Koordinaten Nr."+id+": <input type='text' name=route"+id+" id='route"+ id +"' onChange='javascript:saveValue("+ id +",this.value)' value='"+ value +"'><input type='hidden' name='id' value='"+ id +"'><br><br>";
}

function deleteInput() {
if (arrInput.length > 1) {
arrInput.pop();
arrInputValue.pop();
}
display();
}
</script>


<p align="center"><b>Routenplaner</b> </p>
<p align="center"><hr /></p>
<form method='post' action=''>
<p align="center">Startkoordinate: <input type='text' name='startkoords' id='startkoords' value=''><br>
</p>
<p id="parah" align="center"></p>
<p align="center">
<input type="submit" value="submit" name="submit">
</p>
</form>
<p align="center">
<br>
<a href="javascript:addInput()">Add Coords</a> - <a href="javascript:deleteInput()">Delete Coords</a></p>


komme jedoch leider nicht weiter, da mir der plan dazu irgendwie fehlt und hoffe das ihr mir helfen könnt.

es müsste halt am ende ungefähr so aussehen:

Startpunkt: 10-10-10
weiter zu Punkt Nr.1 : 20-20-20

Punkt Nr.1 : 20-20-20
weiter zu Punkt Nr.2 : 50-50-50

Punkt Nr.2 : 50-50-50
weiter zu Punkt Nr.3 : 30-30-30

Punkt Nr.3 : 30-30-30
weiter zu Punkt Nr.4 : 40-40-$0

Punkt Nr.4 : 40-40-40
weiter zu Punkt Nr.5 : 60-60-60

gruß
roley
 
Zuletzt bearbeitet:
Zurück