Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР 2 Языки программирования академ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
319 Кб
Скачать
☆

3.2.8. Изменение цвета круга

Прежде всего, в класс формы необходимо добавить переменную, задающую цвет круга:

Color myColor;

Начальное значение (желтый цвет) присваивается ей в конструкторе формы:

myColor = Color.Yellow;

Изменение цвета круга происходит при щелчке левой кнопки мыши внутри круга (возможно, движущегося) в обработчике события MouseClick (не просто Click!) компонента pictureBox1. Пояснения к коду приведены в комментариях:

private void pictureBox1_MouseClick(object sender, MouseEventArgs e)

{

//проверяем, был ли щелчок именно левой кнопкой мыши

if (e.Button == MouseButtons.Left)

{

//получаем точку с координатами места щелчка

Point pt = new Point(e.X, e.Y);

//если эта точка - внутри фигуры (круга)

if (path.IsVisible(pt))

{

//создаем объект формы выбора цвета

Form2 form = new Form2();

//передаем в форму текущий цвет круга

form.CircleColor = myColor;

//отображаем форму на экране

if (form.ShowDialog() == DialogResult.OK)

{

//получаем значение выбранного цвета

myColor = form.CircleColor;

//перерисовываем круг

pictureBox1.Invalidate();

}

}

}

}

После этого остается лишь указание значение выбранного цвета при создании кисти: в методе pictureBox1_Paint строку

HatchBrush brush = new HatchBrush(HatchStyle.SolidDiamond, Color.Yellow);

заменить на строку

HatchBrush brush = new HatchBrush(HatchStyle.SolidDiamond, myColor);

4. Варианты заданий для самостоятельной работы

В каждом варианте необходимо реализовать движение требуемого изображения по заданной траектории, не допуская при этом выход фигуры за пределы области рисования. Каждое изображение состоит из нескольких (двух-трех) элементарных фигур. Предусмотреть:

  • возможность изменения скорости движения с помощью компонента TrackBar;

  • выбор цвета заливки фигуры нажатием левой кнопки мыши внутри изображения. Для выбора используется стандартное диалоговое окно выбора цвета (компонент ColorDialog);

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

№ варианта

Вид изображения

Траектория движения

Вдоль границ области рисования по часовой стрелке

Вдоль границ области рисования против часовой стрелки

От центра области рисования: вверх, вниз, влево, вправо

От центра области рисования: влево, вверх, вправо, вниз. От каждой стенки – к центру

От центра области рисования поочередно к углам. От угла – назад в центр

Вдоль границ области рисования по часовой стрелке

Вдоль границ области рисования против часовой стрелки

От центра области рисования: вверх, вниз, влево, вправо

От центра области рисования: влево, вверх, вправо, вниз. От каждой стенки – к центру

От центра области рисования поочередно к углам. От угла – назад в центр

Вдоль границ области рисования по часовой стрелке

Вдоль границ области рисования против часовой стрелки

От центра области рисования: вверх, вниз, влево, вправо

От центра области рисования: влево, вверх, вправо, вниз. От каждой стенки – к центру

От центра области рисования поочередно к углам. От угла – назад в центр

Вдоль границ области рисования по часовой стрелке

Вдоль границ области рисования против часовой стрелки

От центра области рисования: вверх, вниз, влево, вправо

От центра области рисования: влево, вверх, вправо, вниз. От каждой стенки – к центру

От центра области рисования поочередно к углам. От угла – назад в центр

Вдоль границ области рисования по часовой стрелке

Вдоль границ области рисования против часовой стрелки

От центра области рисования: вверх, вниз, влево, вправо

От центра области рисования: влево, вверх, вправо, вниз. От каждой стенки – к центру

От центра области рисования поочередно к углам. От угла – назад в центр

Вдоль границ области рисования по часовой стрелке

Вдоль границ области рисования против часовой стрелки

От центра области рисования: вверх, вниз, влево, вправо

От центра области рисования: влево, вверх, вправо, вниз. От каждой стенки – к центру

От центра области рисования поочередно к углам. От угла – назад в центр

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]