Advertisement
Guest User

Untitled

a guest
Aug 29th, 2015
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. // Playground - noun: a place where people can play
  2.  
  3. import Foundation
  4.  
  5. func DegreesToRadians (value:Double) -> Double {
  6. return value * M_PI / 180.0
  7. }
  8.  
  9. func RadiansToDegrees (value:Double) -> Double {
  10. return value * 180.0 / M_PI
  11. }
  12.  
  13. enum Angle {
  14. case Radians(Double)
  15. case Degrees(Double)
  16.  
  17. var scalar: Double {
  18. switch(self) {
  19. case .Radians(let v):
  20. return v
  21. case .Degrees(let v):
  22. return v
  23. }
  24. }
  25.  
  26. var radians: Angle {
  27. switch(self) {
  28. case .Radians(_):
  29. return self
  30. case .Degrees(let value):
  31. return .Radians(DegreesToRadians(value))
  32. }
  33. }
  34.  
  35. var degrees: Angle {
  36. switch(self) {
  37. case .Degrees(let value):
  38. return .Degrees(RadiansToDegrees(value))
  39. case .Radians(_):
  40. return self
  41. }
  42. }
  43. }
  44.  
  45. extension Double {
  46.  
  47. init(_ angle:Angle) {
  48. self.init(angle.scalar)
  49. }
  50.  
  51. }
  52.  
  53. sizeof(Double)
  54. sizeof(Angle)
  55.  
  56. let a = Angle.Degrees(90)
  57. a.scalar
  58. Double(a.radians)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement