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 : 6724
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

{Visual Basic, VB6, VB.NET, VB 2005} ROTATION D'ÉCRAN
Voici une petite source montrant comment effectuer une rotation d'écran sur un écran en particulier....

{Javascript / DHTML} RAINBOW CURSOR
Petite amélioration du précédent script que je vous avais proposé (curseur qui pointe la souris: htt...

{Delphi} PLGBLT ET LA ROTATION DE BITMAPS
Bonjour, il existe déjà une source similaire sur le site (Par Cirec : http://www.delphifr.com/codes...

{Javascript / DHTML} ROTATION DES ÉLÉMENTS D'UN PAGE WEB
Je sais que le titre n'est pas très approprier, car ce javascript reprend tous les éléments d'un pag...

{Python} EXTENSION DE ROTATION ET PROJECTION3D SOUS INKSCAPE
ce programme permet de faire tourner un dessin sous inkscape comme si il était dans un monde 3D. La ...

{C / C++ / C++.NET} TRANSLATION HOMOTHETIE ROTATION
Il s'agit de l'application des mes acquis en géométrie. Les 3 transformations de base: - translati...

{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...