Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Image schneiden (https://www.delphipraxis.net/85011-image-schneiden.html)

flori-da 24. Jan 2007 18:19


Image schneiden
 
Hi!

Ich wollt mal fragen, ob es irgendeine procedure oder function gibt, die mir angibt ob sich 2 Image schneiden/berühren?
Das würde mir eine menge arbeit ersparren!
Am liebsten wäre mir ja eine function.
So in etwa soll es dann aussehen:

if check_berührung=true then ...

ich hoffe ihr wisst, was ich meine und hab auch eine lösung für mich..

bye der flo

sirius 24. Jan 2007 18:23

Re: Image schneiden
 
Was bedeutet für dich schneiden/berühren?

Die Muhkuh 24. Jan 2007 18:24

Re: Image schneiden
 
Das die übereinander liegen, imho

sirius 24. Jan 2007 18:28

Re: Image schneiden
 
Na, geht es dabei um die Objekte selber? Da kann man ja sehr simple mit top,left,width und height arbeiten.

Schwieriger wirds, wenn es um den sichtbaren Teil geht.

flori-da 24. Jan 2007 18:29

Re: Image schneiden
 
Ja genau..die beiden Image(s) sollen geprüft werden , ob sie übereinander liegen.
Dazu gehören schneiden, berühren oder halt auch eine gemeinsamme schnittmenge haben.

flori-da 24. Jan 2007 18:30

Re: Image schneiden
 
es geht um 2 TImage

sirius 24. Jan 2007 18:49

Re: Image schneiden
 
ungeprüft:
Delphi-Quellcode:
function touchImage(const image1.image2:TImage):boolean;
  result:=(((image1.left<=image2.left)and(image1.left+image1.width>=image2.left)
  or(((image2.left<=image1.left)and(image2.left+image2.width>=image1.left))
  and(((image1.top<=image2.top)and(image1.top+image1.height>=image2.top)
  or(((image2.top<=image1.top)and(image2.top+image2.height>=image1.top));
end;
so, oder ähnlich?

Nikolas 24. Jan 2007 18:49

Re: Image schneiden
 
Ich gehe davon aus, dass deine Images komplett gefüllt sind, also image1.left dem linken Rand des angezeigten Bildes entspricht usw.
Wenn nicht, musst du entsprechende Korrekturen einrechnen.

Und dann gehts ans Schachteln:
if (bild2.left<bild1.left<bild2.right) and (bild2.Bottom>bild1.Top>bild1.Top) then showmessage(linkeobereEcke von Bild 1 liegt in Bild 2) (Pseudocode)

Und das eben ein paar Mal. Damit hättest du dann nur den Fall nicht eingeschlossen, wenn Bild2 ganz in Bild 1 liegt. Zum Berühren einfach <= statt < benutzen.

flori-da 24. Jan 2007 19:27

Re: Image schneiden
 
Alles klar. Also kennt ihr auch keine schon in einer Delphi Unit vorhandene Function, die das prüft.
Da muss man sich dann wohl selbst eine schreiben > siehe Nikolas Engelhardt!!
Aber trotzdem vielen Dank für euere Mithilfe.
:lol:

Khabarakh 24. Jan 2007 19:36

Re: Image schneiden
 
TControl.BoundsRect + Types.IntersectRect :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 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