Grafik Radius

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Grafik Radius

    Hallo und guten Tag zusammen,

    ich arbeite derzeit an einer Grafik die ein Universum darstellt.

    Der Script dafür sieht so aus

    PHP Code:
    <?php
    header
    ("Content-Type: image/png");
    //Farben bestimmen
    $image ImageCreateFromPNG ('universum.png');
    $weiss imagecolorallocate($image,255,255,255);
    $white imagecolorallocate($image,254,254,254);
    $yellowdark imagecolorallocate($image,155,155,0);
    $blue imagecolorallocate($image,0,100,255);
    $limeradius imagecolorallocate($image,0,255,0);
    $gray imagecolorallocate($image,52,52,52);
    $dark imagecolorallocate($image,32,32,32);


    for(
    $i=0$i<1010$i++)
    {
        
    //Gitter zeichnen
        
    imageline($image,$i*10,0$i*10,1000$dark);// Linien x Achsen
        
    imageline($image,2,$i*101000,$i*10$dark);// Linien y Achsen

        
    if($i%10==&& $i>0)
        {
            
    imagestring($image,8,($i-1)*10-20,0,$i,$yellowdark);    // Beschriftung X Achse
            
    imageline($image,$i*10-5,0, ($i-1)*10+5,1000$gray);    // Hilfs Linien X Achse
            
    imagestring($image,5,0,($i-1)*10-12,$i,$yellowdark);    // Beschriftung Y Achse
            
    imageline($image,0,$i*10-51000,($i-1)*10+5$gray);    // Hilfs Linien Y Achse
        
    }
    }


    $x 12 10// Koodinate des Punktes und der Mittelpunkt des Raduis x achse
    $y 15 10// Koodinate des Punktes und der Mittelpunkt des Raduis y achse
    imagefilledellipse($image$x-5$y-51010$yellowdark); // Punk zeichnen
    imagearc($image$x -5$y-510 10 ,  0360$white); // Kreis zeichnen


    imagepng($image,"");
    imagedestroy($image);
    ?>
    Hier ist das Ergebniss des Grafikscriptes.



    Mein Problem liegt nun da, dass ich gerne ermitteln würde, welche Felder sich in dem Radius befinden. Auch die Felder die nicht ganz von dem Kreis umschlossen werden.

    Um Antwort würde ich mich sehr freuen.

    Mit freundlichen Grüßen
    Last edited by MaLaKa; 23-08-2011, 22:42.

  • #2
    Originally posted by MaLaKa View Post
    Hallo und guten Tag zusammen,

    ich arbeite derzeit an einer Grafik die ein Universum darstellt.

    Der Script dafür sieht so aus ...
    TL;DR
    ...
    Mein Problem liegt nun da, dass ich gerne ermitteln würde, welche Felder sich in dem Radius befinden. Auch die Felder die nicht ganz von dem Kreis umschlossen werden.
    Stell dir die Strecke vom Mittelpunkt des Kreises bis zum zu untersuchenden Punkt als Hypotenuse eines rechtwinkligen Dreiecks vor. Deren Länge kannst du berechnen (Stichworte: Pythagoras, c² = a² + b². Ist sie kleiner als oder gleich dem Radius, liegt sie innerhalb des Kreises.
    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

    Comment


    • #3
      Originally posted by fireweasel View Post
      Stell dir die Strecke vom Mittelpunkt des Kreises bis zum zu untersuchenden Punkt als Hypotenuse eines rechtwinkligen Dreiecks vor.
      Was ist denn der zu Untersuchende Punkt ?

      Ich will ja nicht eine Stelle untersuchen. Ich hätte ganz gerne, dass errechnet wird, welche Felder sich in dem Radius befinden, ohne jedes Feld mit einer Kontrollstruktur zu überprüfen. Das Beispiel ist ja mit nur einem Radius. Es wird, sobald ich einen Lösung gefunden habe, zig solcher Radien geben bei denen ich immer wissen muss, welche Kästen sich im Radius befinden, auch die Radien werden variieren, also werden mal mehr und mal weniger Kästen vom Radius eingedeckt.

      Deien Antwort bringt mich nicht wirklich weiter, oder Du müsstest es etwas detailierter erklären. Aber schon mal Danke für eine Antwort MFG

      Comment


      • #4
        Hallo,

        anhand der Koordinaten des Mittelpunkts eines solchen kreisförmigen Bereichs hast du ja eine Startkoordinate, von der du ausgehen kannst, um das erste Feld zu finden, danach gehst du sozusagen spiralförmig nach außen vor. Es besteht also kein Grund, alle Felder durchzuiterieren.

        Eine andere Variante (einfacher aber geringfügig weniger effizient) besteht darin, den Bereich auf das nächstgrößere Rechteck („bounding rectangle“) zu erweitern und alle Felder innerhalb dieses bounding rectangle zu prüfen.

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Comment


        • #5
          Originally posted by AmicaNoctis View Post
          Eine andere Variante (einfacher aber geringfügig weniger effizient) besteht darin, den Bereich auf das nächstgrößere Rechteck („bounding rectangle“) zu erweitern und alle Felder innerhalb dieses bounding rectangle zu prüfen.
          Super super super super, danke =)

          Genau das, was ich versucht habe selber als Formel zu schreiben, gibt es ja schon fertig *_* Deswegen liebe ich PHP so sehr

          Vielen Dank, Du glaubst nicht, wie lange ich nach einer Lösung gesucht habe *_*

          Comment

          Working...
          X