AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi selbsterstellte Canvas-Objecte sollen sich nicht überschneid
Thema durchsuchen
Ansicht
Themen-Optionen

selbsterstellte Canvas-Objecte sollen sich nicht überschneid

Ein Thema von Delphi-Noobie · begonnen am 1. Dez 2004 · letzter Beitrag vom 2. Dez 2004
 
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#1

selbsterstellte Canvas-Objecte sollen sich nicht überschneid

  Alt 1. Dez 2004, 21:15
hi, ich hab ne unit geschrieben, die ein haus mit canvas auf einem Formular erzeugt, dazu werden 3 werte übergeben (x1,y1, breite des hauses). Jetzt werden die häuser mit randombreiten erstellt. Wie kann ich abfangen, dass die häuser sich überschneiden, jedoch jeder vorhandene Platz auf dem Formular genutz wird? Hier mal der Code:
Code:
var t:integer = 0;
    q,w,e:array[0..100000] of integer; // zum speichern der Koordinaten im randomfall

implementation

constructor Thaus.create(a:Tform;zx,zy,zbreite:integer);
var g:integer;
begin
zx := (zx div 30) * 30;  // das geht nur, wenn zbreite immer konstant ist, hier 30
zy := (zy div 45) * 45 ; // das haus is zbreite breit und zbreite + zbreite div 2 hoch
q[t]:=zx;
w[t]:=zy;
e[t]:=zbreite;
for g:=t-1 downto 0 do begin
if ((q[g] = zx) and (w[g] = zy)) // dadurch werden sie nicht am selben Punkt nochmal erstellt
then begin inc(v); a.Caption:=inttostr(v)+ ' Häuser konnten nicht erstellt werden, da sie sich überlagern würden!!'; exit; end; /
end;
inc(t);
end;
gemalt wird das haus natürlich mit einer anderen procedure. Er soll jetzt aber immer ein Haus an einer freien Stelle erstellen können bei random breiten, abhängig von der größe von zbreite, die sich nicht überschneiden. Hab keine Peilung wie ich das machen soll
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz