Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. var delightMeterApp = angular.module('delightMeterApp', []);
  2. delightMeterApp.directive('delightMeter', function () {
  3.  
  4. function link($scope, $element, $attrs) {
  5. document.getElementById("arc1").setAttribute("d", describeArc(200, 200, 100, -90, -56));
  6. document.getElementById("arc2").setAttribute("d", describeArc(200, 200, 100, -54, -20));
  7. document.getElementById("arc3").setAttribute("d", describeArc(200, 200, 100, -18, 16));
  8. document.getElementById("arc4").setAttribute("d", describeArc(200, 200, 100, 18, 52));
  9. document.getElementById("arc5").setAttribute("d", describeArc(200, 200, 100, 54, 90));
  10.  
  11. function polarToCartesian(centerX, centerY, radius, angleInDegrees) {
  12. var angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0;
  13.  
  14. return {
  15. x: centerX + (radius * Math.cos(angleInRadians)),
  16. y: centerY + (radius * Math.sin(angleInRadians))
  17. };
  18. }
  19.  
  20. function describeArc(x, y, radius, startAngle, endAngle) {
  21.  
  22. var start = polarToCartesian(x, y, radius, endAngle);
  23. var end = polarToCartesian(x, y, radius, startAngle);
  24.  
  25. var arcSweep = endAngle - startAngle <= 180 ? "0" : "1";
  26.  
  27. var d = [
  28. "M", start.x, start.y,
  29. "A", radius, radius, 0, arcSweep, 0, end.x, end.y
  30. ].join(" ");
  31.  
  32. return d;
  33. }
  34. }
  35.  
  36. function ScoreRotateNeedle(delightScore) {
  37. console.log(delightScore);
  38. $('.needleset').css({
  39. "transform": "rotate(" + delightScore + "deg)",
  40. "transform-origin": "50% 95%"
  41. });
  42. }
  43.  
  44. return {
  45. scope: true,
  46. restrict: 'E',
  47. templateUrl: 'svgmeter.html',
  48. link: link,
  49. controller: 'delightMeterController'
  50.  
  51. };
  52. });
  53.  
  54.  
  55. delightMeterApp.controller('delightMeterController', function ($scope) {
  56. $scope.delightScore = 0;
  57. $scope.rotateNeedle = function () {
  58.  
  59.  
  60. //call ScoreRotateNeedle function here
  61.  
  62. }
  63. });
  64.  
  65. <div ng-app="delightMeterApp" ng-controller="delightMeterController">
  66. <delight-meter ng-model="delightScore"></delight-meter>
  67. <input id="Text1" type="text" ng-model="delightScore" ng-change="rotateNeedle()" />
  68. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement