![]() |
|
![]() ![]() ![]() |
|
Mr_Nuke |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Всем привет. Столкнулся с задачей, необходимо создать анимацию на дельфи, анимировать необходимо птицу, что б она махала крыльями.
Первый курс, нужно использовать простейшие методы рисования на канвасе. ![]() Попытался нарисовать дугу, через arc, и вращать ее. Не получилось... квадрат, в который она вписывается, не вращается, а просто уменьшается. Тогда была другая идея, изменять размеры квадрата, и начальные/конечные точки рисования дуги. Рассчитал конечное положение "крыла", нарисовал дугу. Потом от конечных координат отнял начальные, и вычислил шаг. ![]() Но уже на втором шаге все расплывается. Не могу найти алгоритм изменения координат. Или может есть более легкий способ? ![]() Это сообщение отредактировал(а) Mr_Nuke - 31.8.2012, 12:07 Присоединённый файл ( Кол-во скачиваний: 8 ) ![]() |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
Mr_Nuke, Нарисуй несколько картинок, отсканируй и меняй по кругу. Получится чиста артхус
![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Ну зачем же так, можно использовать любые средства рисования. А так, мой совет таков, попробуйте вычислить две функции для x и для y одного крыла и другого, я понял смысл, того что вы хотите но там кажется двумя дугами не обойтись. Рисовать крылья надо от центра птички(т.е. взять за начало координат). Так с ходу накидать не смогу формулу, надо подумать... -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Самая простое это спрайтовая анимация. Заготовил несколько изобажений и выводишь по круг.
И это будет выглядить лучше, чем то что вы нарисуете линиями и окружностями. |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Взмах крыльев, это по идее: уменьшение округлости крыла, т.е. надо взять увеличить радиус, но уменьшать длинну дуги.
-------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Чего там думат? Поврот и перенос. Взяли точку, от неё отложили вектор повернули. Перенесли начало координат в получившуюся точку нарисовали другую кость. |
|||
|
||||
Mr_Nuke |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Пока отредактировал первый пост, добавил картинки. Сейчас почитаю комментарии, отпишусь
![]()
Две функции?? Получается, меняться должны сами функции. Мне кажется, это еще тяжелее, чем арки высчитывать. Появилась адовая идея, просчитать массив точек для крыла, и уже эти точки поворачивать по формуле картинку не хочу, лаба заключается не в этом, пошлют с картинкой
Примерно так, но как раз должна меняться левая точка крыла (если говорить про левое крыло) Вот сейчас, на рисунке это видно. И вот хз, как это сделать ))
А вот я не понял... Мы говорим про дуги, не про линии? Которые еще должны и вращаться... Или ты имеешь введу типа массива точек? Это сообщение отредактировал(а) Mr_Nuke - 31.8.2012, 12:16 |
||||||
|
|||||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Я имею в виду обычную скелетную анимацию. http://www.youtube.com/watch?feature=fvwp&...p;v=Fmp7f7BKE74 Это сообщение отредактировал(а) Pavia - 31.8.2012, 12:24 |
|||
|
||||
Mr_Nuke |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
А если чуть-чуть по подробней? |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
Mr_Nuke, Анимация - это набор картинок. Для фигуры из палочек - не нужно заморачиваться функциями трансформации одной картинки в другую - нужно их рисовать каждый раз заново.
В качестве примера, все-таки, посоветую нарисовать последовательность "маха" крыльями на бумаге. В крайних положениях и в паре положений в середине. Померить картинки линейкой... Получится что-то вроде массива реперных точек для каждого кадра (край крыла, центр крыла, тело птицы) через которые можно прорисовать крыло, к примеру, в помощью кривых Безье. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Mr_Nuke |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Ну как бы может это и логично, но идея лабы - найти алгоритм изменения |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Идея лабы это проверка знаний которые вы должны были получить, а не в выдумывании чего либо. По поводу линейки. Художников учат делать эскиз по линейке. При создании анимации персонажа используют костюм, который определяет положение человека. Т.е тоже своеобразная линейка. Либо в редакторе создается модель. Хотя типично модель, в редакторе рисуется, обводится по фотографии. После уже делается анимация. Это либо ключевая анимация, либо спрайтовая анимация, либо скелетная анимация. Это сообщение отредактировал(а) Pavia - 31.8.2012, 23:43 |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Может такая идея подойдет.
Находим на крыле суставы. Кости относительно точек крепления движутся по окружностям - описываем положение суставов. Крыло углов не имеет - аппроксимируем суставы, например полиномомом или сплайном -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
Mr_Nuke |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
_Y_, Да, вот у меня была как раз это было последней идеей, но в процессе реализации выяснилось, что можно заменить кривые на прямые линии. Так что живем
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |