'Файл автоматически "опустошается":
Dim sw_2 As StreamWriter = _
New StreamWriter("D:\MyDocs\MyTest3D_Graphics_2.txt")
'Каждый элемент массива myArrayVB_2(i, j) запис-м в файл
'в виде отдельной строки при помощи процедуры WriteLine:
For i = 0 To N_x_2
For j = 0 To N_y_2
sw_2.WriteLine(myArrayVB_2(i, j))
Next
Next
sw_2.Close()
'Высвобождаем ресурсы от объектов g и pen:
g.Dispose() : pen.Dispose()
M_End:
'Если эта метод DrawSolid вызвана еще раз
'для рисования следующего изображения,
'то увеличиваем номер изображения N_Graphics на 1:
N_Graphics = N_Graphics + 1
End Sub
'Строим единичную матрицу:
Public Sub MatrixIdentity(ByRef M(,) As Single)
Dim i As Integer : Dim j As Integer
For i = 1 To 4
For j = 1 To 4
If i = j Then
M(i, j) = 1
Else
M(i, j) = 0
End If
Next
Next
End Sub
'Строим матрицу преобразования (3-D transformation matrix)
'для перспективной проекции вдоль оси z на плоскость x,y
'с центром объекта (фокусом) в начале координат
'и c центром проецирования на расстоянии (0, 0, Distance):
Public Sub MatrixPerspectiveXZ(ByRef M(,) As Single, _
ByVal Distance As Single)
MatrixIdentity(M)
If Distance <> 0 Then M(3, 4) = -1 / Distance
End Sub
'Строим матрицу преобразования (3-D transformation matrix)
'для проецирования с координатами:
'центр проецирования (cx, cy, cz),
'фокус (fx, fy, fx),
'вектор от объекта до экрана UP <ux, yx, uz>,
'тип проецирования (type_of_projection):
'PerspectiveProjection или ParallelProjection:
Public Sub MatrixTransformation(ByRef M(,) As Single, _
ByVal type_of_projection As Integer, _