Region picturebox

cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 15 nov. 2011 à 15:08
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 16 nov. 2011 à 11:54
Bonjour à tous

j'ai un picturebox pic1
j'essaie de le transformer en 3d
ça ne donne pas comme il faut

Private Sub Design()
        '      3          2
        '   0           1  

        '                  6
        '               7
   Dim pt(11) As Point
   Dim side As Integer
   side = 10
   pt(0).X = 0
   pt(0).Y = side
   pt(1).X = pt(0).X + pic1.Width - side
   pt(1).Y = pt(0).Y
   pt(2).X = pt(1).X + side
   pt(2).Y = pt(1).Y - side
   pt(3).X = pt(0).X + side
   pt(3).Y = pt(0).Y - side

   pt(4) = pt(1)
   pt(5) = pt(2)
   pt(6).X = pt(2).X
   pt(6).Y = pt(5).Y + pic1.Height
   pt(7).X = pt(4).X
   pt(7).Y = pt(6).Y + side

   pt(8) = pt(0)
   pt(9) = pt(1)
   pt(10) = pt(7)
   pt(11).X = pt(0).X
   pt(11).Y = pt(7).Y

   Dim region(pt.Length - 1) As Byte
   For x = 0 To pt.Length - 1
        region(x) = CType(PathPointType.Line, Byte)
   Next
   Dim path As New GraphicsPath(pt, region)
        pic1.Region = New Region(path)
    End Sub


merci d'avance

8 réponses

Utilisateur anonyme
15 nov. 2011 à 18:53
Salut ShayW,
j'essaie de le transformer en 3d
Tu dois vouloir parler d'un effet visuel ?

ça ne donne pas comme il faut
On peut savoir ce que ça doit donner ?
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
15 nov. 2011 à 21:03
Salut Banana32
ça doit donner une boite à trois face

j'ai dessiné sur une feuille une boite à trois
plans

un rectangle et deux parallelogramme
le rectangle representé par 4 point
p(0) p(1) p(2) p(3)
la face supérieur
p(4) p(5) p(6) p(7)
la face de coté
p(8) p(9) p(10) p(11)

Private Sub DesignPanel()
        Dim pt(11) As Point
        Dim side As Integer
        side = 10
        pt(0).X = 0
        pt(0).Y = side
        pt(1).X = pt(0).X + pic1.Width - side
        pt(1).Y = pt(0).Y
        pt(2).X = pt(1).X
        pt(2).Y = pt(1).Y + pic1.Height
        pt(3).X = pt(0).X
        pt(3).Y = pt(2).Y

        pt(4) = pt(0)
        pt(5) = pt(1)
        pt(6).X = pt(5).X + side
        pt(6).Y = pt(5).Y - side
        pt(7).X = side
        pt(7).Y = pt(6).Y
        pt(8) = pt(2)
        pt(9) = pt(1)
        pt(10) = pt(6)
        pt(11).X = pic1.Width - side
        pt(11).Y = pic1.Height - side

        

        Dim region(pt.Length - 1) As Byte
        For x = 0 To pt.Length - 1
            region(x) = CType(PathPointType.Line, Byte)
        Next
        Dim path As New GraphicsPath(pt, region)
        pic1.Region = New Region(path)
    End Sub


quand je lance je vois un rectangle tronqué
j'ai verifié d'abord une face
pt(0) à pt(3)
c'est bon
ensuite deux face: le rectangle et la face
supérieur p(0) à p(7)
c'est bon aussi je vois deux plan
le problème quand j'ajoute la 3ième face
ça perd la forme
0
Utilisateur anonyme
15 nov. 2011 à 22:52
Si je comprends bien ca doit ressembler a ça ?
__________
/__________/|
| ||
| ||
|___________|/

Si oui, tu ne peux prendre que les points extérieurs pour le 'régionage'.
Pour les traits intérieurs, dessine les sur un bitmap et charge ce dernier en image de fond de ton picturebox. Et impose ensuite, par code, la zone de saisie allouée à l'utilisateur qu'à partir de la X ligne.

Bonne nuit.
0
Utilisateur anonyme
15 nov. 2011 à 22:53
Oups mon dessin n'a rien donné, je t'assure qu'il était pourtant de toute splendeur avant l'envoi du message
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
15 nov. 2011 à 22:55
On verra si ca marche mieux avec une balise de code
   __________ 
 /__________/|
|           ||
|           ||
|___________|/
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
15 nov. 2011 à 23:20
OUI comme ton dessin Picasso
Si oui, tu ne peux prendre que les points extérieurs pour le 'régionage'


j'ai bien defini tous les points à l'interieur
du picturebox

que veux tu dire les points exterieur ?
0
Utilisateur anonyme
16 nov. 2011 à 00:20
Je me suis mal exprimé en parlant d'extérieur.
Comment t'expliquer ça.
Remplis mon dessin de noir complètement sans t'occuper des 3 traits intérieur.
Tu vas obtenir une forme avec 6 arrêtes. C'est cette forme que tu vas devoir 'régioner".
Ensuite, pour dessiner les 3 traits intérieurs, tu peux les dessiner sur un bitmap. Ceci te donneras l'illusion d'une forme en 3D.
Quand tu testeras ton projet, tu t'apercevra que le curseur sera invisible puisqu'il va se situer en haut et à gauche (zone invisible).
Donc tu devras, par code, placer ton curseur plus bas dans la zone visible du 'régionage'.
J'espère que j'ai été assez clair
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
16 nov. 2011 à 11:54
Salut

Oui j'ai compris je l'ai fait
ça ne sort pas terrible
au moins j'ai appris une chose

Bonne prog
0