Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# Region: IsVisible-Fehler (https://www.delphipraxis.net/114995-region-isvisible-fehler.html)

JasonDX 4. Jun 2008 00:41


Region: IsVisible-Fehler
 
Folgendes Problem: Ich will testen, ob ne Region in nem Rechteck sichtbar ist. Dazu gibts die entsprechende Methode IsVisible. Die scheint allerdings ne Macke zu haben:
Code:
Region r = new Region(new RectangleF(0, 0, 1, 1));

Visible1 = r.IsVisible(new RectangleF(0.0f, 0.0f, 0.1f, 0.1f));
Visible2 = r.IsVisible(new RectangleF(0.1f, 0.1f, 0.1f, 0.1f));
Visible1 ist korrekterweise true. Visible2 ist aber seltsamerweise false, obwohl das kleine Quadrat doch eindeutig im großen liegt, ergo sichtbar ist. Wie kommt das, und wie kann ich das Problem umgehen? :gruebel:

greetz
Mike

[Edit]Beispiel noch offensichtlicher gemacht...

JasonDX 4. Jun 2008 15:40

Re: Region: IsVisible-Fehler
 
Ok, ich hab die Ursache gefunden. IsVisible arbeitet trotz float-Angabe trotzdem nur mit Ganzzahlen. (Ja, da hätt ich früher draufkommen können...) Warum allerdings das Rechteck im 0-Punkt sichtbar ist, und das verschobene nicht, weiß ich nicht.
Jedenfalls umgeh ich jetzt einfach das Problem, indem ich das Rechteck auf [0..1000] statt [0..1] abbilde, und die Regionen entsprechend skaliere.

greetz
Mike


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