Rotation d'une image a l'angle voulu !

Soyez le premier à donner votre avis sur cette source.

Vue 6 512 fois - Téléchargée 1 190 fois

Description

pour faire tourner votre image tres facilement avec le nivo de precision voulu !

Source / Exemple :


Private Sub Command1_Click()
Rotation Picture1, Picture2, 90, 10 'apeller du sub| picture1 = image a tourner, picture2= image de fin, 90 = la rotation en degrer, 10 la precision
End Sub

Sub Rotation(Picture1 As PictureBox, Picture2 As PictureBox, Angle As Long, Precision As Long)
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
r = Atn(1) * 4 / 180
If Picture1.Width > Picture1.Height Then
Picture2.Width = Picture1.Width + (Picture1.Width / 2)
Picture2.Height = Picture1.Width + (Picture1.Width / 2)
Else
Picture2.Width = Picture1.Height + (Picture1.Height / 2)
Picture2.Height = Picture1.Height + (Picture1.Height / 2)
End If
centrex1 = Picture1.ScaleWidth / 2
centrey1 = Picture1.ScaleHeight / 2
centrex2 = Picture2.ScaleWidth / 2
centrey2 = Picture2.ScaleHeight / 2
For y = 0 To Picture1.ScaleHeight Step Precision
For x = 0.0001 To Picture1.ScaleWidth Step Precision
p = Picture1.Point(x, y)
wx = x - centrex1
wy = y - centrey1
a = Atn(wy / wx) / r + Angle
If x > centrex1 Then a = a + 180
t = Sqr(wx * wx + wy * wy)
DoEvents
rx = centrex2 - Cos(a * r) * t
ry = centrey2 - Sin(a * r) * t
Picture2.PSet (rx, ry), p
Next
Next
End Sub

Conclusion :


et voila soyer simpa et laisser des commentairessssssssss ;-) :-) !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
15
Date d'inscription
vendredi 17 septembre 2004
Statut
Membre
Dernière intervention
11 mai 2007

Pour ceux qui utiliseraient encore cette source, sacher qu'une API Windows est là pour faire ce travail. Et elle est quasi instantanée, donc s'il vous plait, n'utiliser pas ce genre de code, ne soyez pas si cruel avec votre machine.
L'API s'appel PlgBlt, vous trouverez toutes les infos dessus sur le net. Elle déforme n'importe quel rectangle en parallélogramme ( la rotation est un cas particulier d'une telle transformation ). Un petit calcul sinus,cosinus vous permetra facilement de trouver les paramêtres à lui envoyer.
Messages postés
1
Date d'inscription
mercredi 27 août 2003
Statut
Membre
Dernière intervention
27 janvier 2004

Merci pour cette source, c'est exactement ce que je cherchais !
et avec les optimisations, c'est nickel !
Messages postés
29
Date d'inscription
dimanche 8 juin 2003
Statut
Membre
Dernière intervention
16 janvier 2013

Salut en virant le doevents ,encore plus rapide
Messages postés
7
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
8 novembre 2002

Code interressant qui peut être optimisé en suprimant AutoRedraw sur Picture 1 et 2. Cela rend l'affichage beaucoup plus rapide (cela reste cependant encore bien lent ...)
Merci pour cette source.
Gadot
Messages postés
102
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
9 septembre 2003

merci (long mais efficasse !!!)
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.