SvgRotate.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Drawing.Drawing2D;
  5. using System.Globalization;
  6. #pragma warning disable
  7. namespace Svg.Transforms
  8. {
  9. public sealed class SvgRotate : SvgTransform
  10. {
  11. public float Angle
  12. {
  13. get;
  14. set;
  15. }
  16. public float CenterX
  17. {
  18. get;
  19. set;
  20. }
  21. public float CenterY
  22. {
  23. get;
  24. set;
  25. }
  26. public override Matrix Matrix
  27. {
  28. get
  29. {
  30. Matrix matrix = new Matrix();
  31. matrix.Translate(this.CenterX, this.CenterY);
  32. matrix.Rotate(this.Angle);
  33. matrix.Translate(-this.CenterX, -this.CenterY);
  34. return matrix;
  35. }
  36. }
  37. public override string WriteToString()
  38. {
  39. return string.Format(CultureInfo.InvariantCulture, "rotate({0}, {1}, {2})", this.Angle, this.CenterX, this.CenterY);
  40. }
  41. public SvgRotate(float angle)
  42. {
  43. this.Angle = angle;
  44. }
  45. public SvgRotate(float angle, float centerX, float centerY)
  46. : this(angle)
  47. {
  48. this.CenterX = centerX;
  49. this.CenterY = centerY;
  50. }
  51. public override object Clone()
  52. {
  53. return new SvgRotate(this.Angle, this.CenterX, this.CenterY);
  54. }
  55. }
  56. }
  57. #pragma warning restore