![]() |
|
|
![]()
|
|
| Mr_Nuke |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Всем привет. Столкнулся с задачей, необходимо создать анимацию на дельфи, анимировать необходимо птицу, что б она махала крыльями.
Первый курс, нужно использовать простейшие методы рисования на канвасе. ![]() Попытался нарисовать дугу, через arc, и вращать ее. Не получилось... квадрат, в который она вписывается, не вращается, а просто уменьшается. Тогда была другая идея, изменять размеры квадрата, и начальные/конечные точки рисования дуги. Рассчитал конечное положение "крыла", нарисовал дугу. Потом от конечных координат отнял начальные, и вычислил шаг. ![]() Но уже на втором шаге все расплывается. Не могу найти алгоритм изменения координат. Или может есть более легкий способ? ![]() Это сообщение отредактировал(а) Mr_Nuke - 31.8.2012, 12:07 Присоединённый файл ( Кол-во скачиваний: 8 )
l.jpg 13,24 Kb |
|||
|
||||
| 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. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |