Vereinfachung möglich?

Klappt? Wunderbar! War nur ausm Stift gesogen ;)
Ab jetz is wieder normale Logik.

Die dadurch errechnete Feldanzahl jeweils mit der "Feldbreite"/"Feldhöhe" eines Sektors multiplizieren dann hast die Entfernung in Feldern.

Das kannst schon besser mit den letzten beiden Koordinatenangaben abgleichen, wobei du aber unterscheiden musst obs von unten links nach oben rechts geht, unten rechts nach oben rechts usw.

Blatt Papier nehmen und mal malen wie und wo die restlichen Koordinaten addiert und subtrahiert werden.

Ich würd hier jetz sagen:
Horizontal = Horizontal - 15 + y1 - y2
Vertikal = Vertikal - 15 + z1 - z2

Aber glaub das passt noch nich so ganz ;) Deswegen mal ne Stunde mit malen verbringen und gucken
 
Ich danke für deine Mühe, aber ich blicke irgendwie nicht mehr durch...

Ich glaube ich belasse es dabei, dass wenn man von Sektor 1 in Sektor 11 will, dass man eben 10 Sektoren durchqueren muss!
 
Überleg es dir bitte nochmal. Sind nur noch ein paar Logik-Schritte. Zwar zeitaufwendig aber einfach.

Und die Entfernung in Sektoren habe ich dir gegeben.
4 Horizontal und 3 Senkrecht macht eine Entfernung von genau 5!
Denke an den Satz des Pythagoras hier: Wurzel ( Horizontal² + Senkrecht² ) = Entfernung
 
Sorry, aber das Problem ist, dass ich das Vorgehen nicht mehr verstehe...

Ich brauche ja die Anzahl der Felder und nicht den Abstand der Sektoren... Man müsste ja eigentlich die Felder weiterdenken vertikal und irgendwie endet da meine Vorstellungskraft das zu lösen... :(
 
Erstmal Anhang gucken. Es geht von 29:y:z bis zu 9:y:z ...

So. Das hier:
PHP:
function distance($detail,$city)
{
  $from = explode(":", $city);
  $to = explode(":", $detail);
  $fields = base_convert(max($from[0], $to[0]) - min($from[0], $to[0]), 10, 6);
  return $fields;
}

distance("29:y:z", "9:y:z");

Sollte den Wert "32" widergeben. Die letzte Ziffer (2) ist der Horizontale unterschied (2 nach links). Alle davor ergeben den Sekrechten unterschied (hier 3 für 3 nach oben).

Die Funktion begrenzt also bis jetzt alles auf die Felder innerhalb von dem grünen Rahmen, dass dürftest schon rausgefunden haben ;)

Wieviele Felder sind in dem grünen Rahmen?
Horizontal : 45, weil (2 + 1) * 15 (einfach einer dazu)
Senkrecht : 60, weil (3 +1) * 15 (auch wieder)

Hoffe ist jetzt klarer geworden ;)

Eventuell gibt die Funktion auch schon 43 aus dann brauchs keinen dazu rechnen ;)
 

Anhänge

  • Bild1.jpg
    Bild1.jpg
    29,5 KB · Aufrufe: 5
Zuletzt bearbeitet:
Und jetzt binde ich die Funktion wieder ein, welche ich vorher hatte oder wie?

An dieser Stelle bin ich ja nicht weiter gekommen...

Kannst du nicht mal so nett sein und mir mit nen bisschen Code helfen? Es reicht auch ein Ansatz.. :)
 
Zuletzt bearbeitet:
Zurück