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


         

Создаем объект sw класса StreamWriter


    // Создаем объект sw класса StreamWriter
    //для записи в файл по адресу D:\MyDocs\MyTest.txt.
    //Файл автоматически “опустошается”:
    StreamWriter sw =
            new StreamWriter("D:\\MyDocs\\MyTest.txt");
    //Каждый элемент myArrayVCsharp[i, j] записываем в файл
    //в виде отдельной строки при помощи процедуры WriteLine:
    for (i = 0; i <= N_x; i++)
            for (j = 0; j <= N_y; j++)
                sw.WriteLine(myArrayVCsharp[i, j]);
    sw.Close();
}//Конец метода pictureBox1_Paint.
Далее, чтобы мы могли управлять (например, вращать) объектами при помощи нажатия клавиш, в панели Properties (для элемента PictureBox) на вкладке Events мы должны дважды щелкнуть по имени события ProcessCmdKey, если это имя там имеется. Если же такого имени там нет, то мы полностью переписываем (или копируем с прилагаемого диска) нижеследующий метод.
Листинг 37.3. Метод ProcessCmdKey для вращения поверхности.
protected override bool ProcessCmdKey(
      ref System.Windows.Forms.Message msg,
      System.Windows.Forms.Keys keyData)
{
      //Задаем шаг поворота поверхности:
      const double delta_theta = Math.PI / 32;
      const double delta_phi = Math.PI / 16;
      //Вычисляем сферич-е коорд-ты (spherical coordinates)
      //точки наблюдения:
      double theta = Math.Atan2(myEye.orig_coord[1],
      myEye.orig_coord[0]);
      double r1 = Math.Sqrt(myEye.orig_coord[0] *
                                         myEye.orig_coord[0]
      + myEye.orig_coord[1] * myEye.orig_coord[1]);
      double r2 = Math.Sqrt(myEye.orig_coord[0] *
                                         myEye.orig_coord[0]
      + myEye.orig_coord[1] * myEye.orig_coord[1] +
        myEye.orig_coord[2] * myEye.orig_coord[2]);
      double phi = Math.Atan2(myEye.orig_coord[2], r1);
      //Корректируем углы phi и theta:
      switch (keyData)
      {
            case Keys.Left:
                  theta = theta - delta_theta;
                  break;

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