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

         

Глава Изображение и управление - часть 12


        'Файл автоматически "опустошается":

        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, _




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