Bonjours,
Es t'il possible de faire cela avec une PictureBox en VB
Je ne trouve que du C# sur internet et des code a rallonge pour de la véritable 3D
Merci par avance
Bonjours,
Es t'il possible de faire cela avec une PictureBox en VB
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ésultat
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
![]()
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 : 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
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...
Partager