Les Snippets

Connexion

Rotation d'une Ellipse

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 01/04/2006 03:34:30 et initié par Gobillot [Liste]
Date de mise à jour : 01/04/2006 06:26:24
Vue : 8190
Catégorie(s) : Graphique
Langage sélectionné : VB6
Langages dispo pour ce code :
- VB6
- Voir tous les langages pour ce code snippet



Langage : VB6
Date ajout : 01/04/2006
Posté par Gobillot [Liste]
DateMAJ : 01/04/2006
Const GM_ADVANCED As Long = 2
Const Pi          As Single = 3.141593

Private Type XForm
    eM11 As Single
    eM12 As Single
    eM21 As Single
    eM22 As Single
    eDx As Single
    eDy As Single
End Type

Private Type RectAPI
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Type PointAPI
    X As Long
    Y As Long
End Type

Dim OldXForm  As XForm
Dim MyXForm   As XForm
Dim WndArea   As RectAPI
Dim OldOrg      As PointAPI
Dim OldMode   As Long
Dim RotAng     As Single
Dim RotRad     As Single

Private Declare Function SetViewportOrgEx Lib "gdi32" (ByVal hDC As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As PointAPI) As Long
Private Declare Function SetGraphicsMode Lib "GDI32.dll" (ByVal hDC As Long, ByVal iMode As Long) As Long
Private Declare Function GetWorldTransform Lib "GDI32.dll" (ByVal hDC As Long, ByRef lpXform As XForm) As Long
Private Declare Function SetWorldTransform Lib "GDI32.dll" (ByVal hDC As Long, ByRef lpXform As XForm) As Long
Private Declare Function GetClientRect Lib "User32.dll" (ByVal hWnd As Long, ByRef lpRect As RectAPI) As Long

Private Sub Timer1_Timer()
    RotAng = RotAng + 2
    RotRad = (RotAng / 180) * Pi
    MyXForm.eM11 = Cos(RotRad)
    MyXForm.eM12 = Sin(RotRad)
    MyXForm.eM21 = -MyXForm.eM12
    MyXForm.eM22 = MyXForm.eM11
    Me.Cls
    Call SetViewportOrgEx(Me.hDC, WndArea.Right \ 2, WndArea.Bottom \ 2, OldOrg)
    Call SetGraphicsMode(Me.hDC, GM_ADVANCED)
    Call SetWorldTransform(Me.hDC, MyXForm)
    Me.Line (-1500, 0)-(1500, 0), vbBlue
    Me.Line (0, -750)-(0, 750), vbBlue
    Me.Circle (0, 0), 1500, vbRed, , , 0.5
End Sub

'   utilisation: il faut un Timer
    Call GetClientRect(Me.hWnd, WndArea)
    Timer1.Interval = 50
    Timer1.Enabled = True



Snippets en rapport avec : Rotation, Worldtransform



Codes sources en rapport avec : Rotation, Worldtransform

{Visual Basic, VB6, VB.NET, VB 2005} ROTATION D'UN TEXTE SUR UNE IMAGE
Appliquer une rotation à un texte sur une image. Vous pouvez choisir la police du texte ainsi que sa...

{Javascript / DHTML} SPHERE 3D DÉFORMABLE
Voici un premier source sur la 3D avec javascript. J'utilise canvas pour calculer et dessiner une s...

{JAVA / J2EE} DÉMONSTRATION DE JAVA 3D
C'est une démonstration de JAVA 3D pour la création de quelques formes mathématiques et comment fair...

{Flash} UN PEU DE MATH
un petit jeu avec rotation suivre la sourie .... 100% Mathématique. un pti jeux bla bla bla bla p...

{Visual Basic, VB6, VB.NET, VB 2005} MATRICE DE ROTATION, QUATERNION ET 3D
Bonjour a tous, J'édite cette source pour tous ceux qui ont des difficultés a comprendre le fonctio...

{Javascript / DHTML} ROTATION D'UNE IMAGE, ANIMATION
Voici un tout petit code qui permet de faire tourner une image en animation. Depuis quelques anné...

{C# / C#.NET} BALLON, CAREE ET IMAGE QUI TOURNENT, SE GONFLENT ET SE DGONFLENT
c'est un projet donné par M. Daniel BOURGET chef de département informatique à TELECOM BRETAGNE, cré...

{Visual Basic, VB6, VB.NET, VB 2005} ROTATION RAPIDE D'IMAGE
Voici un petit bout de code montrant comment écrire des rotations très rapides d'images en utilisant...

{JAVA / J2EE} CODAGE ROTATIONNEL AVEC UNE CLÉ MODULO 26
le code est pour faire chiffrage d'un string avec une clé rotationnelle en modulo 26 on fait une ro...

{Visual Basic, VB6, VB.NET, VB 2005} FAIRE UN CUBE EN 3D ET LE FAIRE TOURNER SANS UTILISER DIRECTX
voila tout un shema de calcul pour faire un cube grillager, et le faire pivoter autour de l'axe des ...