Guest User

TiltRotate in Sequence

a guest
Mar 18th, 2014
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. [TiltRotate]
  2.  
  3. set _FDegToRad as #F1.0 / #F57.29578
  4. set _FXMin as #F-20.0
  5. set _FXMax as #F20.0
  6. set _FYMin as #F-20.0
  7. set _FYMax as #F20.0
  8. set _FZMin as #F-20.0
  9. set _FZMax as #F20.0
  10. set _FXLines as #F10.0
  11. set _FXSublines as #F10.0
  12. set _FYLines as #F10.0
  13. set _FYSublines as #F10.0
  14.  
  15. set _FTilt as *FTiltSensor * ^FTiltMag
  16. set _FRota as *FRotaSensor * ^FRotaMag
  17.  
  18. set _FRadTilt as _FTilt * _FDegToRad
  19. set _FCosTilt from RadCos _FRadTilt
  20. set _FSinTilt from RadSin _FRadTilt
  21. set _FRadRota as _FRota * _FDegToRad
  22. set _FCosRota from RadCos _FRadRota
  23. set _FSinRota from RadSin _FRadRota
  24. set _FXMean as _FXMax + _FXMin
  25. set _FXMean as _FXMean / #F2.0
  26. set _FYMean as _FYMax + _FYMin
  27. set _FYMean as _FYMean / #F2.0
  28. set _FZMean as _FZMax + _FZMin
  29. set _FZMean as _FZMean / #F2.0
  30. set _FXDiff as _FXMax - _FXMin
  31. set _FYDiff as _FYMax - _FYMin
  32. set _FZDiff as _FZMax - _FZMin
  33.  
  34. set _FXStep as _FXLines - #F1.0
  35. set _FXStep as _FXDiff / _FXStep
  36. set _FXSubstep as _FXSublines - #F1.0
  37. set _FXSubstep as _FXDiff / _FXSubstep
  38.  
  39. set _FYStep as _FYLines - #F1.0
  40. set _FYStep as _FYDiff / _FYStep
  41. set _FYSubstep as _FYSublines - #F1.0
  42. set _FYSubstep as _FYDiff / _FYSubstep
  43.  
  44. set _FXMaxx as _FXMax + #F0.1
  45. set _FYMaxx as _FYMax + #F0.1
  46.  
  47. step _FY from _FYMin to _FYMaxx increment _FYStep
  48. step _FX from _FXMin to _FXMaxx increment _FXSubstep
  49. if _FX == _FXMin
  50. gosub Calculate
  51. endif
  52. copy _FXPlot to _PLast.X
  53. copy _FYPlot to _PLast.Y
  54. gosub Calculate
  55. copy _FXPlot to _PThis.X
  56. copy _FYPlot to _PThis.Y
  57. call DrawLine _PLast _PThis #C0,255,0
  58. endstep
  59. endstep
  60.  
  61. step _FX from _FXMin to _FXMaxx increment _FXStep
  62. step _FY from _FYMin to _FYMaxx increment _FYSubstep
  63. if _FY == _FYMin
  64. gosub Calculate
  65. endif
  66. copy _FXPlot to _PLast.X
  67. copy _FYPlot to _PLast.Y
  68. gosub Calculate
  69. copy _FXPlot to _PThis.X
  70. copy _FYPlot to _PThis.Y
  71. call DrawLine _PLast _PThis #C0,255,255
  72. endstep
  73. endstep
  74.  
  75. sub Calculate
  76. set _FZX as _FX * _FX
  77. set _FZY as _FY * _FY
  78. set _FZ as _FZX + _FZY
  79. set _FZ from SquareRoot _FZ
  80. set _FZ from RadSin _FZ
  81. set _FZ2 as _FZ - _FZMean
  82. set _FZ2 as _FZ2 / _FZDiff
  83. set _FX2 as _FX - _FXMean
  84. set _FX2 as _FX2 / _FXDiff
  85. set _FY2 as _FY - _FYMean
  86. set _FY2 as _FY2 / _FYDiff
  87. set _FX3X as _FX2 * _FCosRota
  88. set _FX3Y as _FY2 * _FSinRota
  89. set _FX3 as _FX3X - _FX3Y
  90. set _FY3X as _FX2 * _FSinRota
  91. set _FY3Y as _FY2 * _FCosRota
  92. set _FY3Z as _FZ2 * _FCosTilt
  93. set _FY3XY as _FY3X + _FY3Y
  94. set _FY3S as _FY3XY * _FSinTilt
  95. set _FY3 as _FY3Z - _FY3S
  96. set _FXPlot as ^FMagX * _FX3
  97. set _FXPlot as ^FCentreX + _FXPlot
  98. set _FYPlot as ^FMagY * _FY3
  99. set _FYPlot as ^FCentreY + _FYPlot
  100. endsub
Advertisement
Add Comment
Please, Sign In to add comment