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



Глава Изображение поверхностей


Листинг 39.1. Метод для рисования поверхности.

//Концы числового интервала области задания поверхно-сти:

private: static const int x_max = 20;

private: static const int y_max = 20;

private: static const int x_min = -10;

private: static const int y_min = -10;

private: System::Void pictureBox1_Paint(

         System::Object^  sender,

         System::Windows::Forms::PaintEventArgs^  e)

{

      //Масштабируем объекты класса Graphics на pictureBox1.

      //Коэффициенты масштабирования:

      float M_1 = 31; float M_2 = 29;

      e->Graphics->ScaleTransform(

            Convert::ToSingle(pictureBox1->Width / M_1),

            Convert::ToSingle(-pictureBox1->Height / M_2),

            MatrixOrder::Append);

      float M_3 = 1.9f;

      float M_4 = 1.7f;

      e->Graphics->TranslateTransform(

            Convert::ToSingle(pictureBox1->Width / M_3),

            Convert::ToSingle(pictureBox1->Height / M_4),

            MatrixOrder::Append);

      //Задавая M_1, M_2, M_3, M_4 другие значения,

      //мы будем смещать пов-ть по отношению к осям x,y,z.

      //Объявляем индексы элементов массива myArrayVC(i, j):

      int i, j;

      //Значение первой, второй и третьей границ индекса "i":

      int N_1_myArray, N_2_myArray, N_3_myArray;

      //Задаем границы индексов массива myArrayVC(i, j):

      int N_x = 2001;

      int N_y = 2;

      //Объявляем массив myArrayVC(i, j) переменных float,

      //когда i = 0,1,2,3,...,(N_x - 1);

      //      j = 0,1,2,3,...,(N_y - 1):

      array<float,2>^ myArrayVC =

           gcnew array<float,2>(N_x, N_y);

      //Для считывания из файла D:\\MyDocs\\MyTest.txt

      //координат изображения в массив myArrayVC[2001, 2]

      //создаем объект sr класса StreamReader:

      String^ path = "D:\\MyDocs\\MyTest.txt";

      StreamReader^ sr =

            gcnew StreamReader(path);

      //Считываем из файла MyTest.txt координаты изображения

      //в массив myArrayVC(2001, 2) при помощи ReadLine:




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