• 0
ENERGY

Создать анимированный контрол (см. GIF)

Вопросы

Привет. 

Очень нужно мнение профессионалов FMX.

Нужно создать анимированный контрол - как на гифке .

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

Как думаете возможно ли создать такое контрол в FMX, если да то с чего лучше начать.

Если брать векторную графику, рисуем этот круг, то как затем его деформировать. И что делать с другими элементами, - волной например. Дорисовать ее в виде Bitmap ?

Посоветуйте пожалуйста. giphy.gif.31d977942c9128456ec91ee7a37cb968.gif imgq.png.6db6a4f24f80374c6e2e2838ad91cb76.png

 

Изменено пользователем ENERGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 ответа на этот вопрос

  • 0

Если нужно достаточно ограниченное количество кадров (100 например) - можно всё зарендерить и выводить нужный в нужный момент. Если нужно, что бы при каждом положении точки шли волны - то тут только рендер svg с коэффициентами, а затем вывод. В любом случае не помню в FMX работу с вектором такую. Нужны заточенные под это либы, а уж на основе них дальше сделать компонент не проблема...
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Я решил все на bitmap анимации сделать, без вектора.  Мало времени.

Изменено пользователем ENERGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Да еще вот - векторная отрисовка, нативными фукнциями при этом с нормальным сглаживанием.. Работает на Android\iOS\Windows\Mac  -   юзайте авто гугло переводчик

 

http://www.cnblogs.com/onechen/p/6350096.html

https://github.com/OneChen/FMXNativeDraw/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От denprox
      Доброго времени суток! Есть у кого ни будь пример того, как в RunTime нарисовать путь, по которому потом сможет двигаться объект ? 
      Я смог найти только видео:
      Tutorial: TPathAnimation in FireMonkey XE6
       
    • От Дмитрий Потапов
      Так, допустим, создал красивый стиль, но мало его просто нарисовать, программы могут обладать красивыми анимациями, вот в чем собственно вопрос:
      Как сделать анимированную кнопку например?
      Четыре состояния
      1. обычное 2. выделенное 3. нажатое 4. заблокированное (например на этом компоненте как сделать хотя бы плавное изменение цвета, а еще лучше попробовать сделать увеличение текста на кнопке)
    • От 97mik
      Как сделать переход при выборе пункта в ListBox?
      И можно ли при этом будет вернутся свайпом слева направо?
       
    • От Kantrobac
      Здравствуйте, недавно приступил к изучению обезьянки, тк необходимо реализовать следующее: есть поле датчиков 30 штук, расположенных квадратом. Над ними проводят объект который меняет их магнитное поле, всё это записывается в двухмерный массив(т.е. в одной строчке(один датчик) будут 0 пока над датчиком не пролетит объект), необходимо визуализировать этот процесс. Решил использовать Plane, на которой закрепил 30 Cube(Рис 1). По задумке столбик должен расти при изменении значения в массиве: 
      float mas[3][3] = {{1,0,0},{0,1,0},{0,0,1}}; void __fastcall TForm3D1::Form3DCreate(TObject *Sender) { FloatAnimation1->Parent = Cube1; FloatAnimation1->PropertyName = "Scale.Y"; //FloatAnimation1->StopValue = 1; FloatAnimation1->Duration = 1; FloatAnimation1->AnimationType = TAnimationType::atIn; FloatAnimation1->Interpolation = TInterpolationType::itLinear; FloatAnimation1->StartFromCurrent = true; FloatAnimation2->Parent = Cube2; FloatAnimation2->PropertyName = "Scale.Y"; //FloatAnimation2->StopValue = 1; FloatAnimation2->Duration = 1; FloatAnimation2->AnimationType = TAnimationType::atIn; FloatAnimation2->Interpolation = TInterpolationType::itLinear; FloatAnimation2->StartFromCurrent = true; FloatAnimation3->Parent = Cube3; FloatAnimation3->PropertyName = "Scale.Y"; //FloatAnimation3->StopValue = 1; FloatAnimation3->Duration = 1; FloatAnimation3->AnimationType = TAnimationType::atIn; FloatAnimation3->Interpolation = TInterpolationType::itLinear; FloatAnimation3->StartFromCurrent = true; } void __fastcall TForm3D1::Button1Click(TObject *Sender) { for (int i = 0; i < 3; i++) { Form3D1->resizecube(i); } } void __fastcall TForm3D1::resizecube(int a) { FloatAnimation1->StopValue = mas[a][0]; FloatAnimation1->Start(); FloatAnimation2->StopValue = mas[a][1]; FloatAnimation2->Start(); FloatAnimation3->StopValue = mas[a][2]; FloatAnimation3->Start(); // ShowMessage(""); } Сделал пример для простого массива. Проблема в том, что если закоментить  ShowMessage(""); то отображается только последняя итерация. Подскажите как сделать так чтобы итерации выводились последовательно, друг за другом. Спасибо 

    • От DirtyBorov
      За ранее прошу простить если не в ту ветку. Вопрос двоякий и анимация и жесты.
      Нужно реализовать анимацию, таким образом, что бы она постепенно останавливалась. Вот например есть 10 картинок, надо их пальцем прокручивать. Но так, чтоб они постепенно останавливались. Причем картинки небольшие, сразу на экране могут быть 3 картинки.  Как бы лента из картинок. Картинок может быть много 100+. Стоит ли копать в сторону анимации? Не будет ли тормозить на слабеньком телефоне?
      Посоветуйте куда копать - анимация, Box2D?
    • От brunnengi
      Здравствуйте.
      Где можно посмотреть пример работы компонента TBitmapListAnimation?
    • От brunnengi
      Здравствуйте.
      Создал пяти секундный анимированный эффект в Abobe After Effects. 
      Сохранил в PNG формате с прозрачностью, по кадрам. Всего вышло 120 кадров.
      Через что можно создать в FMX Desktop приложение анимацию из последовательности этих кадров/файлов?
      Подскажите пожалуйста.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу