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 : 5173
Catégorie(s) : Graphique
Langages dispo pour ce code :
- VB6



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

{Javascript / DHTML} DIAPORAMA 360 DEGRÉ COMPLET ET TOUT AUTOMATIQUE QUATRE VITESSES DE ROTATION PLUS PAUSE ET AFFICHAGE OPTIMISÉ
Panoramique diaporama 360 degré complet et tout automatique, quatre vitesses de rotation plus pause,...

{Javascript / DHTML} CURSEUR QUI POINTE LA SOURIS
Dans la série des codes pas très utiles mais qui font toujours effet (dans un menu circulaire par ex...

{Flash} REDIMENSIONNER ET TOURNER UN CLIP A L'AIDE DES FLECHES
soit un clip sur la scene que l'on peut deplacer avec la souris. On peut egalement avec les fleches ...

{Delphi} ROTATION (RAPIDE) DE BITMAP (À 360°) EN PUR GDI
Exemple simple de rotation de bitmap en pur GDI Ceci est possible grâce à l'utilisation de la fon...

{Flash} FAIRE TOURNER UN TABLEAU (ARRAY)
Il est parfois utile ou nécessaire de faire 'tourner' un Array, c'est à dire de décaler tout le cont...

{PHP} FONCTION ROTATION D'UNE IMAGE
Petite fonction simple, mais très utile, permettant de pivoter une image de x degrés. Attention: ...

{C / C++ / C++.NET} JEU DE TANGRAM
Un jeu de tangram. On peut faire tourner les pièces de dégré en degré. Sauvegarde possible.............

{Flash} MENU EN 3D
Les boutons de ce menu effectue une rotation de 360 degrés quand on clique dessus. On peut tout c...

{Flash} CUBE 3D AVEC ROTATION
Bonjour, après toutes ces années ou j'ai copié colé du code venant de ce merveilleux site, je me sui...

{Javascript / DHTML} CURSEUR DYNAMIQUE
Compatible IE / FF, ce script affiche un curseur (interne au code et modifiable à souhait) qui suit ...