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

       

Вращающееся градиентное заполнение фигур цветом 


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

//Объявляем и обнуляем глобальную переменную angle:

int angle = 0;

private void timer1_Tick(object sender, EventArgs e)

{

      //Экземпляр структуры ntPtr:

      IntPtr myIntPtr = new IntPtr();

      //Свойство Handle:

      myIntPtr = this.Handle;

      //Создаем объект myGraphics класса Graphics

      //и применяем функцию FromHwnd:

      Graphics myGraphics = Graphics.FromHwnd(myIntPtr);

      //Задаем параметры прямоугольника:

      Rectangle myRectangle = new Rectangle(5, 5, 700, 400);

      //Задаем два граничных цвета Red и White

      //градиентной заливки:

      LinearGradientBrush myLinearGradientBrush =

                  new LinearGradientBrush(myRectangle,

                  Color.Red, Color.White, angle);

        //Заполняем прямоугольник цветом:

        myGraphics.FillRectangle(myLinearGradientBrush,

        myRectangle);

        //Организовываем циклический процесс вращения:

        angle = angle + 10;

        if (angle >= 360) angle = 0;

        //Высвобождаем ресурсы, выделенные объекту

        //myGraphics:

        myGraphics.Dispose();

}

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

Согласно разработанной выше методике, чтобы иметь возможность приостановить (и запустить вновь) процесс анимации при помощи кнопки Stop Animation, дважды щелкаем эту кнопку в режиме проектирования. Появляется файл Form1.cs с шаблоном, в который записываем код, приведенный в предыдущей главе.



Содержание раздела