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


         

Задаем угол поворота фигуры после


Листинг 33.2. Метод ProcessCmdKey.
protected override bool ProcessCmdKey(
    ref System.Windows.Forms.Message msg,
    System.Windows.Forms.Keys keyData)
{
    // Задаем угол поворота фигуры после нажатия клавиши:
    const float delta_theta = (float)pi / 20; ;
    //Рассчитываем новые координаты глаза наблюдателя:
    if (keyData == System.Windows.Forms.Keys.Left)
        theta_Eye = theta_Eye - delta_theta;
    if (keyData == System.Windows.Forms.Keys.Right)
        theta_Eye = theta_Eye + delta_theta;
    if (keyData == System.Windows.Forms.Keys.Up)
        phi_Eye = phi_Eye - delta_theta;
    if (keyData == System.Windows.Forms.Keys.Down)
        phi_Eye = phi_Eye + delta_theta;
    //Проектируем выбранное нами геометрическое тело:
    Projection(ref MatrixProjection, PerspectiveProjection,
        r_Eye, phi_Eye, theta_Eye,
        (float)x_focus, (float)y_focus, (float)z_focus,
         0, 1, 0);
    Designing((Bitmap)pictureBox1.Image);
    //В элементе PictureBox перерисовываем объект:
    pictureBox1.Refresh();
    return true;
}
Ниже этого кода записываем следующие все методы.
Листинг 33.3. Методы для решения поставленной задачи.
//Проектируем и при помощи процедуры DrawSolid
//рисуем выбранное флажком CheckBox геом-е тело:
private void Designing(Bitmap bmp)
{
    //Создаем объект g класса Graphics:
    Graphics g;
    //Связываем объект g с изображением bmp:
    g = Graphics.FromImage(bmp);
    //Задаем белый цвет типа Window
    //для элемента управления PictureBox1: 
    g.Clear(SystemColors.Window);
    //Высвобождаем ресурсы от графического объекта g:
    g.Dispose();
    //Преобразуем точки:
    TransformAllDataFull(ref MatrixProjection);
    //Проектируем и рисуем выбранное на CheckBox тело:
    if (checkBox1.CheckState ==
      System.Windows.Forms.CheckState.Checked)
    {
        DrawSolid(
        bmp, Tetrahedron, Cube - 1,
        System.Drawing.Color.Red, false);
    }
    if (checkBox2.CheckState ==

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