| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

23-08-2011, 19:24
|
|
MaLaKa
Registrierter Benutzer
|
|
Registriert seit: Aug 2011
Beiträge: 3
|
|
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*10, 1000,$i*10, $dark);// Linien y Achsen
if($i%10==0 && $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-5, 1000,($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-5, 10, 10, $yellowdark); // Punk zeichnen imagearc($image, $x -5, $y-5, 10 * 6 , 10 * 6 , 0, 360, $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
Geändert von MaLaKa (23-08-2011 um 22:42 Uhr)
|

23-08-2011, 22:53
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 680
|
|
Zitat:
Zitat von MaLaKa
Hallo und guten Tag zusammen,
ich arbeite derzeit an einer Grafik die ein Universum darstellt.
Der Script dafür sieht so aus ...
|
TL;DR
Zitat:
...
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.
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
|

24-08-2011, 22:09
|
|
MaLaKa
Registrierter Benutzer
|
|
Registriert seit: Aug 2011
Beiträge: 3
|
|
Zitat:
Zitat von fireweasel
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
|

24-08-2011, 22:55
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
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
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

24-08-2011, 23:21
|
|
MaLaKa
Registrierter Benutzer
|
|
Registriert seit: Aug 2011
Beiträge: 3
|
|
Zitat:
Zitat von AmicaNoctis
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 *_*
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|