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

         

Глава Управляемое вращение и перемещение фигуры - часть 2


            //как точную копию объекта myGraphicsPath2:

            myGraphicsPath =

                      (GraphicsPath)myGraphicsPath2.Clone();

            //Задаем точку, относительно которой

            //будет поворачиваться фигура:

            PointF myPointF =

                        myGraphicsPath.GetBounds().Location;

            myPointF.X = myPointF.X +

                       myGraphicsPath.GetBounds().Width / 2;

            myPointF.Y = myPointF.Y +

                      myGraphicsPath.GetBounds().Height / 2;

            //Поворачиваем фигуру по часовой стрелке

            //на один шаг step_alpha

            //при помощи метода RotateAt класса Matrix:

            myMatrix1.RotateAt(step_alpha, myPointF);

            //Применяем метод Transform класса GraphicsPath

            //для трансформирования матриц myMatrix:

            myGraphicsPath.Transform(myMatrix1);

            myGraphicsPath.Transform(myMatrix2);

          //Рисуем преобразованную фигуру:

          myGraphics.DrawPath(new Pen(Color.Red, 3),

                                            myGraphicsPath);

     }

}

В панели Properties (для PictureBox) на вкладке Events дважды щелкаем по имени события Paint. Появляется шаблон метода PictureBox_Paint, который после записи нашего кода принимает следующий вид.

Листинг 56.2.  Метод для элемента управления PictureBox.

private void pictureBox1_Paint(object sender,

                                            PaintEventArgs e)

{

    //Вызываем метод FigureDraw

    //для рисования фигуры в i-м положении:

    myAnimation.FigureDraw(e.Graphics, i);

    //Задаем следующее i-е положение фигуры:

    i = i + 1;

}

Чтобы установить значение свойства Interval компонента Timer в зависимости от свойства Value ползунка элемента управления TrackBar, дважды щелкаем элемент управления TrackBar в режиме проектирования. Появляется файл Form9.cs с шаблоном, который после записи нашего кода принимает следующий вид.

Листинг 56.3. Метод для элемента управления TrackBar.

private void trackBar1_Scroll(object sender, EventArgs e)

{

      timer1.Enabled = true;

      timer1.Interval = trackBar1.Value;

}

Чтобы подключить к работе таймер, дважды щелкаем значок для компонента Timer (ниже формы в режиме проектирования). Появляется файл Form9.cs с шаблоном, который после записи нашего кода принимает следующий вид.

Листинг 56.4. Метод для компонента Timer.

private void timer1_Tick(object sender, EventArgs e)

{

      pictureBox1.Refresh();

}




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