DrawFunClass.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Drawing.Drawing2D;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace Uninpho.Railway.Waveform
  9. {
  10. /// <summary>
  11. /// 绘图类
  12. /// </summary>
  13. class DrawFunClass
  14. {
  15. /// <summary>
  16. /// 坐标转换
  17. /// </summary>
  18. /// <param name="g">Graphics g</param>
  19. /// <param name="dx">距离左上角屏幕坐标系的x的相对位置(偏移量)</param>
  20. /// <param name="dy">距离左上角屏幕坐标系的y的相对位置(偏移量)</param>
  21. public static void Trans(Graphics g, float dx, float dy)
  22. {
  23. Matrix mymatrix = new Matrix(1, 0, 0, -1, 0, 0);
  24. g.Transform = mymatrix;
  25. g.TranslateTransform(dx, dy, MatrixOrder.Append);
  26. }
  27. /// <summary>
  28. /// 绘制一条波形图曲线
  29. /// </summary>
  30. /// <param name="graphics">Graphics g</param>
  31. /// <param name="points">点集</param>
  32. public static void DrawCuvreFun(Graphics graphics, PointF[] points, Color color, int width)
  33. {
  34. if (points.Length >= 2)
  35. {
  36. graphics.SmoothingMode = SmoothingMode.HighQuality;
  37. graphics.CompositingQuality = CompositingQuality.HighSpeed;
  38. graphics.DrawCurve(new Pen(color, width), points);
  39. }
  40. }
  41. /// <summary>
  42. /// 绘制折线
  43. /// </summary>
  44. /// <param name="graphics">Graphics g</param>
  45. /// <param name="points">点集</param>
  46. public static void DrawLinesFun(Graphics graphics, PointF[] points, Color color, int width)
  47. {
  48. if (points.Length >= 2)
  49. {
  50. graphics.SmoothingMode = SmoothingMode.HighSpeed;
  51. graphics.CompositingQuality = CompositingQuality.HighSpeed;
  52. graphics.DrawLines(new Pen(color, width), points);
  53. }
  54. }
  55. public static void DrawScaleLine(Graphics graphics, PointF points1, PointF points2, Color color, int width)
  56. {
  57. graphics.SmoothingMode = SmoothingMode.HighSpeed;
  58. graphics.CompositingQuality = CompositingQuality.HighSpeed;
  59. graphics.DrawLine(new Pen(color, width), points1, points2);
  60. }
  61. public static void DrawScaleString(Graphics graphics, PointF points, Color color, int size, string s , int Xpianyi)
  62. {
  63. graphics.SmoothingMode = SmoothingMode.HighSpeed;
  64. graphics.CompositingQuality = CompositingQuality.HighSpeed;
  65. StringFormat fomt = new StringFormat();
  66. fomt.LineAlignment = StringAlignment.Center;
  67. fomt.Alignment = StringAlignment.Center;
  68. Matrix oldtrans = graphics.Transform;
  69. Font goodFont = new Font("MS UI Gothic", size);
  70. graphics.ResetTransform();
  71. graphics.DrawString(s, goodFont, new SolidBrush(color), points.X + Xpianyi, points.Y - 20, fomt);
  72. graphics.Transform = oldtrans;
  73. }
  74. }
  75. }