Глава Изображение поверхностей
Листинг 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: