home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / CODE_UPLOAD9640952000.psc / Spin.bas < prev    next >
Encoding:
BASIC Source File  |  2000-09-02  |  1.5 KB  |  65 lines

  1. Attribute VB_Name = "Spin"
  2. Sub Rotate(Angle1, Angle2, Angle3, NowOn, mx, my, mz)
  3.  
  4. For Cu = 1 To 8
  5.    X = Shape(NowOn).Corners(Cu).X - mx
  6.    Y = Shape(NowOn).Corners(Cu).Y - my
  7.    Z = Shape(NowOn).Corners(Cu).Z - mz
  8.    
  9.    Xrotated = X
  10.    Yrotated = Cosine(Angle1) * Y - Sine(Angle1) * Z
  11.    Zrotated = Sine(Angle1) * Y + Cosine(Angle1) * Z
  12.    X = Xrotated
  13.    Y = Yrotated
  14.    Z = Zrotated
  15.  
  16.    Xrotated = Cosine(Angle2) * X - Sine(Angle2) * Z
  17.    Yrotated = Y
  18.    Zrotated = Sine(Angle2) * X + Cosine(Angle2) * Z
  19.    X = Xrotated
  20.    Y = Yrotated
  21.    Z = Zrotated
  22.  
  23.    Xrotated = Cosine(Angle3) * X - Sine(Angle3) * Y
  24.    Yrotated = Sine(Angle3) * X + Cosine(Angle3) * Y
  25.    Zrotated = Z
  26.    Rotated.Corners(Cu).X = Xrotated + mx
  27.    Rotated.Corners(Cu).Y = Yrotated + my
  28.    Rotated.Corners(Cu).Z = Zrotated + mz
  29.    
  30.  Next Cu
  31. End Sub
  32.  
  33.  
  34. Sub Make_LookUp()
  35.  For i = 0 To 361
  36.   Sine(i) = Sin(i / 180 * PI)
  37.   Cosine(i) = Cos(i / 180 * PI)
  38.  Next
  39. End Sub
  40.  
  41.  
  42. Function FindAngle(TXX, Tyy, PAngle)
  43.  rxx = Cos(PAngle) * TXX - Sin(PAngle) * Tyy
  44.  ryy = Sin(PAngle) * TXX + Cos(PAngle) * Tyy
  45.  xx = rxx
  46.  yy = ryy
  47.  Pye = (22 / 7) * 18.05
  48.  If yy = 0 Then
  49.   If xx > 0 Then
  50.    Angle = -90 / Pye
  51.   Else
  52.    Angle = -270 / Pye
  53.   End If
  54.  Else
  55.   Angle = Atn(xx / yy)
  56.  End If
  57.  Angle = -Angle * Pye
  58.  If yy > 0 Then Angle = Angle + 180
  59.  If 0 > yy And xx < 0 Then Angle = Angle + 360
  60.  If xx < 0 Then Angle = -360 + Angle
  61.  Angle = Int(Angle)
  62.  FindAngle = -Angle + 180
  63. End Function
  64.  
  65.