Bonjours,
Es t'il possible de faire cela avec une PictureBox en VB
Pièce jointe 328065
Je ne trouve que du C# sur internet et des code a rallonge pour de la véritable 3D
Merci par avance
Version imprimable
Bonjours,
Es t'il possible de faire cela avec une PictureBox en VB
Pièce jointe 328065
Je ne trouve que du C# sur internet et des code a rallonge pour de la véritable 3D
Merci par avance
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
Voire le résultatCode:
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
Pièce jointe 329453
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 :
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...Code:
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
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...