Использование CAMediaTimingFunction для вычисления значения в момент времени (t)

В Cocoa/Touch CAMediaTimingFunction представляет четыре контрольные точки, которые определяют кубическую кривую Безье функции синхронизации. Для приложения, которое я пишу, я хотел бы иметь возможность извлечь результат указанной кривой Безье в произвольное время t (0 -> 1 ). Что меня смущает, так это то, что когда я смотрю, как сделать это , результат также должен быть точкой, а не скаляром :

B(t) = (1 - t) ^ 3 * P0 + 3 * (1 - t) ^ 2 * t * P1 + 3 * (1 - t) * t ^ 2 * P2 + t ^ 2 * P3

. Однако реализация Apple приводит к скалярному значению (вы можете видеть на этом графике, что они отображают x(t)против t :http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Animation_Types_Timing/Articles/Timing.html#//apple_ref/doc/uid/TP40006670-SW1)

. Так Apple просто игнорирует координату y результата и имеет дело только с x? Это кажется странным, потому что тогда вам не нужно будет передавать контрольные точки, а скорее контрольные скаляры, поскольку y вообще не повлияет на результат.

14
задан Francisco Ryan Tolmasky I 11 April 2012 в 01:12
поделиться