Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать анимацию крыльев птицы 
V
    Опции темы
Mr_Nuke
Дата 31.8.2012, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Всем привет. Столкнулся с задачей, необходимо создать анимацию на дельфи, анимировать необходимо птицу, что б она махала крыльями.  
Первый курс, нужно использовать простейшие методы рисования на канвасе. 
user posted image

Попытался нарисовать дугу,  через arc, и вращать ее. Не получилось... квадрат, в который она вписывается, не вращается, а просто уменьшается. 

Тогда была другая идея, изменять размеры квадрата, и начальные/конечные точки рисования дуги. 
Рассчитал конечное положение "крыла", нарисовал дугу. Потом от конечных координат отнял начальные, и вычислил шаг.  
user posted image

Но уже на втором шаге все расплывается. Не могу найти алгоритм изменения координат. Или может есть более легкий способ?
user posted image



Это сообщение отредактировал(а) Mr_Nuke - 31.8.2012, 12:07

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  l.jpg 13,24 Kb
PM MAIL   Вверх
ksnk
Дата 31.8.2012, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 7
Всего: 386



Mr_Nuke, Нарисуй несколько картинок, отсканируй и меняй по кругу. Получится чиста артхус  smile 




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
DarkProg
Дата 31.8.2012, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: нет
Всего: 19



Цитата(ksnk @  31.8.2012,  12:27 Найти цитируемый пост)
 отсканируй и меняй по кругу

Ну зачем же так, можно использовать любые средства рисования.

А так, мой совет таков, попробуйте вычислить две функции для x и для y одного крыла и другого, я понял смысл, того что вы хотите но там кажется двумя дугами не обойтись.

Рисовать крылья надо от центра птички(т.е. взять за начало координат). Так с ходу накидать не смогу формулу, надо подумать...


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Pavia
Дата 31.8.2012, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Самая простое это спрайтовая анимация. Заготовил несколько изобажений и выводишь по круг.
И это будет выглядить лучше, чем то что вы нарисуете линиями и окружностями.

PM MAIL   Вверх
DarkProg
Дата 31.8.2012, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: нет
Всего: 19



Взмах крыльев, это по идее: уменьшение округлости крыла, т.е. надо взять увеличить радиус, но уменьшать длинну дуги.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Pavia
Дата 31.8.2012, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Цитата(DarkProg @  31.8.2012,  11:51 Найти цитируемый пост)
Рисовать крылья надо от центра птички(т.е. взять за начало координат). Так с ходу накидать не смогу формулу, надо подумать...

Чего там думат? Поврот и перенос.

Взяли точку, от неё отложили вектор повернули. Перенесли начало координат в получившуюся точку нарисовали другую кость.


PM MAIL   Вверх
Mr_Nuke
Дата 31.8.2012, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Пока отредактировал первый пост, добавил картинки. Сейчас почитаю комментарии, отпишусь smile


Цитата(DarkProg @ 31.8.2012,  11:51)
попробуйте вычислить две функции для x и для y одного крыла и другого

Две функции?? Получается, меняться должны сами функции. 
Мне кажется, это еще тяжелее, чем арки высчитывать. 

Появилась адовая идея, просчитать массив точек для крыла, и уже эти точки поворачивать по формуле


картинку не хочу, лаба заключается не в этом, пошлют с картинкой


Цитата(DarkProg @ 31.8.2012,  11:54)
Взмах крыльев, это по идее: уменьшение округлости крыла, т.е. надо взять увеличить радиус, но уменьшать длинну дуги.

Примерно так, но как раз должна меняться левая точка крыла (если говорить про левое крыло)
Вот сейчас, на рисунке это видно. И вот хз, как это сделать ))


Цитата(Pavia @ 31.8.2012,  12:03)
Взяли точку, от неё отложили вектор повернули. Перенесли начало координат в получившуюся точку нарисовали другую кость.

А вот я не понял... Мы говорим про дуги, не про линии? Которые еще должны и вращаться... Или ты имеешь введу типа массива точек?

Это сообщение отредактировал(а) Mr_Nuke - 31.8.2012, 12:16
PM MAIL   Вверх
Pavia
Дата 31.8.2012, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Цитата

А вот я не понял... Мы говорим про дуги, не про линии? Которые еще должны и вращаться... Или ты имеешь введу типа массива точек?

Я имею в виду обычную скелетную анимацию.
http://www.youtube.com/watch?feature=fvwp&...p;v=Fmp7f7BKE74

Это сообщение отредактировал(а) Pavia - 31.8.2012, 12:24
PM MAIL   Вверх
Mr_Nuke
Дата 31.8.2012, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Цитата(Pavia @ 31.8.2012,  12:21)
Я имею в виду обычную скелетную анимацию.

А если чуть-чуть по подробней?
PM MAIL   Вверх
ksnk
Дата 31.8.2012, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 7
Всего: 386



Mr_Nuke, Анимация - это набор картинок. Для фигуры из палочек - не нужно заморачиваться функциями трансформации одной картинки в другую - нужно их рисовать каждый раз заново.

В качестве примера, все-таки, посоветую нарисовать последовательность "маха" крыльями на бумаге.  В крайних положениях и в паре положений в середине. Померить картинки линейкой...
Получится что-то вроде массива реперных точек для каждого кадра (край крыла, центр крыла,   тело птицы) через которые можно прорисовать крыло, к примеру, в помощью кривых Безье.  


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Mr_Nuke
Дата 31.8.2012, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Цитата(ksnk @ 31.8.2012,  13:08)
В качестве примера, все-таки, посоветую нарисовать последовательность "маха" крыльями на бумаге.  В крайних положениях и в паре положений в середине. Померить картинки линейкой...
Получится что-то вроде массива реперных точек для каждого кадра (край крыла, центр крыла,   тело птицы) через которые можно прорисовать крыло, к примеру, в помощью кривых Безье.

Ну как бы может это и логично, но идея лабы - найти алгоритм изменения
PM MAIL   Вверх
Pavia
Дата 31.8.2012, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Цитата

Ну как бы может это и логично, но идея лабы - найти алгоритм изменения

Идея лабы это проверка знаний которые вы должны были получить, а не в выдумывании чего либо.

По поводу линейки. 
Художников учат делать эскиз по линейке. 
При создании анимации персонажа используют костюм, который определяет положение человека. Т.е тоже своеобразная линейка.

Либо в редакторе создается модель. Хотя типично модель, в редакторе рисуется, обводится по фотографии.

После уже делается анимация. Это либо ключевая анимация, либо спрайтовая анимация, либо скелетная анимация. 

Это сообщение отредактировал(а) Pavia - 31.8.2012, 23:43
PM MAIL   Вверх
_Y_
Дата 1.9.2012, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Может такая идея подойдет.
Находим на крыле суставы. 
Кости относительно точек крепления движутся по окружностям - описываем положение суставов.
Крыло углов не имеет - аппроксимируем суставы, например полиномомом или сплайном


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Mr_Nuke
Дата 2.9.2012, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



_Y_, Да, вот у меня была как раз это было последней идеей, но в процессе реализации выяснилось, что можно заменить кривые на прямые линии. Так что живем  smile 


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0915 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.