Определение индексов нарисованых ячеек.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
CORBA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 22.11.2003 (Сб) 13:41
Откуда: Ukraine-Crimea-Feodosia

Определение индексов нарисованых ячеек.

Сообщение CORBA » 03.03.2007 (Сб) 12:29

Имеется двумерная матрица произвольной размерности состоящая из одинаковых нарисованных квадратов. Между квадратами имеется постоянный промежуток, например 3 пикселя. Подскажите, пожалуйста, как наиболее оптимальным способом опредилить индексы квадрата, над которым находится курсор мыши?
У каждой сложной задачи есть множество простых для понимания, но неправильных решений.

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 03.03.2007 (Сб) 13:18

Если матрица расположена на форме статически, тогда x(кв)=(x_текущей_позиции - matrista.left)/(сторона_квадрата+промежуток_между_квадратами). Результат округляешь до целого всегда в большую сторону. По y значение вычисляется по такому же принципу. Единственное, нужно учесть, что мышка может быть между квадратами. Наиболее простой способ - посчитать отношение стороны квадрата к промежутку между ними, а потом смотреть на дробную часть.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 03.03.2007 (Сб) 15:15

Сделать так, чтобы квадраты, например, Image1, сосотояли в массиве. Далее смотрим процедуру Image1_MouseMove.
Там всё есть.

И можно даже разбросать квадратики по всей форме в произволном порядке


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 49

    TopList