Abfragen welche Cords am nächsten sind

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag,


    ich hätte gerne eine Abfrage in meinem Script, die abfragt welche der 3 gegeben Cordinaten die näherste ist.
    Kann man sowas abfragen? Wenn ja wie?



    MfG.

  • Hab ich schon.


    Ich definiere die drei Cordinaten damit, nur wie frage ich nun ab welche die näherste ist?
    Bei zwei wäre es ja einfach. Dann würde ich einfach abfragen Cord1 < Cord 2 oder so aber mit dreien verstehe ich es nicht.


    MfG.


  • new Float:pos[][3] =
    {
    {1.0, 1.0, 1.0}, //Position 1
    {5.0,5.0,5.0}, //2
    {3.0,3.0,3.0} //3
    //...
    };


    new next, Float:dist = Float:0x7F800000, Float:temp;
    for(new i;i<sizeof(pos);i++)
    {
    if( (temp = GetPlayerDistanceFromPoint(playerid, pos[i][0], pos[i][1], pos[i][2])) < dist)
    {
    dist = temp;
    next = i;
    }
    }

    Damit könntest du beliebig viele Punkte verwenden, und den nächsten herrausfinden. Next ist in diesem Fall der Index der nächsten Koordinaten.
    printf("%f - %f - %f",pos[next][0], pos[next][1], pos[next][2]);
    Das ganze ist ungetestet, aber vom Prinzip her kannst du das so machen.