Как рисовать анимированные линии в Silverlight? - PullRequest
2 голосов
/ 05 июля 2010

Хорошо, так что я использую Expression Blend 4 и изучаю SL, и меня это сильно поражает.Я работаю над простым проектом по анимации схемы удержания самолета.Я хочу показать вещи на экране в определенном порядке:

  1. Нарисуйте точку ожидания (станция)
  2. Нарисуйте позицию самолета
  3. Анимируйте стрелку, начинаяна месте самолета и на станции.
  4. нарисуйте дугообразную стрелку (в анимационном стиле).

Макет:

alt text

Я достаточно знаю, чтобы использовать раскадровку для анимации, но я не могу найти способ просто нарисовать свои линии / стрелки для шагов 3 и 4. Я могу перемещать фигуры, как мо-фо в раскадровке (потому что это то, что все учебные ресурсы показывают вам, как это сделать), но я не могу понять, как просто нарисовать линию / стрелку.И как только я пройду этот базовый шаг, мне нужно выяснить, как сделать это программно, чтобы я мог определить местоположение самолета относительно местоположения относительно станции на основе входного параметра.

Какие-нибудь ресурсы или мысли, чтобы помочь мне начать с этим?

Ответы [ 2 ]

2 голосов
/ 05 июля 2010

Существует класс PointAnimation, который можно использовать для установки конечной точки стрелки, но он анимируется только линейно, а не вдоль траектории, как полукруг. Для этого вам понадобится PointAnimationUsingPath.

К сожалению, у Silverlight нет PointAnimationUsingPath, я нашел только этот проект, который эмулирует его: Анимация по пути для Silverlight

1 голос
/ 06 июля 2010

@ AnthonyWJones, вы очень хорошо знаете, чего он хочет от "оживленной моды".Опять же, я дизайнер в душе, так что, может быть, это естественно для меня.

Быстрый и простой способ - сделать это программно.Просто возьмите конечную точку линии и обновите координаты x, y.Теперь вы можете либо обновить координату напрямую (в этом случае вам понадобится игровой цикл, который, я уверен, у вас есть), либо вы можете установить координаты один раз в конечной точке назначения конечной точки, а затем запустить анимацию раскадровки, которая интерполируетэто все для тебя.Обратите внимание, что это относится только к прямой линии.Для изогнутой линии вам нужно будет использовать группу отрезков (или путь) и добавить к ней координаты по мере продвижения по игровому циклу.Полукруглая траектория проста (используйте формулу для круга!).

Теперь трудный путь - сделать все это от дизайнера.До сих пор я не нашел никаких полезных объектов (например, PointAnimationUsingPath).Если кто-то обнаружен / известен, я действительно хотел бы знать, как.

...