| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Немного анимации |
| Автор: IRQ 30.11.2006, 00:02 |
| Народ. Есть такая тема. Надо сделать метод перехода. То есть задаём базовый кадр и конечный. И программа должна сгенерить промежуточные. Что-то типа Flash. Метод такой что выделанная группа элементов сначала закрашивается с краю. Потом рамка эта сужается и идёт так до центра. То есть как бы контур на каждом шаге сужается к центру или наоброт. Он может идти от центра к краю группы. Я вот думал. Не мог ничего придумать. Всё упирается в то, что всё зависит от формы конутра. То есть прямоугольник, круг, треугольник. А универсального не могу придумать. Надо как-то вот на каждом получить те элементы, которые будут загораться на этом шаге. У нас есть координаты элементов и их номера. Чтобы отличать друг от дргуа. Вот надо фактически на каждом шаге получить список номеров тех элементов, которые будут загораться. У меня повторюсь всё упирается в форму группы. Универсального алгоритма не вижу. Помогите разобраться. |
| Автор: SoWa 1.12.2006, 19:33 |
| Берем центр, проводим ко всем точкам радиус векторы(если кривые фигуры) или к вершинам(если Н-угольник). Делим их на число, коэффициент пропорциональности какой нибудь(увеличивать/уменьшать его каждый шаг будем). Строим получившуюся фигуру. PS Ну тривиальная же задача. Иногда включайте математическое мышление. |
| Автор: IRQ 2.12.2006, 23:35 |
| Ну так это для случая если контур в виде круга. Понятно что от центра к краям. Но ведь это круг. Для прямоугольника такая штука не прокатит. Или треугольника. Хотя частично я задачу уже решил |
| Автор: SoWa 3.12.2006, 08:45 |
| Как для прямоугольника не прокатит?! Берем радиус-вектора к вершинам. Уменьшаем. Получаем кординаты новых вершин. Соединим их. |