home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Graphics Programming (2nd Edition) / Visual Basic Graphics Programming 2nd Edition.iso / Src / Ch12 / TrTwist.cls < prev    next >
Encoding:
Visual Basic class definition  |  1999-06-17  |  962 b   |  39 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "TransTwist"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Option Explicit
  15. ' A twisting transformation.
  16.  
  17. Implements Transformation
  18.  
  19. ' The center about which to twist.
  20. Public Cx As Single
  21. Public Cy As Single
  22.  
  23. ' The amount by which to twist at different
  24. ' distances from the center.
  25. Public TwistSpeed As Single
  26. ' Transform the point (X, Y).
  27. Private Sub Transformation_Transform(X As Single, Y As Single)
  28. Dim R As Single
  29. Dim dx As Single
  30. Dim dy As Single
  31.  
  32.     dx = X - Cx
  33.     dy = Y - Cy
  34.     R = Sqr(dx * dx + dy * dy) / TwistSpeed / 5
  35.  
  36.     X = Cx + dx * Sin(R) - dy * Cos(R)
  37.     Y = Cy + dx * Cos(R) + dy * Sin(R)
  38. End Sub
  39.