[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: OpenDocument - undefined angle measurements - need errata?
Someone named Chris Nokleberg (chris at sixlegs.com) has reported to me that many angle measurements are not explicitly defined in the OpenDocument specification. I wasn't sure what to do with this report; David Faure suggested that I forward it to this list. I think that the errata needs to add statements that specify the units for the various angle measures, as noted below. Clearly, if there's some ambiguity about angle measures, that needs fixing. I don't care WHAT the fix is, but they need to be specified. I propose using the OpenOffice.org measures, but an alternative would be fine too. We could add optional "units" measures, just like length, but a default measure still needs to be defined in each case. In any case, we need to define angle measurement units where they are used. Anyway, here is Nokleberg's report: > - For draw:circle and draw:ellipse you can define a start and end > angle. OpenDocument does not specify the units. OpenOffice uses > degrees. Fair enough... > > - For draw:transform you can define a rotation. It is clearly based on > the SVG transform attribute, which uses degrees. OpenDocument does not > specify the units. OpenOffice uses radians :-( .... > I'm not sure consistency with SVG is paramount, since draw:transform > does not use the SVG-compatible namespace. But I think consistency with > at least the rest of the OpenDocument spec is important. > > Here is a list of all the angles in OpenDocument: > > - svg:start-angle, svg:end-angle > OpenDocument: undefined > OpenOffice: degrees > SVG: degrees > > - draw:transform > OpenDocument: undefined > OpenOffice: radians > > - draw:text-rotate-angle > OpenDocument: undefined > OpenOffice: degrees > > - draw:extrusion-rotation-angle > OpenDocument: undefined > OpenOffice: degrees > > - draw:enhanced-path (T and U command angles) > OpenDocument: undefined > OpenOffice: degrees, but sometimes shifted left by 16 bits! (OO-bug) > > - draw:glue-point-leaving-directions > OpenDocument: grad > OpenOffice: ? > > - draw:handle-position (polar mode, first param) > OpenDocument: grad > OpenOffice: degrees > > - draw:angle (used for gradients) > OpenDocument: undefined > OpenOffice: degrees (?) but saved as zero (OO-bug) > > - draw:rotation (used for hatch fills) > OpenDocument: undefined > OpenOffice: degrees (?) but saved as zero (OO-bug) > > - draw:caption-angle > OpenDocument: undefined > OpenOffice: ? > > - dr3d:shadow-slant > OpenDocument: undefined > OpenOffice: degrees > > - dr3d:end-angle > OpenDocument: degrees > OpenOffice: ? > > - dr3d:transform (a clear 3D-analogue of draw:transform) > OpenDocument: degrees > OpenOffice: radians (?) > > - style:text-rotation-angle > OpenDocument: degrees > OpenOffice: ? > > - style:rotation-angle (spreadsheet cell) > OpenDocument: degrees > OpenOffice: degrees > > The question marks are for attributes which I could not manage to > generate in OpenOffice. If you know how to fill these in, please let me > know. > > 360 degrees = 2*PI radians = 400 grad, but even though > draw:handle-position is defined as using grad, I believe OpenOffice > actually uses degrees. glue-point-leaving-directions is also defined as > grad, but AFAIK OpenOffice doesn't supports that attribute. > > Degrees are used everywhere in OpenOffice, except for draw:transform and > (maybe) dr3d:transform, so that seems like the obvious unit to > standardize on. It is also more user-friendly for hand-edited documents. > > I think a rotation_units attribute would be more confusing than helpful, > if the default was still going to be radians. The problem is not that > users really need a way to define rotation in degrees, just that having > the default unit vary from one attribute to another is bizarre. > > In general, I feel that the current number of OpenDocument documents is > negligible compared to the future number, so now is the best time to > make breaking changes. ... > Along these lines, the way that OpenOffice *renders* rotation > transforms is incorrect (a separate issue), so defining the unit as > degrees would not necessarily be "breaking" anything, as their documents > are already "broken". I can go into this in more depth if anyone is > interested. > ... it > might be a good idea for office suites in general to include the app > version when saving a document, to be able to handle these kind of > changes in the future. > > Feel free to forward this wherever... > > Chris > > Thanks so much! --- David A. Wheeler