- From: Paul LeBeau <paul.lebeau@gmail.com>
- Date: Tue, 27 May 2014 00:20:54 +1200
- To: "Dr. Olaf Hoffmann" <Dr.O.Hoffmann@gmx.de>
- Cc: www-svg <www-svg@w3.org>, kari.pihkala@gmail.com
- Message-ID: <CACfsppAhD-U3rdpHN3Buu1W98gTSECz_B9dFAvaAQXMBmA4SEA@mail.gmail.com>
It seems that pretty much all of the browsers, except FF, cheat and return the extent of the transformed-bbox. Probably because calculating the true bbox of some elements (like complicated paths) is a little tricky. Especially since the bbox needs to be calculated and available before any rendering takes place. And in most cases it doesn't make a lot of difference if it is a little too big. I admit that I also use this cheat in my library. Paul On 26 May 2014 21:14, Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de> wrote: > Kari Pihkala: > ... > >The document has a rotated ellipse element in a group element: > ><g id="e2"> > > <ellipse id="e1" rx="50" ry="50" transform="translate(100,100) > >rotate(45)"/> > ></g> > > > > Due to symmetry reasons one can say already without calculation, > that the boundingBox is '50 50 100 100'. > > >The resulting bboxes for e2 are: > >Firefox: 50.011 50.011 99.976 99.976 > > This is obviously not completely correct, but if the display > area is not too big or one does not scale it up by more than > a factor ~50, at least it will be typically in the error > range given by SVG tiny (below one device pixel), for > SVG full the accuracy should be better. > Note, that the diameter is too small and the translation > too large, it breaks possible symmetries, if such an object > is related to other objects, positioned and oriented in other ways. > > I noticed already serious accuray problems in several viewers > in other areas as well, for example tesselations, pattern, division > of shapes into pieces to care about problems of the rendering order, > animation, scaling for small viewBoxes or due to transforms and so on. > As an author one has to take into account, that often the accuracy of > viewers is much lower than the requirements for SVG tiny or full. > > >Safari: 29.289 29.289 141.421 141.421 > > Because the ellipse is a circle or radius 50 this is > a pretty surprising result - it seems to multiply the result with > approximately the square root of 2 > (the inverse of the cos/sin of the rotation angle) > - better not to use information about bounding boxes from this user agent > ;o) > My guess - it puts a rectangle around the ellipse and determines the > boundingBox for this shape, not for the ellipse. > Does it put a rectangle as well around other shapes as well? ;o) > > > > >Here's jsfiddle to the doc, so you can see the results. > >http://jsfiddle.net/AJYhX/1/ > > I cannot find any related information about this issue > on that URI, maybe the page has an accessibility problem. > I copied your sample in an own file and set the viewBox to > the determined boundingBox. > Fortunately there is no difference in presentation between > Firefox (28) , Opera (12.16) and Chromium (33, webKit) within > the accuracy I can see on my monitor. > > > Olaf > > >
Received on Monday, 26 May 2014 12:21:42 UTC