![]() |
AW: Überprüfen ob ein rectangle ein anderes überlappt
Zitat:
|
AW: Überprüfen ob ein rectangle ein anderes überlappt
Du hast 2 Rechtecke, nicht Canvas.Rectangle :!: Diese Rechtecke werden ja wohl über 4 Punkte definiert. Nun nimmst Du diese 4 Punkte und wandelst sie mittels der Rect-Function in 2 TRect, die Du der Berechnung übergeben kannst.
|
AW: Überprüfen ob ein rectangle ein anderes überlappt
Meinst Du, Du haste zwei Images oder Shapes oder ähnliches welche Du hin und her schubst, falls ja dann Posting #5, ansonsten versteht hier niemand was Du nicht verstehst.
|
AW: Überprüfen ob ein rectangle ein anderes überlappt
Ich kann mich vielleicht noch eher in Anfänger hineindenken: :-D
Du hast zwei Möglichkeiten: Entweder, Du setzt 2 Komponenten (z.B. TImage oder testweise TPanel, eines rot, eines grün) auf ein Formular oder auf ein Panel, deren Position Du dann mit Left und Top änderst (dann brauchst Du Dich mit einem Canvas nicht herumschlagen, da die Komonenten automatisch gezeichnet werden) -oder- Du nimmst Dir irgendeine Komponente und zeichnest auf dessen Canvas zwei bunte Rechtecke (das ist etwas umständlicher, da Du diese Bereiche bei Verschiebungen löschen und versetzt neu zeichnen musst; auch das Steuern mit der Maus oder Tastatur ist etwas aufwendiger). In BEIDEN Fällen kannst Du aber nicht automatisch prüfen, ob es Überschneidungen gibt. Du musst die 2 Bereiche in TRect-Variablen speichern (egal, was nun tatsächlich auf dem Bildschirm passiert) und kannst die zwei TRect auf Überscneidungen prüfen... |
AW: Überprüfen ob ein rectangle ein anderes überlappt
Zitat:
|
AW: Überprüfen ob ein rectangle ein anderes überlappt
Zitat:
|
AW: Überprüfen ob ein rectangle ein anderes überlappt
Zitat:
|
AW: Überprüfen ob ein rectangle ein anderes überlappt
Hallo,
Google-Suche ist kaputt ? ![]() Steht doch alles schön da ... Heiko |
AW: Überprüfen ob ein rectangle ein anderes überlappt
:wall::wall: wusst ich's doch :dance:
@hoika Du hast den Threadverlauf nicht verfolgt,oder... |
AW: Überprüfen ob ein rectangle ein anderes überlappt
Blöde frage ABER:
Code:
Kann es nicht sein das obige funktionen beide nicht zum ziel führen? Die overlap zum beispiel erfordert doch das ALLE4 punkte des ersten im zweiten Rect liegen. Overlap heißt für mich aber auch das schon ein punkt im Anderen rechteck genügt o.O(ebend überlappend/überschneidend)
function RectInRect(const Rect1, Rect2: TRect): Boolean;
begin Result := (Rect1.Left >= Rect2.Left) and (Rect1.Right <= Rect2.Right) and (Rect1.Top >= Rect2.Top) and (Rect1.Bottom <= Rect2.Bottom); end; //oder function OverlapRect(const Rect1, Rect2: TRect): Boolean; begin Result := (Rect1.Left < Rect2.Right) and (Rect1.Right > Rect2.Left) and (Rect1.Top < Rect2.Bottom) and (Rect1.Bottom > Rect2.Top); end; Korrektes Overlapping müsste doch so aussehen(oder nicht?):
Code:
MFG
function IsOverlapping(ARect1, ARect2: TRect): Boolean;
begin Result := NOT((ARect1.Left > ARect2.Right) OR (ARect1.Right < ARect2.Left) OR (ARect1.Top < ARect2.Bottom) OR (ARect1.Bottom > ARect2.Top)); end: Memnarch |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:29 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-2025 by Thomas Breitkreuz