Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная графика, мультимедиа и игры на Vis...doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.92 Mб
Скачать

Часть III. Методология вычислений на основе Visual c# с использованием эффектов анимации Глава 9. Методика создания вычислительной системы

Листинг 9.1. Код для мигания названия переключателя.

//Объявляем булеву переменную myText со значением false:

bool myText = false;

private void timer1_Tick(object sender, EventArgs e)

{

//Вводим анимацию:

if (myText == false)

{

//Выводим название переключателя:

this.radioButton3.Text = "&3. Calculator";

//Изменяем значение myText на противоположное:

myText = true;

}

else

{

//Удаляем название переключателя:

this.radioButton3.Text = "";

//Изменяем значение myText на противоположное:

myText = false;

}

}

В этом коде в строке (radioButton3->Text = "";) между кавычками мы можем записать другой текст, который будет чередоваться с первым названием.

Аналогично можно также дописать код, чтобы сделать анимационными сразу несколько переключателей. Задавая в панели Properties с заголовком Timer1 различные значения свойству Interval (а выше мы задали 1000 миллисекунд или 1 секунду), можно изменять частоту мигания, чтобы это мигание было, например, приятным для наших глаз. Методика приостановки и возобновления анимации после щелчков по кнопке или по самой формы уже была приведена выше.

Глава 10. Арифметические вычисления

Теперь в файл Form3.cs необходимо написать нашу часть кода для выполнения первой арифметической операции (сложения) после щелчка первой кнопки со знаком равенства “=” на Form3; дважды щелкаем эту кнопку. Появляется файл Form3.cs с шаблоном, в который записываем:

double add1, add2, add3;

add1 = Convert.ToDouble(textBox1.Text);

add2 = Convert.ToDouble(textBox2.Text);

add3 = add1 + add2;

textBox3.Text = add3.ToString();

Аналогично дважды щелкаем вторую кнопку. Появляется файл Form3.cs с шаблоном, в который записываем такой же код, только вместо сложения записываем вычитание двух чисел и следующие номера окон textBox:

double sub1, sub2, sub3;

sub1 = Convert.ToDouble(textBox4.Text);

sub2 = Convert.ToDouble(textBox5.Text);

sub3 = sub1 - sub2;

textBox6.Text = sub3.ToString();

Аналогично дважды щелкаем третью кнопку. Появляется файл Form3.cs с шаблоном, в который записываем такой же код, только вместо вычитания записываем умножение двух чисел и следующие номера окон textBox:

double mul1, mul2, mul3;

mul1 = Convert.ToDouble(textBox7.Text);

mul2 = Convert.ToDouble(textBox8.Text);

mul3 = mul1 * mul2;

textBox9.Text = mul3.ToString();

Аналогично дважды щелкаем последнюю четвертую кнопку. Появляется файл Form3.cs с шаблоном, в который записываем такой же код, только вместо умножения записываем деление двух чисел и следующие номера окон textBox:

double div1, div2, div3;

div1 = Convert.ToDouble(textBox10.Text);

div2 = Convert.ToDouble(textBox11.Text);

div3 = div1 / div2;

textBox12.Text = div3.ToString();

10.3. Анимация в виде циклического изменения непрозрачности панели

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

Напомним, что степень непрозрачности формы устанавливается в панели Properties (с заголовком Form1) в строке Opacity и по умолчанию имеет 100-процентную непрозрачность (при значении, равном 1). Если значение свойства Opacity равно 0, то форма полностью прозрачна.

Алгоритм данной анимации формулируем так:

в режиме выполнения форма появляется с заданным нами значением свойства непрозрачности Opacity, например, 30%;

далее значение свойства непрозрачности Opacity увеличивается пошагово (например, с шагом 0.1) до максимального значения 1 (с заданным нами выше в панели Properties интервалом времени Interval для компонента Timer1);

на каждом шаге значение свойства непрозрачности Opacity выводится в заголовок формы, и подается звуковой сигнал;

после достижения максимального значения 1, свойству непрозрачности Opacity снова задается исходное значение, например, 0.3, и весь цикл увеличения непрозрачности формы повторяется;

на любом шаге мы должны иметь возможность остановить увеличение непрозрачности формы (остановить анимацию), например, щелчком по форме.

Для программной реализации этого алгоритма сначала в панели Properties с заголовком Form1 в строке свойства Opacity изменяем заданное по умолчанию значение 100% на исходное значение, например, на 30% и нажимаем клавишу Enter.

Затем дважды щелкаем значок timer1 (ниже формы в режиме проектирования). Появляется файл Form1.cs с шаблоном, в который записываем код:

//Увеличиваем непрозрачность на шаг 0.1:

this.Opacity = this.Opacity + 0.1;

//При достижении или превышении

//полной непрозрачности панели, равной 1,

//возвращаемся к исходной непрозрачности 0.3:

if (this.Opacity >= 1)

this.Opacity = 0.3;

//Выводим значение непрозрачности

//в заголовок формы:

this.Text = "Opacity: " + this.Opacity;

В этом коде в строке (this.Opacity = 0.3;) мы можем устанавливать различные значения исходной непрозрачности.

Задавая в панели Properties с заголовком Timer1 различные значения свойству Interval (а выше мы задали 1000 миллисекунд или 1 секунду), можно уменьшить частоту изменения непрозрачности, чтобы мы успели присмотреться и остановить анимацию при приятном для нашего глаза значении непрозрачности формы.

Методика приостановки и возобновления анимации после щелчка по дополнительной кнопке на форме, а также подачи звукового сигнала приведена выше.