begin process at 2012 02 11 12:10:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > ROTATION D'UNE IMAGE A L'ANGLE VOULU !

ROTATION D'UNE IMAGE A L'ANGLE VOULU !


 Information sur la source

Note :
6,25 / 10 - par 4 personnes
6,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Niveau :Initié Date de création :20/05/2002 Date de mise à jour :20/05/2002 23:42:59 Vu / téléchargé :4 984 / 966

Auteur : intello2001

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

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

Source

  • 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
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 ;-) :-) !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

FAIRE UN CERCLE POINT PAR POINT (ASSEZ RAPIDE !)
Source avec Zip PETIT "FILTRE" PAS MAL (SORTE DE ROZACE SUR PICTURE)
METTRE UNE IMAGE EN FLOU !!! (PIXELISATION)
FAIRE DISPARAITRE UNE IMAGE AVEC UNE AUTRE EN 3 ÉTAPE
EFFECT SUR VOTRE FORM :-P

 Sources de la même categorie

Source avec une capture GRAPH PHP COURBE DE CHARGE par s.defaye
Source avec Zip Source avec une capture BOULE DE CRISTAL par BLUEBIBUBBLE
VB6 - DÉPLACEMENT D'UN CONTRÔLE SUR UN SEGMENT DE DROITE DÉL... par ucfoutu
Source avec Zip Source .NET (Dotnet) APPLICATION DE DESSIN par fsafsafsaf
Source avec Zip Source avec une capture Source .NET (Dotnet) MERGEIMAGES par Le Pivert

Commentaires et avis

Commentaire de WolfSpirit le 23/05/2002 11:06:54

C un pe long mais c pas mal :)

Commentaire de intello2001 le 23/05/2002 18:02:06

merci (long mais efficasse !!!)

Commentaire de Gadot le 19/11/2002 13:00:05

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

Commentaire de oeildedinde le 04/08/2003 20:15:25

Salut en virant le doevents ,encore plus rapide

Commentaire de titilleuse le 27/01/2004 11:19:01

Merci pour cette source, c'est exactement ce que je cherchais !
et avec les optimisations, c'est nickel !

Commentaire de yahaa le 18/05/2007 13:23:19

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.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales