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

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

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

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

Ответ
 
Опции темы
Старый 07.01.2009, 14: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, 14:58   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 4,930
По умолчанию

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

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

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


01:49.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.