Textures sur parallélogramme GDI + ?

Signaler
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
30 juin 2011
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Bonjour,

Comment peut-on appliquer une texure sur un parallélogramme ?
Je dispose d'un PictureBox dans laquelle j'affiche un losange (n*n) composé de n*n parallélogrammes.
J'essaie d'appliquer un texture sur chacun de ces parallélogrammes, mais aucune délimitation de texture ne s'effectue et je me retrouve donc avec des textures cheval sur plusieurs parrallelogrammes..

En gros je voudrais obtenir des "tuiles" ayant chacun la même surface texturée appliquée..

Heuu en espérant que vous m'avez compris (j'ai du mal à l'expliquer) et que vous auriez une petite idée, merci :)

Cordialement,

Anz

4 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Bonjour,
Je ne vois pas trop le problème, un bout de code pourrait être un plus pour mieux comprendre.
Pour dessiner une région, tu peux utiliser la méthode FillRegion qui prend un Brush et une région en paramètre. La région peut être construite avec un GraphicsPath comme ceci par exemple:

GraphicsPath gp =
new
GraphicsPath(
FillMode.Winding);
gp.AddPolygon(
new
Point[] {
new
Point(20, 10),
new
Point(40, 10),
new
Point(30, 40),
new
Point(10, 40) });
e.Graphics.FillRegion(
Brushes.Red,
new
Region(gp));

<hr />
-My Blog-
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
30 juin 2011

Bonjour,

En fait (comme je le pensais) tu ne m'as pas compris.
Je sais appliquer une couleur sur un polygone, remplir une région.
Là n'est pas le problème, je parle en fait d'appliquer une texture et plus particulièrement sur un ensemble de parallèlogrammes pour donner une impression de perspective.

En fait j'essaye d'obtenir une "carte" composée de tuiles avec la texture qui s'applique entierement sur chaque tuile et non en partie..
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Si tu veux vraiment faire de la texture et autres joyeuseté de ce genre, peut-être que tu as meilleur temps de regarder du côté de DirectX plutot que de GDI+... non?

<hr />
-My Blog-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Salut, bien que je ne suis pas sûr de bien comprendre non plus, as tu testé la classe TextureBrush ?

gp = new GraphicsPath( );
gp.AddPolygon
(
    new Point[ ]
    {
        new Point( 10, 110 ),
        new Point( 60, 10 ),
        new Point( 110, 110 )
    }
);
tb = new TextureBrush(
    Image.FromFile( @"C:\Users\Mike\Pictures\img.jpg" ) );


// ..


// Dans OnPaint ..
args.Graphics.FillPath( tb, gp );