Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 07.01.2009, 13:01   #1
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию Алгоритм (плавное увеличение)

Приветствую. Даже незнаю куда данный топик кинуть, ну вообщем тут собственно алгоритм надо составить. Выкладываю теорию: существуют (пусть будут) квадратики одинакового размера. Теперь есть коэфициент в диапазоне от 0 до 1, изменяется он соотвественно как
Код:
m = (мышь - левый край квадрата) / (ширина квадрата)
и таким образом где мышь там под ней самый большой квадрат остальные должны плавно изменятся в размерах относительно положения мыши.
Вот что на даннный момент есть

Код:
k = размер, на сколько будет производится увеличение
z = размер оригинального квадарат, без увеличения
n = кол-во квадратов участвующий в увеличении
i = текущий индекс квадрата начиная от n - 1 до 0
// идем вправо, в сторону уменьшения k
d = z + k * i / (n / 2) * (1 - (1 - m) / (n / 2))
// идем влево
d = z + k * i / (n / 2) * (1 - m / (n / 2))
Прошу помощи в составлении алгоритма... просто уже угрохал достаточно времени но понять так и не могу что не так делаю.
BOBAH13 вне форума Ответить с цитированием
Старый 07.01.2009, 13:58   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,072
По умолчанию

нужно что-то вроде этого?

d[i]:=z*fkof(abs(k-i)); где

d[i] размер квадратика i
z исходный (оригинальный) размер
k номер квадрата с мышкой
fkof функция расчета понижающего коэффициента
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 07.01.2009, 17:58   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Ну надо исходить из того что я дал, ну а fkof ? как выглядит...
BOBAH13 вне форума Ответить с цитированием
Старый 07.01.2009, 19:55   #4
rpy3uH
добрый няша
СуперМодератор
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,808
По умолчанию

если у тебя все вычисления во время onMouseMove, то предлагаю так (хотя конечно врядли понравится или поможет): создаём функцию, которая будет вычислять размер квадрата в зависимости от положения мыши. Когда происходит событие onMouseMove проходим по всему массиву квадратиков и задаём для каждого его размеры, вроде всё должно получиться плавно. Если каждый квадратик это отдельный компонент, у которого есть событие onMouseMove. То создаём универсальный обработчик, и в каждом обработчике преобразуем координаты X и Y чтобы они были относительно формы и вызываем универсальный обработчик.
rpy3uH вне форума Ответить с цитированием
Старый 07.01.2009, 20:01   #5
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Спасибо за помощь, все вывел формулу верную

Номер в диапазоне [Кол-воДляУвеличения div 2 - 1....0]

Для правой стороны
Код:
РазмерКвадрата + НаСколькоУвеличиваем * (Номер + КоэфициентМышь) / (Кол-воДляУвеличения div 2);
Для левой немного подругому
Код:
РазмерКвадрата + НаСколькоУвеличиваем * (Номер + 1 - КоэфициентМышь) / (Кол-воДляУвеличения div 2);
BOBAH13 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавное появления формы Claster Помощь студентам 4 12.11.2008 23:59
Плавное появление формы HAMMAN Общие вопросы Delphi 3 15.05.2008 13:20
Увеличение размера поля kayman Общие вопросы Delphi 6 16.10.2007 21:35
Пропорциональное увеличение Роман Радер Мультимедиа в Delphi 1 02.04.2007 11:22
Увеличение, уменьшения Bitmap Mickle Общие вопросы Delphi 4 28.03.2007 17:04


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840