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

         

Глава Изображение объектов - часть 3


   //Экспортируем массив myArrayVB(i, j) компонента VB

   //в массив myArrayVC[i, j] клиента VC:

   for (i = 0; i <= N_x - 1; i++)

         for (j = 0; j <= N_y - 1; j++)

               myArrayVC[i, j] =

               Convert.ToSingle(myArray.GetValue(i,j));

   //Рисуем изображение из массива.

   //Объявляем координаты двух граничных точек:

   float x1, y1, x2, y2;

   //Будем рисовать пером myPen толщиной 3:

   Pen myPen = new Pen(Color.Black, 3);

   //Рисуем линию, заданную в массиве myArrayVC[i, j]:

   x1 = myArrayVC[0, 0];

   y1 = myArrayVC[0, 1];

   x2 = myArrayVC[1, 0];

   y2 = myArrayVC[1, 1];

   e.Graphics.DrawLine(myPen, x1, y1, x2, y2);

   x1 = x2; y1 = y2;

   x2 = myArrayVC[2, 0]; y2 = myArrayVC[2, 1];

   e.Graphics.DrawLine(myPen, x1, y1, x2, y2);

   x1 = x2; y1 = y2;

   x2 = myArrayVC[3, 0]; y2 = myArrayVC[3, 1];

   e.Graphics.DrawLine(myPen, x1, y1, x2, y2);

}

         Листинг 43.4.

Метод pictureBox1_Paint для рисования.

private:

System::Void pictureBox1_Paint(System::Object^  sender,

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

{

    //Объявляем объект myObject класса Class1 компонента VB:

    ComponentVB::Class1^ myObject =

    gcnew ComponentVB::Class1();

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

    int i, j;

    //Задаем границы индексов массива 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);

    //Объявляем вспомогательный массив myArray класса Array

    //и связываем его с функцией  myFunction1, которая

    //возвращает массив myArrayVB[i, j] компонента VB:

    Array^ myArray = (Array^)myObject->myFunction1();

    //Экспортируем массив myArrayVB(i, j) компонента VB

    //в массив myArrayVC[i, j] клиента VC:

    for (i = 0 ; i <= N_x - 1; i++)

        for (j = 0 ; j <= N_y - 1; j++)

            myArrayVC[i, j] =

            Convert::ToSingle(myArray->GetValue(i,j));

    //Рисуем изображение из массива.

    //Объявляем координаты двух граничных точек:

    float x1, y1, x2, y2;

    //Будем рисовать пером myPen толщиной 3:

    Pen^ myPen = gcnew Pen(Color::Black, 3);

    //Рисуем линию, заданную в массиве myArrayVC[i, j]:

    x1 = myArrayVC[0, 0];

    y1 = myArrayVC[0, 1];

    x2 = myArrayVC[1, 0];

    y2 = myArrayVC[1, 1];

    e->Graphics->DrawLine(myPen, x1, y1, x2, y2);

    x1 = x2; y1 = y2;

    x2 = myArrayVC[2, 0]; y2 = myArrayVC[2, 1];

    e->Graphics->DrawLine(myPen, x1, y1, x2, y2);

    x1 = x2; y1 = y2;

    x2 = myArrayVC[3, 0]; y2 = myArrayVC[3, 1];

    e->Graphics->DrawLine(myPen, x1, y1, x2, y2);

}




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