From f94f379bee1957b23891bb985014f9019320d944 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 6 Nov 2020 12:26:43 +0100 Subject: [PATCH] [css-transforms-1] Fix example 5 Fixes https://github.com/w3c/csswg-drafts/issues/5520 : Order of things happening in the example was reversed --- css-transforms-1/Overview.bs | 8 ++--- .../examples/compound_transform.png | Bin 5845 -> 14594 bytes .../examples/compound_transform.svg | 31 +++++++++--------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/css-transforms-1/Overview.bs b/css-transforms-1/Overview.bs index db5178b9c3c..42851758a89 100644 --- a/css-transforms-1/Overview.bs +++ b/css-transforms-1/Overview.bs @@ -289,11 +289,11 @@ The 'transform-origin' property moves the point of origin by 50 pixels in both t } -The visual appareance is as if the div element gets translated by 80px to the bottom left direction, then scaled up by 150% and finally rotated by 45°. +The visual appareance is as if the div element gets rotated by 45°, then scaled up by 150%, and finally translated by 80px to the bottom right direction. -Each <> can get represented by a corresponding 4x4 matrix. To map a point from the coordinate space of the div box to the coordinate space of the parent element, these transforms get multiplied in the reverse order: -1. The rotation matrix gets post-multiplied by the scale matrix. -2. The result of the previous multiplication is then post-multiplied by the translation matrix to create the accumulated transformation matrix. +Each <> can get represented by a corresponding 4x4 matrix. To map a point from the coordinate space of the div box to the coordinate space of the parent element, these transforms get multiplied: +1. The rotation matrix gets pre-multiplied by the scale matrix. +2. The result of the previous multiplication is then pre-multiplied by the translation matrix to create the accumulated transformation matrix. 3. Finally, the point to map gets pre-multiplied with the accumulated transformation matrix. For more details see The Transform Function Lists. diff --git a/css-transforms-1/examples/compound_transform.png b/css-transforms-1/examples/compound_transform.png index 178f30e07d079a8c06a47c89cddedaff5c204036..2ed77d02d539648f9deb234052a615a1057b28c4 100644 GIT binary patch literal 14594 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

YPfa8Y-vTOjO@ufFyZ(YB|K9^OK#mE zh{;X+y57NGKT@KEe48-ZuspBc13#m8JSbj{rAV^WXvI@7JR@&eYla2v*vav~be$!^ z6+yS=Mo(Q*ySTBs^{smcn~hcQ*!Qd$``UnPJ0epWf+&c1T9YaXiix7s$S-5G3(qu!8N#9w-pHL^Pueu4WEAQvRN$}@;PSpodK7CsOiX>cmwbj zw=g0>i+gF)c|ffcQw*%_wt9tLmA&7Z>-UpUcFQE#nx}3=PjME%Dd7B)+eOO|J>8XlDQn0!}Z&nD- zKhi$uhZrw^i(MhnUfM=*tCoHY$LrDFh~p5*eu*VK8}NzEl}JsQU}WRt7U9Lj6Pn}b z-EhhjZa&Iw+*>bxOG062_cO^>zoUT>zmjA9gSi` z8V6d0MKFCCRKr|I#){2E;(QGnM#^^j{WT3?;i)2g*<#wNFIzH=V*f|?{wN*w@8YBw z!;8Z=+*?{wZD8T3zeM-H&`-~#9c(%&rrlaJc0szH31LWKG&aeolwpwR1<< zIf)xwJZWnu85T-3-TP#0;8|E$R<^s&CmlYhbIXq+zaVJHx&Ao7Ga`(wrbd0$^GoM) z%WSZ=w~x2G@VcM(p4IZseK_!ayfYXC0uRleE;D}e?v963W_+nz>H39VK9vLYB{z&D zr_YjrpB6~!S&NQ$@>9-BOlzjF2R=r~3~aj#Nen|HEDOU23HQ z^pZKWUVu}t(E)Qdv#v+K<;sOklI~hsU3Wdr_|TL9IA`ZvapV?}q%e!8-q=d-+&07^ zON^g*5N^sDNX|%~u!_=oq{hGXp!VgD$2f-Gk(b+-V4Znpk4*@FLSLh&NtAa_?xkPi zCxP<=ZY5#}BAVtv%g#&-xHuz5<-9k0>Gij#gs=;idN_qa%P3}deUgP`e7YnFpa49U zU2bNSQp+}romh(qnHXp3P9hj6@3N1H%G$F(q0`wfkB&)>S>})K4mF)0U5$e^oYy&j zEl>GXH>!8vT1uxf2E12b{Nx0JyUR#M)+K(!PZ#;xd98T6`ml@CuQOa4b)_J{JX7@2 zEkI@z<{%z^=Yr*S-N&^zbUTuBXO=SmND`F*_`iOQ#vQK@n5@wGxWNqvy6TdjeJ&k7 zuFC*K!2m8eAc_F6NPq|e00H>FFC+l?tHs0nYTRQXQ%IMAoGjG*{*c^W+ppPoxuoKX zPXm;pfgy}^6pW9Dt2%k`rbJ_k4Hg-jJmDqXU0c{q2Aa? z1mCJUZPBazi@u-LKb_-%{@gGB&&C!?J227qQ?SB{=a%Z(JvnV8B_S?$tT5HYGL2qz z%clv=$y5vb+@8TQ=m<-R0%b-oms2ZWgL+S*AKJe8k*jDXC>X2P`b)g6|MxF=TSJee z)?bpt*LBNC3bKV4B}YvhEOAMN%2pB#*>Mikd~nJ2%-3?m3k1}>8cj{YdZ;69u_w5- zM@pSJ@T4^40v0JMIWu!o(qMJW)1?A2{ECmX8Ho-URx^IzqiJyS+7V=nVNdN$oK6}| z;KEj5iXRC??ResJxsQj&fm|(qb;rM@J!>-i?C{G|hJQ)>Wb2p?a{iu=X6F?@i=Atu zFmIP0;d~OMdNX@r_`YaNbi3Wj9 +