Advertisement
Guest User

Untitled

a guest
Jul 31st, 2015
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. $(function () {
  2. var $container = $('#rotationSliderContainer');
  3. var $slider = $('#rotationSlider');
  4. var $degrees = $('#rotationSliderDegrees');
  5.  
  6. var sliderWidth = $slider.width();
  7. var sliderHeight = $slider.height();
  8. var radius = $container.width() / 2;
  9. var deg = 0;
  10.  
  11. X = Math.round(radius * Math.sin(deg * Math.PI / 180));
  12. Y = Math.round(radius * -Math.cos(deg * Math.PI / 180));
  13. $slider.css({ left: X + radius - sliderWidth / 2, top: Y + radius - sliderHeight / 2 });
  14.  
  15. var mdown = false;
  16. $container
  17. .mousedown(function (e) { mdown = true; e.originalEvent.preventDefault(); })
  18. .mouseup(function (e) { mdown = false; })
  19. .mousemove(function (e) {
  20. if (mdown) {
  21.  
  22. // firefox compatibility
  23. if (typeof e.offsetX === "undefined" || typeof e.offsetY === "undefined") {
  24. var targetOffset = $(e.target).offset();
  25. e.offsetX = e.pageX - targetOffset.left;
  26. e.offsetY = e.pageY - targetOffset.top;
  27. }
  28.  
  29. if ($(e.target).is('#rotationSliderContainer'))
  30. var mPos = { x: e.offsetX, y: e.offsetY };
  31. else
  32. var mPos = { x: e.target.offsetLeft + e.offsetX, y: e.target.offsetTop + e.offsetY };
  33.  
  34. var atan = Math.atan2(mPos.x - radius, mPos.y - radius);
  35. deg = -atan / (Math.PI / 180) + 180; // final (0-360 positive) degrees from mouse position
  36.  
  37.  
  38. // for attraction to multiple of 90 degrees
  39. var distance = Math.abs(deg - (Math.round(deg / 90) * 90));
  40.  
  41. if (distance <= 5)
  42. deg = Math.round(deg / 90) * 90;
  43.  
  44. if (deg == 360)
  45. deg = 0;
  46.  
  47. X = Math.round(radius * Math.sin(deg * Math.PI / 180));
  48. Y = Math.round(radius * -Math.cos(deg * Math.PI / 180));
  49.  
  50. $slider.css({ left: X + radius - sliderWidth / 2, top: Y + radius - sliderHeight / 2 });
  51.  
  52. var roundDeg = Math.round(deg);
  53.  
  54. $degrees.html(roundDeg + '&deg;');
  55. $('#imageRotateDegrees').val(roundDeg);
  56.  
  57. }
  58. });
  59.  
  60. function leftFunction() {
  61. var c = document.getElementById("myCanvas");
  62. var ctx = c.getContext("2d");
  63. var PosX = c.width / 2;
  64. var PosY = c.height / 2;
  65. ctx.fillStyle = "rgba(255, 255, 255, 1)";
  66. ctx.fillRect(PosX, PosY, 1, 1);
  67. ctx.translate(-1, 0);
  68. ctx.fillRect(PosX, PosY, 1, 1);
  69. }
  70.  
  71. function rightFunction() {
  72. var c = document.getElementById("myCanvas");
  73. var ctx = c.getContext("2d");
  74. var PosX = c.width / 2;
  75. var PosY = c.height / 2;
  76. ctx.fillStyle = "rgba(255, 255, 255, 1)";
  77. ctx.fillRect(PosX, PosY, 1, 1);
  78. ctx.translate(1, 0);
  79. ctx.fillRect(PosX, PosY, 1, 1);
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement