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


Глава Методика изображения летающих предметов 


 

Листинг 59.1. Объявление объекта и глобальных переменных.

//Задаем ширину и высоту прямоугольника,

//внутри которого будет летать мяч:

int width_of_rectangle = 1000;

int height_of_rectangle = 500;

 

//Верхняя горизонтальная линия прямоугольника отстоит

//от оси 'x' на расстоянии boundary_of_rectangle_у:

int boundary_of_rectangle_у = 15;

 

//Левая вертикальная линия прямоугольника отстоит

//от оси 'y' на расстоянии boundary_of_rectangle_x:

int boundary_of_rectangle_x = 15;

//Размер мяча size_of_ball, как часть (доля)

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

int size_of_ball = 20;

//Величина перемещения мяча size_of_move_of_ball,

//как часть (доля) от размеров мяча:

int size_of_move_of_ball = 5;

 

//Создаем объект myBitmap класса Bitmap:

private Bitmap myBitmap;

       

//Объявляем целочисленные переменные:

int position_of_ball_x, position_of_ball_y,

      radius_of_ball_x, radius_of_ball_y,

      move_of_ball_x, move_of_ball_y,

      width_of_bitmap_of_ball, height_of_bitmap_of_ball,

      width_of_margin_of_bitmap, height_of_margin_of_bitmap;

Дважды щелкаем по диалоговой панели Form1 в режиме проектирования и в появившийся шаблон записываем следующий наш код.

Листинг 59.2. Метод Form1_Load.

private void Form1_Load(object sender, EventArgs e)

{

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

      //и стираем другие изображения:

      Graphics myGraphics = CreateGraphics();

      myGraphics.Clear(BackColor);

 

      //Задаем радиус мяча как дробь (часть)

      //от ширины или высоты прямоугольника,

      //в зависимости от того, какая дробь меньше:

      double radius_of_ball  =

      Math.Min(width_of_rectangle / myGraphics.DpiX,

      height_of_rectangle / myGraphics.DpiY) / size_of_ball;

       

      //Задаем ширину и высоту мяча в DPI (ТОЧКИ НА ДЮЙМ)

      //для единиц разрешения изображения

      //по горизонтали и вертикали, что идентично значениям

      //в направлении осей 'x' и 'y':

      radius_of_ball_x = Convert.ToInt32(radius_of_ball *




Начало  Назад  Вперед



Книжный магазин