Textures sur parallélogramme GDI + ?

cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011 - 22 oct. 2008 à 22:44
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 23 oct. 2008 à 12:39
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

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
22 oct. 2008 à 22:59
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-
0
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011
23 oct. 2008 à 10:43
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..
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
23 oct. 2008 à 10:52
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-
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
23 oct. 2008 à 12:39
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 );
0
Rejoignez-nous