Как я делаю я заставляю средства управления/элементы переместиться с инерцией?

Вы можете использовать 2 карты для этой цели. Первая карта будет содержать название обуви в качестве ключа и карту в качестве значения. Вторая карта - свойства. Что-то вроде:

Map<String, Map<String, Object>> shoes = new HashMap<>();
Map<String, Object> shoeProps = new HashMap<>();
shoeProps.put("color", "red");
shoeProps.put("size", 38);
shoeProps.put("price", 35);
shoes.put("nike", shoeProps);
9
задан Jon Seigel 25 April 2010 в 05:06
поделиться

5 ответов

Вы говорите приблизительно две разных вещи здесь.

Каждый - импульс - предоставление вещей движения невязки, когда Вы выпускаете их от перетаскивания. Это просто о запоминании скорости вещи когда разъединения абонентом это, затем применяя ту скорость к объекту каждый кадр и также уменьшая скорость каждый кадр некоторой суммой. Как Вы уменьшаете скорость, каждый кадр - то, с чем Вы экспериментируете привыкнуть право.

Другой вещью является простота - в и анимация простоты. Это о гладком ускорении/замедлении объектов при перемещении их между двумя положениями вместо просто линейной интерполяции. Вы делаете это путем простого питания 'времени' оценивает через сигмовидную функцию перед использованием ее для интерполяции объекта между двумя положениями. Одна такая функция

smoothstep(t) = 3*t*t - 2*t*t*t    [0 <= t <= 1]

Это дает Вам обоим простоту - в и поведение простоты. Однако Вы будете чаще всего видеть только простоту, используемую в графический интерфейсах пользователя. Таким образом, объекты начинают перемещаться аккуратно, затем замедляются к останову в их конечном положении. Для достижения этого, Вы просто используете правильную половину кривой, т.е.

smoothstep_eo(t) = 2*smoothstep((t+1)/2) - 1
18
ответ дан 4 December 2019 в 07:49
поделиться

F Mike получил его: Вы применяете позиционную временем функцию для вычисления, положение объекта относительно времени (не слоняйтесь без дела со скоростью; только полезно, когда Вы пытаетесь выяснить, какой алгоритм Вы хотите использовать.)

Уравнения и демонстрация упрощения Robert Penner превосходны; как демонстрация jQuery, они демонстрируют визуально, на что похоже упрощение, но они также дают Вам график времени положения для давания Вам общее представление об уравнении позади него.

6
ответ дан 4 December 2019 в 07:49
поделиться

Это играет с числами.. То, что чувствует себя хорошо, хорошо.

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

0
ответ дан 4 December 2019 в 07:49
поделиться

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

0
ответ дан 4 December 2019 в 07:49
поделиться

То, что Вы ищете, является интерполяцией. Примерно разговор, существуют функции, которые варьируются от 0 до 1 и при масштабировании и переводе создают симпатичное перемещение. Это довольно часто используется в Flash и существуют тонны примеров: (ОТМЕТЬТЕ: в Flash интерполяция взяла имя "вставка промежуточных кадров", и самый популярный тип интерполяции известен как "упрощение".)

Взгляните на это для получения интуитивного ощущения типов перемещения: SparkTable: Визуализируйте Уравнения Упрощения.

При применении к перемещению, масштабированию, вращению другой анимации эти уравнения могут дать смысл импульса, или трения, или возврата или эластичности. Для примера при применении к анимации взглянули на Robert Penners, упрощающего демонстрацию. Он - автор самой популярной серии функций анимации (я полагаю, что Adobe создал в, на основе его). Этот тип перехода работает одинаково хорошо над альфой (для, постепенно появляются).

Существует немного метода к использованию. easeInOut запускаются медленный, убыстряется и замедление. easeOut запускается быстро и замедляется (как трение), и easeIn запускается медленный и убыстряется (как импульс). В зависимости от чувства Вы хотите Вас, выбирают соответствующий. Затем Вы выбираете между Синусом, Экспо, Четверкой и так далее для силы эффекта. Другие легко разработать их именами (например, возвраты Возврата, Назад идет, немного далее затем возвращается как резинка).

Вот ссылка на уравнения из популярной библиотеки Tweener для AS3. Необходимо смочь переписать их в JavaScript (или любой другой язык) с мало ни к какой проблеме.

4
ответ дан 4 December 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: