- From: Daniel Glazman <daniel.glazman@disruptive-innovations.com>
- Date: Fri, 25 Nov 2011 14:33:03 +0100
- To: "www-style@w3.org" <www-style@w3.org>
Spec says "positive z values conceptually rising perpendicularly out of the window toward the user and negative z values falling into the window away from the user" Spec also says in [1]: rotate(d) specifies a 2D rotation defined in [2]. On screen : clockwise Around Z axis: counter-clockwise rotate3D(0, 0, 1, d) specifies a clockwise rotation around the Z axis Around Z axis: clockwise On screen : counter-clockwise rotateZ(d) specifies a clockwise rotation around the Z axis Around Z axis: clockwise On screen : counter-clockwise So according to the spec: rotate(10deg) rotate3d(0, 0, -1, 10deg) rotate3d(0, 0, 1, -10deg) rotateZ(-10deg) should ***all*** represent the same 2D rotation on screen. This is far from being the case. See http://glazman.org/tmp/rotation3D_test.xhtml Effects of a transformation ON SCREEN with same value d: ( http://glazman.org/tmp/rotation3D_test2.xhtml ) OK and NOK are wrt spec. Firefox 11.0a1 Chrome 15 IE 10.0.8102.0/Win8 -------------------+---------------+-------------+------------------- rotate(d) |ckw OK | ckw OK |ckw OK rotate3d(0,0,1,d) |c-ckw OK | ckw NOK |ckw NOK rotate3d(0,0,-1,-d)|c-ckw OK | ckw NOK |ckw NOK rotateZ(d) |ckw NOK | ckw NOK |ckw NOK So none of the implementation is correct at this time. rotate3d(0,0,1,d) and rotateZ(d) should be the same; so Firefox is wrong here on rotateZ or rotate3d(). Although Chrome and IE agree, they don't agree with the spec. So my proposal is 1. Firefox changes its implementation 2. spec is changed to make rotate3d() and rotateX(), rotateY, rotateZ() be COUNTER-clockwise rotations around the specified axis. [1] http://dev.w3.org/csswg/css3-3d-transforms/Overview.html#transform-functions [2] http://www.w3.org/TR/SVG/coords.html#RotationDefined </Daniel>
Received on Friday, 25 November 2011 13:33:35 UTC