ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
168
3.Устанавливаем требуемый диапазон:
x3=x2*(b2-b1), x3[0..b2-b1]
4. Переносим начало координат в b1:
x4=x3+b1, x4[b1..b2].
Итоговая формула:
1
)
(
1
2
1
2
1
4
b
a
a
b
b
a
x
x
+
−
−
− =
Для удобства можно реализовать функцию, пересчитывающую число из одно-
го диапазона в другой.
Задание 2.
Добавьте обработчик нажатия на кнопку мыши. Правая кнопка должна обес-
печивать перезапуск вычислений в увеличенном масштабе, левая – в уменьшенном.
Центром новой области является место щелчка мышью. Если удерживается кнопка
Shift, область должна увеличиваться/уменьшаться не в два, а в четыре раза.
Для добавления обработчика выберите форму диалогового окна и откройте
вкладку Messages. Выберите сообщение WM_LBUTTONDOWN (сообщение о нажа-
тии левой кнопки мыша). Нажмите Add Function и Edit Code.
Функция-обработчик сообщения принимает два параметра:
point – запись, полями x и y которой являются координаты мыши относитель-
но текущего окна. Обращение к полям – point.x и point.y соответственно.
nFlags – переменная, указывающая состояние клавиш Shift, Ctrl, а также кно-
пок мыши (нажато или нет). Если клавиша нажата, соответствующий бит nFlags ра-
вен 1. Для проверки состояния отдельных битов следует использовать операцию би-
нарное И (&):
if (nFlags & MK_SHIFT !=0) <Shift не нажат>
Пересчет диапазона для исследования сходимости удобно выполнить по сле-
дующей схеме. При нажатии кнопки мыши изменяем границы комплексной облас-
ти, отображаемой на экране. Сначала пересчитываем координаты мыши в координа-
ты на комплексной плоскости:
long double mx=point.x=(a2-a1)*point.x/400+a1;
long double my=point.x=(b2-b1)*point.y/300+b1;
Получаем центр области. Края области вычисляются прибавлени-
ем/вычитанием из координат центра величины полуширины и полувысоты. Если