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


         

Изображение и управление


Листинг 34.1. Код выше и в теле процедуры Form1_Load.

    'Начало координат:

    Private Const x_focus As Double = 0

    Private Const y_focus As Double = 0

    Private Const z_focus As Double = 0

    'Сферические координаты точки E (глаза наблюдателя Eye):

    Private r_Eye As Single

    Private phi_Eye As Single

    Private theta_Eye As Single

    'Объявляем матрицу (как массив) и переменные

    '(во всех массивах нулевые индексы не используем):

    Private Const pi As Double = Math.PI

    Private MatrixProjection(4, 4) As Single

    Private Tetrahedron As Integer

    Private Cube As Integer

    Private Octahedron As Integer

    Private Dodecahedron As Integer

    Private Icosahedron_first As Integer

    Private Icosahedron_last As Integer

    'Для параллельного проецирования объекта на экран

    '(parallel projection) задаем константу:

    Private Const ParallelProjection As Integer = 0

    'Для перспективного проецирования объекта на экран

    '(perspective projection)задаем константу:

    Private Const PerspectiveProjection As Integer = 1

    Private Sub Form1_Load(ByVal sender As System.Object, _

    ByVal e As EventArgs) Handles MyBase.Load

        'Задаем координаты глаза наблюдателя, например:

        r_Eye = 4 : phi_Eye = 0.05 * pi : theta_Eye = 0.3 * pi

        'Вызываем процедуру для перспективного проецирования,

        'когда type_of_projection = PerspectiveProjection

        '(для параллельного проецирования вместо

        'PerspectiveProjection пишем ParallelProjection):

        Projection(MatrixProjection, PerspectiveProjection, _

        r_Eye, phi_Eye, theta_Eye, _

        x_focus, y_focus, z_focus, 0, 1, 0)

        'Рассчитываем параметры геометрического тела:

        СalculateParameters()

        'Связываем элемент PictureBox1 с классом Bitmap:

        PictureBox1.Image = New Bitmap(PictureBox1.Width, _

                                       PictureBox1.Height)

        'Проектируем и в PictureBox1 рисуем выбранное нами тело:



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