Guest User

Untitled

a guest
Jun 23rd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.48 KB | None | 0 0
  1. private void построитьToolStripMenuItem_Click(object sender, EventArgs e)
  2. {
  3. GraphPane pane = graph.GraphPane;
  4. pane.XAxis.Title.Text = "Ось X";
  5. pane.YAxis.Title.Text = "Ось Y";
  6. pane.Title.Text = "График строфоиды";
  7. // Создадим список точек
  8. PointPairList list = new PointPairList();
  9.  
  10. const double a = Math.PI / 2.0;
  11.  
  12. // Заполняем список точек
  13. for (double x = -0.9; x <= 0.9; x += 0.01)
  14. {
  15. double u = Math.Tan(x);
  16. // добавим в список точку
  17. list.Add(a * (u * u - 1) / (u * u + 1), a * u * (u * u - 1) / (u * u + 1));
  18. }
  19.  
  20. // Создадим кривую с названием "Sinc",
  21. // которая будет рисоваться голубым цветом (Color.Blue),
  22. // Опорные точки выделяться не будут (SymbolType.None)
  23. LineItem myCurve = pane.AddCurve("", list, Color.Green, SymbolType.None);
  24.  
  25. // Вызываем метод AxisChange (), чтобы обновить данные об осях.
  26. // В противном случае на рисунке будет показана только часть графика,
  27. // которая умещается в интервалы по осям, установленные по умолчанию
  28. graph.AxisChange();
  29.  
  30. // Обновляем график
  31. graph.Invalidate();
  32. }
  33.  
  34. private void анимироватьToolStripMenuItem_Click(object sender, EventArgs e)
  35. {
  36. GraphPane pane = graph.GraphPane;
  37. pane.XAxis.Title.Text = "Ось X";
  38. pane.YAxis.Title.Text = "Ось Y";
  39. pane.Title.Text = "График строфоиды";
  40.  
  41.  
  42. Pen p = new Pen(Color.Blue, 5);
  43.  
  44. const double a = Math.PI / 2.0;
  45.  
  46. // Заполняем список точек
  47. double x = -0.9; y, x0, y0;
  48. x0 = -0.9;
  49. y0 = 0;
  50. do
  51. {
  52. double u = Math.Tan(x);
  53. x = a * (u * u - 1) / (u * u + 1);
  54. y = a * u * (u * u - 1) / (u * u + 1);
  55. x += 0.01;
  56. pane.DrawLine(p, x0, y0, x, y);
  57. x0 = x;
  58. y0 = y;
  59. Sleep (0.001);
  60.  
  61. } while (x <= 0.9);
  62.  
  63. // Вызываем метод AxisChange (), чтобы обновить данные об осях.
  64. // В противном случае на рисунке будет показана только часть графика,
  65. // которая умещается в интервалы по осям, установленные по умолчанию
  66. graph.AxisChange();
  67.  
  68. // Обновляем график
  69. graph.Invalidate();
  70. }
  71.  
  72. private void анимироватьToolStripMenuItem1_Click_1(object sender, EventArgs e)
  73. {
  74. GraphPane pane = graph.GraphPane;
  75. pane.XAxis.Title.Text = ""; pane.YAxis.Title.Text = "";
  76. pane.Title.Text = "Анимация графика строфоиды";
  77. pane.CurveList.Clear();
  78.  
  79. // Создадим список точек
  80. PointPairList list = new PointPairList();
  81.  
  82. const double a = Math.PI / 2.0;
  83.  
  84. // Заполняем список точек
  85. for (double i = -0.9; i <= 0.9; i += 0.01)
  86. {
  87. double u = Math.Tan(i);
  88. list.Add(a * (u * u - 1) / (u * u + 1), a * u * (u * u - 1) / (u * u + 1));
  89. LineItem myCurve = pane.AddCurve("", list, Color.Red, SymbolType.None); // ВОТ ЗДЕСЬ СТАНДАРТНО ЗАПОЛНЯЮ ЛИСТ С ТОЧКАМИ И ВЫВОЖУ КРИВУЮ
  90. myCurve.Line.IsSmooth = true; // сглаживание
  91. Thread.Sleep(5); // ЗДЕСЬ ЗАДЕРЖКА ДЛЯ ПОСТЕПЕННОГО ПОЯВЛЕНИЯ ТОЧЕК
  92. graph.Refresh(); // ВНИМАНИЕ ВАЖНО! МЕТОД graph.Invalidate(); НЕ ПРОКАТИТ, НУЖНО ИМЕННО РЕФРЕШ
  93. }
  94. graph.AxisChange();
  95. graph.Invalidate();
  96. }
Add Comment
Please, Sign In to add comment