IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.net] Effet Perspective ou Rotation 3D PictureBox


Sujet :

Windows Forms

  1. #1
    Invité
    Invité(e)
    Par défaut [VB.net] Effet Perspective ou Rotation 3D PictureBox
    Bonjours,

    Es t'il possible de faire cela avec une PictureBox en VB

    Nom : Sans titre-1.jpg
Affichages : 508
Taille : 103,2 Ko

    Je ne trouve que du C# sur internet et des code a rallonge pour de la véritable 3D

    Merci par avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'ai trouver comment faire cette effet mais je n'arrive pas a désactiver l'image original, ni a désactiver se que je vient de faire en MouseHover .
    Le code pour effect
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Public Sub PictureBox_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
            Me.DoubleBuffered = True
            Dim g As Graphics = e.Graphics
            g.DrawLine(System.Drawing.Pens.Transparent, DirectCast(sender, PictureBox).Left, DirectCast(sender, PictureBox).Top, DirectCast(sender, PictureBox).Right, DirectCast(sender, PictureBox).Bottom)
     
            Dim destinationPoints As Point() =
                    {
            New Point(10, 10),
             New Point(petite_pochette_largeur - 10, 0),
             New Point(10, petite_pochette_hauteur)
                }
            Dim test As New Bitmap(DirectCast(sender, PictureBox).Image)
            e.Graphics.DrawImage(test, destinationPoints)
        End Sub
    Voire le résultat

    Nom : Sans titre-1.jpg
Affichages : 505
Taille : 160,6 Ko

  3. #3
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    Pour annuler l'effet ,il suffit d'un CheckBox ...
    il faut savoir que
    1/ quand on dessine sur un PictureBox comme tu le fais ,c.à.d. avec un image assigné à sa prop PictureBox.Image, l'image n'est pas altérée car le dessin se fait sur la surface du control PictureBox

    2/ si un bitmap est crée "vierge" (new bitmap(width,height) ,il a un arrière plan transparent ...
    il suffit donc de dessiner un nouveau bitmap "vierge" avec les mêmes points (destinationPoints) pour effacer le précèdent...
    trêve d'explications, voici ton code .vb revu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    Imports System.Drawing.Drawing2D
     
    Public Class Form2
        Private petite_pochette_largeur As Single = 100
        Private petite_pochette_hauteur As Single = 60
     
        Public Sub New()
     
            ' Cet appel est requis par le concepteur.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            Me.DoubleBuffered = True
        End Sub
        Private Sub PictureBox1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
     
            Dim gr As Graphics = e.Graphics
            gr.DrawLine(Pens.Transparent, 0, 0, PictureBox1.Right, PictureBox1.Bottom)
     
            Dim destinationPoints As Point() =
                    {
            New Point(10, 10),
             New Point(petite_pochette_largeur - 10, 0),
             New Point(10, petite_pochette_hauteur)
                }
     
     
            If Not CheckBox1.Checked Then
                Dim test As Bitmap = PictureBox1.Image
                gr.DrawImage(test, destinationPoints)
     
            Else
                Dim test As Bitmap = New Bitmap(PictureBox1.Image.Width, PictureBox1.Height)
                gr.DrawImage(test, destinationPoints)
     
            End If
     
        End Sub
     
     
     
     
     
     
     
        Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged
            PictureBox1.Invalidate()
        End Sub
    End Class
    Pour faire un texte avec effet perspective "fuyante" ,il faut s'équiper d'un matrix perso Non-Affine de dimension 3 x 3 ,qui gère les coordonnées homogènes...
    Le matrix GDI+ bien que gérant les Coordonnées Homogènes , a sa 3eme colonne inaccessible(sa prop éléments ne renvoie pas les éléments de la 3ième colonne...
    bon code...

Discussions similaires

  1. [Débutant] VB Net effacer un cercle dans un picturebox
    Par Whombat dans le forum VB.NET
    Réponses: 11
    Dernier message: 17/11/2011, 10h35
  2. Effet "eau" sur un control (picturebox)
    Par AliHome dans le forum Windows Forms
    Réponses: 12
    Dernier message: 19/08/2008, 18h05
  3. [VB.NET] Redimensionner une image dans un PictureBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/04/2007, 18h24
  4. Réponses: 5
    Dernier message: 06/03/2006, 16h49
  5. [VB.NET] Probleme de création d'une picturebox dans le code
    Par stringman62 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/02/2006, 16h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo