//Экспортируем массив 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);
}