Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


On 29/07/12 19:25, Regina Henschel wrote:
Hi Christine,

continuing..

Christina Roßmanith schrieb:
Hi,

just to be sure before I continue my work:

SVG gradient with angle=0° changes color from left to right
      (I'm taking this from
http://www.w3.org/TR/SVG/pservers.html#LinearGradientElement)

ODF gradient with angle=0° changes color from top to bottom
      (I can't find any meaning of the angle attribute here
http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1416460_253892949)

I have now looked, which way PowerPoint2013 does it:
The angle of 0° in the UI means that the gradient vector goes from left 
to right.
The angle in the UI rotates this gradient vector clockwise on screen. 
Values from 0 to 359.9 are allowed.

In file format it is the same as from LO, for example:
draw:angle="700" results from
   PP UI-angle=20° clockwise on screen
   LO UI-angle=70° counterclockwise on screen
draw:angle="3300" results form
   PP UI-angle=120° clockwise on screen
   LO UI-angle=330° counterclockwise on screen

that is a very interesting discovery!

so it seems MSO also has the defect of storing draw:angle with the
wrong units of 0.1°.

i've installed Calligra Stage 2.4.3 and played with it, and in the .odp
file i get linear gradients like this:

  <svg:linearGradient draw:name="gradient1" svg:spreadMethod="pad" svg:x1="65.9558%" 
svg:x2="39.8039%" svg:y1="24.8957%" svg:y2="70.0815%">
   <svg:stop svg:offset="0.11" svg:stop-color="#dc143c"/><svg:stop svg:offset="0.473324" 
svg:stop-color="#00ced1"/><svg:stop svg:offset="0.589196" svg:stop-color="#00ff00"/>
  </svg:linearGradient>
  <svg:linearGradient draw:name="gradient2" svg:spreadMethod="pad" svg:x1="0%" svg:x2="166.923%" 
svg:y1="0%" svg:y2="164.085%">
   <svg:stop svg:offset="0" svg:stop-color="#ffffff"/><svg:stop svg:offset="1" 
svg:stop-color="#00ff00"/>
  </svg:linearGradient>

so it appears there is another way to represent gradients in ODF 1.2
that is directly from SVG and doesn't use draw:angle at all; the UI for
it doesn't display an angle either but you see a line where you can move
start/end points and double click on the line at a position to insert
color stops.

it appears OOo and derived suites like LO don't support reading
svg:linearGradient/svg:radialGradient at all.

So it seems, that PP follows the way how it is stored in file, but has a 
different UI.

My conclusion is, that a mail to OASIS is needed with the points:
(1) Define "axis at which the gradient values are interpolated" as vector
(2) Define untransformed direction of this vector as going in positive 
y-axis direction.
(3) Define direction of rotation as clockwise in respect to the internal 
coordinate system
(4) Do not define draw:angle as SVG-angle but as double to be multiplied 
with 0.1°.

What do you think?

so it seems that all office suites that implement draw:angle do it wrong
in the same way, by using 0.1° as the unit instead of 1°, and one of the
affected suites is from MSFT which we have no way to fix.

therefore i retract my earlier suggestion to fix the defect in LO, and
second your proposal to suggest OASIS to change the spec.


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.