This shows you the differences between two versions of the page.

Next revision | Previous revision | ||

topics:interpolation-rotate3d [2012/08/10 14:21] dschulze created |
topics:interpolation-rotate3d [2012/08/29 17:45] dschulze [Interpolation behavior on rotate3d] |
||
---|---|---|---|

Line 4: | Line 4: | ||

Spec_tags : css3-transforms # in alpha order; or "none" | Spec_tags : css3-transforms # in alpha order; or "none" | ||

Owner_tags : dschulze # Who's driving the discussion? | Owner_tags : dschulze # Who's driving the discussion? | ||

- | Status_tags : Open # [ Open | Resolved | Closed | Pending ] [, Urgent]? | + | Status_tags : Resolved # [ Open | Resolved | Closed | Pending ] [, Urgent]? |

Added_dt : 2012-08-10 # Date added as WG discussion request | Added_dt : 2012-08-10 # Date added as WG discussion request | ||

Line 64: | Line 64: | ||

Keep current specification text: when rotate3d is involved, the rotation gets interpolated by matrix decomposing. | Keep current specification text: when rotate3d is involved, the rotation gets interpolated by matrix decomposing. | ||

+ | === Numerical interpolation of rotate3d === | ||

+ | The CSS WG asked for a proposal to interpolate rotate3d numerically. | ||

+ | |||

+ | ==== normalization === | ||

+ | A normalization of the rotating vectors can help to identify if two vectors point into the same direction. | ||

+ | * If the vectors describe the same axis (values for x, y, z are the same). Just the rotation (4th value) needs to be interpolated. | ||

+ | * If the vectors are different, then each value (x, y, z, rotation value) get interpolated individually. The computed value gets affected by the normalization during the time of interpolation. | ||

+ | |||

+ | ==== vectors that describe the same axis, but with opposite directions ==== | ||

+ | An open issue are vectors that describe the same axis, but point into the opposite direction. The normalization does not have an affect on the direction. | ||

+ | |||

+ | Example: rotate3d(0,0,-1,0deg) -> rotate3d(0,0,1,360deg). According to the current definition of rotate3d, the direction of the vector influences the rotation direction. | ||

+ | |||

+ | Should... | ||

+ | * the object be rotated by 180deg anti-clockwise for the first half of the animation and 180deg clockwise for the second part? | ||

+ | * Should opposite vectors be "commutated" first, so that they point to the right direction? What if the second value is rotate3d(0,0,1.01,360deg)? | ||

+ | |||

+ | ==== Current support ==== | ||

+ | No browser supports numerical interpolation at this time. IE 10 won't support it at all. Safari has problems implementing it because of the usage of CoreAnimation. All browsers do matrix decomposing at the moment. | ||

+ | |||

+ | === Resolved === | ||

+ | Use numerical interpolation if the normalized vectors are equal. Otherwise use matrix decomposing. |