J'utilise Le officiel Description dit P>
La transformation actuelle du contexte graphique G est utilisée pour calculer l'intérieur de la région sur la surface de dessin. P>
blockQuote>
Quelle transformation en deux dimensions pourrait éventuellement séparer deux régions qui se chevauchent ou faire une région non vide vide? P>
Est-ce une question de granularité? D'aliasing vs anti-aliasing? P> région.Impty () code> Pour voir si deux régions se croisent, mais je ne comprends vraiment pas pourquoi je dois fournir un code> graphique code> contexte. < / p>
3 Réponses :
the Ce n'est pas nécessairement en train de vérifier si deux régions se croisent, mais plutôt si une région intersections les autres articles em> sur une surface de dessin. L'instance code> graphique code> permet la région région.Impty (graphisme g) code> méthode vérifie pour voir si le contexte graphique actuel spécifié comme g em> a des éléments qui occupent la région spécifique. P>
code> d'effectuer une vérification de la surface de dessin, car cela est défini comme le graphique
code>. Dans un sens, cette méthode est vraiment comme [pas de code de travail]
g.conainselementsQuiSect (young) code>. P>
Donc, région code> est dans un sens une classe d'utilitaire pour
graphiques code> alors? J'ai suivi la recommandation à Stackoverflow.com/questions/3615326/... (et ailleurs), mais il semble que ce ne soit pas la voie à suivre.
@Zano Vous devez essentiellement dessiner une région dans un graphisme, puis vérifier avec le 2e. Cela vous donnerait une opération «faire ces intersections».
Avec l'exception possible des contextes graphiques du métafichier, il n'y a pas de concept de contexte graphique "ayant des éléments" ou "éléments contenant des éléments". Les choses que vous dessinez sont rastralisées sur une image bitmap ou HDC. Il n'y a pas d'enregistrement que vous pouvez vérifier pour voir qu'une région particulière a été dessinée pour produire les bits actuels ou que le dessin a été effectué par System.Drawing plutôt que de la manipulation de GDI ou de mémoire. Avec cela à l'esprit, votre réponse n'a aucun sens.
de votre lien: p>
teste si cette région a un intérieur vide sur le surface de dessin. p> blockQuote>
Le terme opératoire dans cette déclaration est
surface de dessin fort>. Pour avoir une surface de dessin, vous avez besoin d'un contexte graphique et donc une instance d'un objet graphique. P> Que la documentation mentionne une transformation est probablement juste un peu de jargon déroutant. C'est juste une façon fantaisie de dire que la valeur de retour sera vraie dans l'état actuel du contexte graphique. Si quelque chose change, comme une scaltransform ou même un appel à la vanille, il y avait une "transformation", puis votre résultat indéectoriel peut ne plus être valide. P>
aussi
Les régions sont une fonctionnalité GDI et fortement corrélées aux contextes de l'appareil GDI. Vous pouvez spécifier une région avec des numéros de points flottants, comme le constructeur qui prend un groupe graphique ou un rectanglef. Mais les calculs ultimes sont effectués avec une précision entière. Juste assez bon pour la précision du pixel, plus besoin n'est nécessaire. P>
Le mappage des coordonnées logiques aux coordonnées de périphériques (I.E. pixels) est guidée par la configuration du contexte du périphérique. Qui peut avoir un mode de mappage autre que 1: 1. Donc, une région qui est un rectangle de, disons, 2,0 x 2,0 peut devenir vide une fois que cela est mappé aux pixels. Découvrez SetMapMode () a> par exemple. p>
montre donc lorsque vous avez l'intention d'utiliser des régions en tant qu'outil général, en particulier le manque de précision dans le résultat (pas mieux que la précision entière) peut être une surprise. P>