Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : rotation [ Divers / General ] (1217meyrin)

lundi 11 septembre 2006 à 17:51:34 | rotation

1217meyrin

Bonjour,
voilà un bout de code qui execute une rotation d'un picturebox, mais l'image initiale reste tout le temps, comment faire pour la faire disparaitre?.

code:

Function

Rotation1(ByVal AngleDegre AsInteger)

Dim G As Graphics

'on mémorise la longueur de l'image

'je pars de l'hypothèse que j'utilise une image carré

Dim Largeur AsInteger = AxTransPictureCtl1.Picture.Width

Dim Hauteur AsInteger = AxTransPictureCtl1.Picture.Height

'on mémorise l'image présente dans la picture box

Dim IMG = AxTransPictureCtl1.Picture

'définition de la picturebox comme espace de dessin

G = AxTransPictureCtl1.CreateGraphics()

'on efface

'G.Clear(Me.BackColor)

'on transforme l'angle en radians

Dim Angle AsDouble = AngleDegre / 180 * Math.PI

'on calcule les nouvelles coord X et Y de l'image

Dim PosX AsSingle = Math.Sqrt(2) * (Largeur) * Math.Sin(Angle / 2) * Math.Cos(Math.PI / 4 + Angle / 2)

Dim PosY AsSingle = -Math.Sqrt(2) * (Largeur) * Math.Sin(Angle / 2) * Math.Cos(Math.PI / 4 - Angle / 2)

'on fait la rotation

G.RotateTransform(AngleDegre)

'on dessine l'image rotée aux nouvelles coordonnées

G.DrawImage(IMG, PosX, PosY, Largeur, Hauteur)

'on libère !

G.Dispose()

EndFunction

 

PrivateSub AxTransPictureCtl1_MouseUpEvent(ByVal sender AsObject, ByVal e As AxTransPicture.__TransPictureCtl_MouseUpEvent) Handles AxTransPictureCtl1.MouseUpEvent

If e.button = 1 Then

For i = angle1 To angle1 + 90

Rotation1(i)

'Sleep(10)

Next i

angle1 = angle1 + 90

ElseIf e.button = 2 Then

For j = angle1 To angle1 - 90 Step -1

Rotation1(j)

'Sleep(10)

Next j

angle1 = angle1 - 90

EndIf

EndSub

mardi 12 septembre 2006 à 00:31:50 | Re : rotation

Julien237

J'ai rajouté un
G.Clear(AxTransPictureCtl1.BackColor)
avant le G.Draw et l'image initiale est effacée...
Mais je vois en commentaire un G.Clear(Me.BackColor) en commentaire... Donc j'imagine que tu as déjà essayé ?

Julien.

PS : J'ai utilisé ton code un peu autrement dans le Paint de la pictursBox, peut-être est-ce à cause de ca mais je vois pas le rapport ? Je te colle mes modifs ici, ma pictureBox s'appelle Pic, et j'utilise un timer à 40 pour actualiser l'image...

    Private Sub Pic_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Pic.Paint

        Dim AngleDegre As Single = DateAndTime.Timer * 100

        'on mémorise la longueur de l'image

        'je pars de l'hypothèse que j'utilise une image carrée

        Dim Largeur As Integer = Pic.Image.Width

        Dim Hauteur As Integer = Pic.Image.Height

        'on mémorise l'image présente dans la picture box

        Dim IMG As System.Drawing.Image = Pic.Image

        Dim Angle As Double = AngleDegre / 180 * Math.PI

        'on calcule les nouvelles coord X et Y de l'image

        Dim PosX As Single = Math.Sqrt(2) * (Largeur) * Math.Sin(Angle / 2) * Math.Cos(Math.PI / 4 + Angle / 2)

        Dim PosY As Single = -Math.Sqrt(2) * (Largeur) * Math.Sin(Angle / 2) * Math.Cos(Math.PI / 4 - Angle / 2)

        'on fait la rotation
        e.Graphics.Clear(Pic.BackColor)
        e.Graphics.RotateTransform(AngleDegre)

        'on dessine l'image rotée aux nouvelles coordonnées

        e.Graphics.DrawImage(IMG, PosX, PosY, Largeur, Hauteur)
    End Sub

    Private Sub Tmr_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tmr.Tick
        Pic.Refresh()
    End Sub

mardi 12 septembre 2006 à 18:47:51 | Re : rotation

rt15

Membre Club
Salut,

Ce code à l'air bien :

http://www.vbfrance.com/codes/ROTATION-IMAGE-SON-CENTRE_33250.aspx



Cette discussion est classé dans : image, math, angle, axtranspicturectl1, angle1


Répondre à ce message

Sujets en rapport avec ce message

Sauvegarde image apres rotation [ par alihome ] Bonjour à tous,J'ai trouver un code pour faire une rotation de mon image dans une picturebox et je souhaiterais pouvoir l'enregistrer par la suite ''à Angle d'une image... Assez urgent! :-) [ par WebMagique ] Je veux faire un jeu de course de voitures 2D en VB6...J'ai une image de voiture dont l'avant est à gaucheExemple: /¯¯¯|¯\¯¯¯¯¯|¯¯¯¯¯/|¯¯ Rotations 90 ou autre angle rapides svp de l'aide [ par Anthomicro ] Salut tt le monde !j'ai fait une appli de retouche d'image et j'aimerais trouver des codes rapides pour la rotation d'image en vb sans dll.( moins de entrechoquement de cercle [ par Daemonight ] Je m'adresse au math sup math spé, bref ceux qui peuvent repondre à cette question (ce que mon nivo de 1ere S ne permet pas de faire)L'énnoncé est rad VB dot net (image et scroll bar) [ par ava0275 ] Bonjour a tous ,pour resumer mon probleme , disons que j ai une image (insérée dans un picture box) qui fait 2 fois l ecran de large.je voudrais (sans Image de mon compte [ par i59 ] Comment changer l'ima de mon compte, à chaque fois que je sélectionne "ajout/changer/avatar mon image, j'obtiens une petite fenêtre avec vos icones. P Appliquer un filtre de couleur sur une image? [ par wynxo ] Mon problème est le suivant.Je développe une application composée d'une fenetre MDI, à l'intérieur de laquelle, j'ai mis une image en background.Je pr common dialog [ par lea75 ] Bonjour,J'ai posé la question hier au sujet du common dialog.J'avais une image , un bouton de commande qui permet de parcourir et de sauver l'image ch Comment faire pour qu'une image suive une autre image? [ par deguelatore ] Salut tout le monde, alors voila mon problème:Je cherche à savoir comment faire pour qu'une image A puisse suivre à la trace l'image B. Ensuite, comme Mouvement/Animation image [ par Papymuzo ] Bonjour. Je suis un débutant qui n'a que 3 mois de Vba dans les pattes et je voudrais faire un Rpg. J'ai fait une sotre de "prototype" pour voir comme


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.