- From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
- Date: Sun, 13 May 2012 20:51:25 +0200
- To: public-fx@w3.org

Rik Cabanier: > However, if the non-scaling stroke follows the steps listed in the spec, it > will still disappear: > > The resulting outline is transformed back to the user coordinate > system<http://www.w3.org/TR/SVGTiny12/intro.html#TermUserCoordinateSystem> > The essential sentence is: "Sometimes it is of interest to let the outline of an object keep its original width no matter which transforms are applied to it." Obviously for specific situations, you cannot get the correct result with an inversion of a matrix. This is the same as for contrained transformation. Therefore after a hint this was mentioned there explicitly: http://www.w3.org/TR/SVGTiny12/coords.html#transform-ref You simply have to use another method to get the right result (what might be in general a good idea to avoid numerically sometimes risky method to calculate an inverse matrix ;o) non-scaling-stroke does not mention that one has to use the inverse matrix, therefore it is not defined, how to transform back to get the intended effect "Sometimes it is of interest to let the outline of an object keep its original width no matter which transforms are applied to it." and "The resulting visual effect of this modification is that stroke width is not dependent on the transformations of the element (including non-uniform scaling and shear transformations) and zoom level.". http://www.w3.org/TR/SVGTiny12/painting.html#NonScalingStroke The first sentence of 11.5 and the lasts for non-scaling-stroke clearly indicate, what the intended effect is. Shear transformations are explictly noted as well as scaling (this includes scaling to 0) - therefore SVG tiny 1.2 clearly already defines, that the stroke-width remains the same for all these cases. It does not mention in detail, how to get this effect for such problematic cases, but it pronounces the essential thing, that the stroke will always have the same width as the visual effect one has to expect. There is no exception. > The spec is unclear here. It is only left to the implementation to get an effective method. Obviously one can do similar things as for constraint transformations. But of course, it would have been better to add a similar comment as for constraint transformations. Because no inversion was mentioned here, I did not ask for clarification here as I did for constraint transformations. Presumably it could have avoided such discussions, if I had assumed, that here a similar interpretation problem can occur as well, but in these days I assumed, that the intended effect is explained sufficiently, different from the situation of constraint transformations, where I asked for clarification. > I *think* it implies that the shape transformed > back by applying the inverse of the CTM and attaching the CTM hence still > disappearing. An inversion is not mentioned and not a precise method with CTMs to get the effect... ... > > This is one of the reasons I don't like skew. Spec that have > discontinuities (flickering/going to infinity) are broken. Could have been defined more clever without an angle in SVG 1.0 to avoid such effects, but now too late ... Skewing with a number could have been more meanigful as well for paced animation of skewing. On the other hand, if you define it not with tan(angle) but with a number, authors may get trouble with the limited number range in the tiny profiles - therefore maybe it is still better to use the angle than a number for some use cases. Olaf

Received on Sunday, 13 May 2012 18:51:56 UTC