Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Einlesen einer Position im Raum und grafische Ausgabe (https://www.delphipraxis.net/12300-einlesen-einer-position-im-raum-und-grafische-ausgabe.html)

cook 24. Nov 2003 18:16


Einlesen einer Position im Raum und grafische Ausgabe
 
Folgendes:
Also ich habe einen Raum in den mehrere Maschinen gestellt werden sollen. Nachdem Breite und Länge bekannt gemacht wurden soll auch die Position im Raum eingegeben werden. Mir fällt allerdings nichts ein wie ich das machen könnte. Der Raum kann max. 500m breit und lang sein. Jetzt soll der User bestimmen wo die Maschine hin kommt. Dabei muss natürlich berücksichtigt werden das sich die Maschinen nicht überschneiden und auch nebendeinander passen, also nicht größer als der Raum sind.
Dachte erst ich mache das Grafisch, indem ich einen Raum zeichne, dort dann eine Maschine einfüge und diese mit scrollbars verschieben kann. Aber irgendwie komm ich da nicht weiter. Dann dachte ich daran aus einer ComboBox voreingestellte Meterwerte auswählen zu lassen. Allerdings ist das bei einer Raumbreite von 500 Metern ziemlich unschön.
Hat irgendwer ne Idee oder vielleicht ein Beispielprogi wie ich das machen könnte?

THX 4 every hint
mfg cook

Seniman 24. Nov 2003 18:28

Re: Einlesen einer Position im Raum und grafische Ausgabe
 
Hallo

kannst du dein Problem etwas genauer beschreiben? Meinst du mit "Raum" ein Zimmer, in zwei Dimensionen (etwa in Vogelperspektive)? Sollen dir Maschinen stufenlos verschiebbar sein oder auf ein Raster festgelegt sein?

Grüße
Seniman

cook 24. Nov 2003 18:46

Re: Einlesen einer Position im Raum und grafische Ausgabe
 
Genau... ein Zimmer aus Vogelperspektive. Also es gibt nur eine X- und eine Y- Koordinate.
Stufenlos verschiebbar kann man schon sagen. Also eine Maschine muss mind. 1 Meter von einer Wand und mind. 2 Meter von einer anderen Maschine entfernt stehen. Ansonsten kann sie überall im Raum stehen. Dabei wäre die Angabe meinetwegen sowas wie: 2,60m von der oberen Wand und 5,30m von der linken Wand. Bei einer Maschine die 1x1m ist würde somit die nächste Maschine max bei 5,60m von oben oder bei 8,30m von links stehen können.

Reicht die Beschreibung?

Seniman 24. Nov 2003 19:26

Re: Einlesen einer Position im Raum und grafische Ausgabe
 
Hallo cook,

versuch mal folgendes:
Zuerst solltest du dir einen geeigneten Datentyp für die Maschinen definieren, z.B. TMaschine. Dieser Datentyp sollte die Informationen über die Position x,y und die Größe (Länge und Breite) der Maschine enthalten.
Dann würde ich dir vorschlagen, einen Array von diesen Maschinen zu erstellen.
Nun kannst du z.B. eine Funktion schreiben, die überprüft, ob zwei Kisten, den erforderlichen Abstand haben:

Delphi-Quellcode:
function GenugAbstand(Maschine1, Maschine2: TMaschine): Boolean;
begin
  result:=false;
  if ((Maschine1.x+Maschine1.Breite+Mindestabstand<Maschine2.x) or
     (Maschine2.x+Maschine2.Breite+Mindestabstand<Maschine1.x)) and
     ((Maschine1.y+Maschine1.Laenge+Mindestabstand<Maschine1.y) or
     (Maschine2.y+Mascine2.Laenge+Mindestabstand<Maschine2.Y)) then result:=true;
end;
Diese Funktion gibt, wenn du zwei Maschinen eingibt, in form eines Boolean zurück, ob diese Maschinen weit genug von einander weg stehen (true=ok, false=zu nach).
In Mindestabstand musst du dann den Mindestabstand zwischen den Maschinen speichern, in deinem Beispiel 2.
Eine ähnliche Funktion kannst du dann noch für den Abstand Wand-Maschine schreiben.
Ich hoffe du kannst mit diesem Ratschlag etwas anfangen.

Grüße
Seniman


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 Uhr.

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