FormTest.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using DevExpress.Utils;
  2. using SIASUN.Autopilot.BLL.Controler;
  3. using SIASUN.Autopilot.Device.Message;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Drawing;
  7. using System.Drawing.Drawing2D;
  8. using System.Windows.Forms;
  9. namespace SIASUN.Autopilot.View
  10. {
  11. public partial class FormTest : Form
  12. {
  13. private Point mousePoint = new Point(); //鼠标位置
  14. private Point[] points = new Point[]
  15. { new Point (116,131),
  16. new Point(215,131),
  17. new Point(291,131),
  18. new Point(291,182),
  19. new Point(402,182),
  20. new Point(517,182),
  21. new Point(534,182),
  22. new Point(534,232),
  23. new Point(647,232),
  24. new Point(777,232)
  25. };
  26. private Point[] points2 = new Point[]
  27. { new Point (116,141),
  28. new Point(215,141),
  29. new Point(281,141),
  30. new Point(281,232),
  31. new Point(392,232),
  32. new Point(507,232),
  33. new Point(524,232),
  34. new Point(524,282),
  35. new Point(637,282),
  36. new Point(777,282)
  37. };
  38. private List<Point> list = new List<Point>();
  39. private int i = 0;
  40. public FormTest()
  41. {
  42. InitializeComponent();
  43. }
  44. private void FormTest_Load(object sender, EventArgs e)
  45. {
  46. this.picExControl1.SetImage(global::SIASUN.Autopilot.View.Properties.Resources.地图1, true);
  47. this.picExControl1.MouseMoveTooltipEvent += new SIASUN.Autopilot.View.PicExControl.MouseMoveTooltip(picExControl1_MouseMove);
  48. this.picExControl1.DrawOriginalPathEvent += new PicExControl.DrawPath(DrawOriginalPath);
  49. this.picExControl1.DrawDrivingPathEvent += new PicExControl.DrawPath(DrawDrivingPath);
  50. }
  51. private void picExControl1_MouseMove(MouseEventArgs e)
  52. {
  53. if (mousePoint.X != e.X || mousePoint.Y != e.Y)
  54. {
  55. ToolTipControllerShowEventArgs args = this.toolTipController1.CreateShowArgs();
  56. //this.toolTip_Message.SetToolTip(this.picExControl1, string.Format("横坐标:{0}\n纵坐标:{1}", e.X.ToString(), e.Y.ToString()));
  57. //this.toolTip_Message.SetTitle(this.picExControl1,"提示");
  58. //this.toolTip_Message.SetToolTipIconType(this.picExControl1,ToolTipIconType.Exclamation);
  59. args.ToolTip = string.Format("横坐标:{0}\n纵坐标:{1}", e.X.ToString(), e.Y.ToString());
  60. args.SelectedControl = this.picExControl1;
  61. //args.Title = "提示";
  62. this.toolTipController1.ShowHint(args, System.Windows.Forms.Control.MousePosition);
  63. mousePoint.X = e.X;
  64. mousePoint.Y = e.Y;
  65. }
  66. else
  67. {
  68. //this.toolTip1.Hide(this.pictureBox1);
  69. mousePoint.X = e.X;
  70. mousePoint.Y = e.Y;
  71. }
  72. }
  73. /// <summary>
  74. /// 画原始路径
  75. /// </summary>
  76. /// <param name="g"></param>
  77. private void DrawOriginalPath(Graphics g)
  78. {
  79. GraphicsPath path = new GraphicsPath();
  80. for (int i = 1; i < points.Length; i++)
  81. {
  82. path.AddLine(new PointF((points[i - 1].X * this.picExControl1.Wrate) + this.picExControl1.StartPoint.X,
  83. (points[i - 1].Y * this.picExControl1.Hrate) + this.picExControl1.StartPoint.Y),
  84. new PointF((points[i].X * this.picExControl1.Wrate) + this.picExControl1.StartPoint.X,
  85. (points[i].Y * this.picExControl1.Hrate) + this.picExControl1.StartPoint.Y));
  86. }
  87. g.DrawPath(new Pen(Color.Red), path);
  88. }
  89. /// <summary>
  90. /// 画行驶路径
  91. /// </summary>
  92. /// <param name="g"></param>
  93. private void DrawDrivingPath(Graphics g)
  94. {
  95. if (list.Count < 1)
  96. {
  97. return;
  98. }
  99. if (list.Count < 2)
  100. {
  101. g.TranslateTransform((list[0].X * this.picExControl1.Wrate) + this.picExControl1.StartPoint.X, (list[0].Y * this.picExControl1.Hrate) + this.picExControl1.StartPoint.Y);
  102. g.RotateTransform(90);
  103. //e.Graphics.TranslateTransform(-this.pictureBox1.Width / 2, -this.pictureBox1.Height / 2);
  104. g.DrawImage(global::SIASUN.Autopilot.View.Properties.Resources.汽车2, -7, -15, 14, 30);
  105. }
  106. else
  107. {
  108. Point[] array = list.ToArray();
  109. GraphicsPath path = new GraphicsPath();
  110. for (int i = 1; i < array.Length; i++)
  111. {
  112. path.AddLine(new PointF((array[i - 1].X * this.picExControl1.Wrate) + this.picExControl1.StartPoint.X,
  113. (array[i - 1].Y * this.picExControl1.Hrate) + this.picExControl1.StartPoint.Y),
  114. new PointF((array[i].X * this.picExControl1.Wrate) + this.picExControl1.StartPoint.X,
  115. (array[i].Y * this.picExControl1.Hrate) + this.picExControl1.StartPoint.Y));
  116. }
  117. g.DrawPath(new Pen(Color.Blue, 2), path);
  118. g.TranslateTransform((array[array.Length - 1].X * this.picExControl1.Wrate) + this.picExControl1.StartPoint.X, (array[array.Length - 1].Y * this.picExControl1.Hrate) + this.picExControl1.StartPoint.Y);
  119. g.RotateTransform(90);
  120. g.DrawImage(global::SIASUN.Autopilot.View.Properties.Resources.汽车2, -7, -15, 14, 30);
  121. }
  122. }
  123. /// <summary>
  124. /// 测试行驶路线
  125. /// </summary>
  126. /// <param name="sender"></param>
  127. /// <param name="e"></param>
  128. private void button5_Click(object sender, EventArgs e)
  129. {
  130. if (list.Count == 10)
  131. {
  132. return;
  133. }
  134. list.Add(points2[i]);
  135. i++;
  136. this.picExControl1.Invalidate();
  137. BlControler bl = new BlControler();
  138. //bl.RCUEnableRequest("1");
  139. 控制器上电命令 aa = new 控制器上电命令();
  140. int a = -1;
  141. byte[] b = System.Text.Encoding.Default.GetBytes(a.ToString());
  142. }
  143. private void btn_Add_Click(object sender, EventArgs e)
  144. {
  145. float acc = Convert.ToSingle(txt_Add.Text);
  146. //BeckhoffDrive.Accelerator(acc);
  147. }
  148. private void btn_Angle_Click(object sender, EventArgs e)
  149. {
  150. float ang = Convert.ToSingle(txt_Stree.Text);
  151. //BeckhoffDrive.Accelerator(ang);
  152. }
  153. }
  154. }