Алгоритмическое мышление при решении задач (на примере языка C#). Шамшев А.Б - 102 стр.

UptoLike

Составители: 

102
Пусть на форме мы будем рисовать квадратики, которые пользователь
может «таскать» мышкой. Логично предположить, что таких объектов будет
много, поэтому нам нужен список таких объектов (или массив).
Тогда получается, что нужно объявить класс, который отвечает за работу с
квадратом. Квадрат надо рисовать. Для рисования требуется знать его
координаты и размеры. И
для рисования нужен объект типа Graphics, в котором
будет происходить рисование (пусть он нам передается в функции рисования).
Так же нам надо будет проверять, попадает ли точка в заданную фигуру или
нет. Поэтому класс, отвечающий за работу с фигурой, будет выглядеть
следующим образом:
/// <summary>
/// класс, который отвечает за работу с одним квадратом
/// </summary>
public class Square {
/// <summary>
/// координаты центра квадрата по X
/// </summary>
public int x;
/// <summary>
/// координаты центра квадрата по Y
/// </summary>
public int y;
/// <summary>
/// размер квадрата
/// </summary>
public int size;
/// <summary>
/// конструктор
/// </summary>
/// <param name="_x">координаты центра по X</param>
/// <param name="_y">координаты центра по Y</param>
/// <param name="_size">размер квадрата</param>
public Square(int _x, int _y, int _size) {
x = _x;
y = _y;
size = _size;
}
/// <summary>
/// функция рисования квадрата
/// </summary>
/// <param name="e">объект, в котором надо рисовать</param>
public void draw(Graphics e) {
e.FillRectangle(Brushes.Green, x - size / 2, y - size / 2,
size, size);
}
/// <summary>
/// функция проверки принадлежности точки квадрату
/// </summary>
/// <param name="p">точка, которая проверяется на
принадлежность</param>