Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Dijkstra mittels Image Darstellen und Ecken + Kanten verknüpfen (https://www.delphipraxis.net/169472-dijkstra-mittels-image-darstellen-und-ecken-kanten-verknuepfen.html)

Nathaniel 23. Jul 2012 14:29

AW: Dijkstra mittels Image Darstellen und Ecken + Kanten verknüpfen
 
Zitat:

Wieviele Informationen benötigst du denn in deinem Aufruf?

Delphi-Quellcode:
Image.Canvas.Ellipse(x-CCircle,y-CCircle,x+CCircle,y+CCircle);
Ich sehe da nur die Mittelpunkt-Koordinaten und den Radius (und der ist ja konstant).
Wozu speicherst du also die Eckkoordinaten der Ellipse?
Ich hoffe ich habe deine Anmerkung richtig verstanden.
1) Der Aufruf Image.Canvas.Ellipse benötigt 4 Koordinaten: Start X , Start Y , Ende X , Ende Y (Ausgehend vom Mausklick, welcher X,Y liefert). Da es sich um einen Kreis handelt, ist natürlich die linke Seite mit der rechten identisch nur das die Vorzeichen vertauscht sind.

2) Ich speichere die Eckkoordinaten in einem Array um darauffolgend zu prüfen, ob eine Kante die der Benutzer zeichnen möchte, IN dem Kreis (Waypoint) ist.

@himitsu:

Danke für diese tolle und schönere Alternativmöglichkeit! Ich werde wohl die Rectangle Methode in Betracht ziehen, in der ich die Koor. X und Y an die Funktion gebe. Top Hilfe vielen Dank :thumb:


@Furtbichler:

Anscheinend bist du der einzige der die Fragestellung überhaupt nicht verstanden hat, da von den anderen passende Lösungsvorschläge gekommen sind. Aber um jetzt keinen unnötigen Konflikt (worauf ich gar keine Lust habe) zu erzeugen, sag ich dir folgendes: Ich werde deinen Tipp für die Zukunft berücksichtigen. Danke das du so freundlich bist und bleib wie du bist. Damit machst du dir sicherlich viele Freunde in deinem Leben! :thumb:

Greets

Sir Rufo 23. Jul 2012 15:32

AW: Dijkstra mittels Image Darstellen und Ecken + Kanten verknüpfen
 
Zitat:

Zitat von Nathaniel (Beitrag 1175680)
Zitat:

Wieviele Informationen benötigst du denn in deinem Aufruf?

Delphi-Quellcode:
Image.Canvas.Ellipse(x-CCircle,y-CCircle,x+CCircle,y+CCircle);
Ich sehe da nur die Mittelpunkt-Koordinaten und den Radius (und der ist ja konstant).
Wozu speicherst du also die Eckkoordinaten der Ellipse?
Ich hoffe ich habe deine Anmerkung richtig verstanden.
1) Der Aufruf Image.Canvas.Ellipse benötigt 4 Koordinaten: Start X , Start Y , Ende X , Ende Y (Ausgehend vom Mausklick, welcher X,Y liefert). Da es sich um einen Kreis handelt, ist natürlich die linke Seite mit der rechten identisch nur das die Vorzeichen vertauscht sind.

2) Ich speichere die Eckkoordinaten in einem Array um darauffolgend zu prüfen, ob eine Kante die der Benutzer zeichnen möchte, IN dem Kreis (Waypoint) ist.

Warum du das gemacht hast ist mir schon klar, aber ich wollte eigentlich darauf hinaus, dass es unsinnig/überflüssig/umständlich ist diese Eckkoordinaten zu speichern.

Du begründest das damit, dass du für das Zeichnen des Kreises diese 4 Eckpunkte benötigst, in Wirklichkeit benutzt du aber den Kreis-Mittelpunkt in Verbindung mit dem Radius.
Jetzt sind diese Eckkoordinaten (auf ein mal) nur noch für die Prüfung zuständig ... allerdings eine Prüfung die auf ein Rechteck und nicht auf einen Kreis prüft.

Den Abstand zwischen 2 Punkten ermittelt man mit:
Delphi-Quellcode:
function DistanceBetweenPoints( const pt1, pt2 : TPoint ) : Extended;
begin
  Result := Sqrt( Sqr( pt1.x - pt2.x ) + Sqr( pt1.y - pt2.y ) );
end;
Ist dieser Abstand kleiner oder gleich dem Radius, dann ist der Punkt im Kreis.

Ich hoffe es wird jetzt klarer, warum die Eckkoordinaten unsinnig/überflüssig/umständlich sind.

BTW: Die Kommentare von Furtbichler lagen mir auch auf der Zunge, aber er war einfach nur schneller. Und nur weil himitsu mit einem Schuss ins Blaue ins Schwarze getroffen hat, sollte man nicht davon ausgehen, dass man sich verständlich ausgedrückt hat.

Nathaniel 23. Jul 2012 16:25

AW: Dijkstra mittels Image Darstellen und Ecken + Kanten verknüpfen
 
In Ordnung, das Anliegen wäre dann geklärt.
Danke.

jus 23. Jul 2012 22:52

AW: Dijkstra mittels Image Darstellen und Ecken + Kanten verknüpfen
 
Ist zwar offtopic, doch wie erkennt man, das windows nicht aktiviert wurde? :oops:

Lg,
Jus

Sir Rufo 23. Jul 2012 23:27

AW: Dijkstra mittels Image Darstellen und Ecken + Kanten verknüpfen
 
im ersten beitrag hatte der te ein screenshot vom gesamten bildschirm und unten rechts in der ecke hat windows ihn verpetzt ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz