AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Überprüfen ob ein rectangle ein anderes überlappt
Thema durchsuchen
Ansicht
Themen-Optionen

Überprüfen ob ein rectangle ein anderes überlappt

Ein Thema von fox67 · begonnen am 12. Jan 2011 · letzter Beitrag vom 16. Jan 2011
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Überprüfen ob ein rectangle ein anderes überlappt

  Alt 12. Jan 2011, 16:38
Deshalb hatte ich die Funktion auch verlinkt (#3).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#12

AW: Überprüfen ob ein rectangle ein anderes überlappt

  Alt 12. Jan 2011, 16:44
Ah, sorry mein Fehler. Ist ja ne WinAPI Funktion.
  Mit Zitat antworten Zitat
fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#13

AW: Überprüfen ob ein rectangle ein anderes überlappt

  Alt 12. Jan 2011, 16:45
macht nichts
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#14

AW: Überprüfen ob ein rectangle ein anderes überlappt

  Alt 12. Jan 2011, 19:20
Man kann es aber auch so machen:
Delphi-Quellcode:
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;

ich denke, die zweite Function ist besser geeignet
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)

Geändert von Progman (12. Jan 2011 um 19:22 Uhr)
  Mit Zitat antworten Zitat
fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#15

AW: Überprüfen ob ein rectangle ein anderes überlappt

  Alt 13. Jan 2011, 14:11
und wie würde dass dann mit einem canavas rectangle aussehen
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#16

AW: Überprüfen ob ein rectangle ein anderes überlappt

  Alt 13. Jan 2011, 14:14
If OverlapRect(Rect(1, 1, 8, 8), Rect(7, 2, 9, 9)) then ...

Du und dein Canvas ... da hat der Canvas nix verloren!
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Überprüfen ob ein rectangle ein anderes überlappt

  Alt 13. Jan 2011, 14:18
da hat der Canvas nix verloren!
Sach ich ja auch schon die ganze Zeit
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#18

AW: Überprüfen ob ein rectangle ein anderes überlappt

  Alt 13. Jan 2011, 14:42
jetzt hab ich eine Idee würde es funktioniere wenn ich an die position des canvas rectangels ein timage anhefte mit der gleichen größe wie wie das canvas?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#19

AW: Überprüfen ob ein rectangle ein anderes überlappt

  Alt 13. Jan 2011, 14:49
Alle Antworten beziehen sich immer auf Koordinaten, diese haben keine Bindung zu einem Canvas, Image was auch immer. Wenn Du etwas malen willst hast Du auch schon Koordinaten.
Wenn Du vor dem Malen auf eine Kollision prüfen willst, verwende die genannten Funktionen um zu prüfen ob Du mit den Koordinaten mit denen Du malen möchtest ein "Problem" bekommst.
Oder meinst Du etwas ganz anderes ....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Überprüfen ob ein rectangle ein anderes überlappt

  Alt 13. Jan 2011, 14:50
Es würde funktionieren, wenn Du einfach die beiden Rechtecke angibst, dazu braucht man doch kein Image.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 10:37 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