Компьютерная графика, мультимедиа и игры на Visual C#


         

Непрерывный график-осцилло­грамма


Листинг 30.1. Переменные и метод для построения графика.

//Объявляем и инициализируем переменные:

float x = 0;

float y0 = 49;

float y1 = 0;

float k = 10;

float b = -5;

//Перемещение графика dx за каждый интервал времени::

private const float dx = 2;

//Определяем значение функции y=f(x):

private float f()

{

      //Генератор в виде метода NextDouble возвращает

      //случайное число типа double, которое присваиваем x:

      Random myRandom = new Random();

      x = Convert.ToSingle(myRandom.NextDouble());

      //Вычисляем новое значение функции y=f(x):

      y1 = y0 + k * x + b;

      //Задаем интервал для значений функции y=f(x):

      if (y1 > 98.9) y1 = 98.9f;

      if (y1 < 0.999) y1 = 0.999f;

      return y1;

}

Листинг 30.2. Метод Form1_Load.

private void Form1_Load(object sender, EventArgs e)

{

      //Для рисования графика создаем объект myGraphics,

      //связываем его с PictureBox1 и масштабируем:

      Bitmap myBitmap = new Bitmap(pictureBox1.Width,

                                    pictureBox1.Height);

      Graphics myGraphics = Graphics.FromImage(myBitmap);

      myGraphics.ScaleTransform(1, -100.0f /

                                     pictureBox1.Height);

      myGraphics.TranslateTransform(0, -100);

      //Проектируем координатные горизонтальные линии:

      Pen myPen = new Pen(Color.Blue, 1);

      int i;

      for (i = 10; i <= 100; i+=10)

                  myGraphics.DrawLine(myPen,

                  0, i, pictureBox1.Width, i);

      //Показываем координатные горизонтальные линии

      //на панели PictureBox1:

      pictureBox1.Image = myBitmap;

      //Освобождаем ресурсы, занятые объектом myGraphics:

      myGraphics.Dispose();

}

Для программной реализации алгоритма из первого параграфа дважды щелкаем значок Timer (ниже формы в режиме проектирования). Появляется файл Form1.cs с шаблоном, который после записи нашего кода принимает следующий вид.

Листинг 30.3. Метод Timer1_Tick.

private void timer1_Tick(object sender, EventArgs e)



Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий