• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

CATimingFunction は 0 ~ 1 の範囲の x を3次ベジエで表現する必要があるので、

落下のアニメーションをするためには、放物線 y = x^2 (以下 PB )を3次ベジエで近似する必要がある。

y = x で表される直線に平行な直線上に2つのコントロールポイント(以下 CP )を持つ3次ベジエで近似することにした場合、その座標の求め方は以下のとおり。

3次ベジエの以下の特性を利用する

t = 0 における接線は始点と1つめの CP がなす直線。
t = 1 における接線は終点と2つめの CP がなす直線。

このことから

PB の x = 0 における接線の方程式は y = 0 である。すなわち1つめの CP は X 軸上にある。
PB の x = 1 における接線の方程式は y = 2 x - 1 である。2つめの CP はこの式の上にある。

y = x に平行で PB に接する直線 y = x + n の n は x + n = x^2 の解が1つの時なので

y = x - 1/4

2つの CP がなす直線( L1 )が始点と終点がなす直線( L0 )と平行なとき、t = 1/2 のときに頂点が L1 - L0 の 3/4 の距離にあるという3次ベジエの性質から2つの CP がなす直線は

y = x - 1/3

これと y = 0 から1つめの CP は

( 1/3, 0 )

これと y = 2x - 1 から2つめの CP は

( 2/3, 1/3 )

なので、以下のように生成する。

[ CAMediaTimingFunction functionWithControlPoints:1./3. :0 :2./3. :1./3. ];

posted by Face Saturn on Thu 19 Sep 2013 at 11:18

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry2326
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ