[Bug 29751] New: 7.2 equivalent transform of an SVG viewport is mathematically wrong

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[Bug 29751] New: 7.2 equivalent transform of an SVG viewport is mathematically wrong

Bugzilla from bugzilla@jessica.w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29751

            Bug ID: 29751
           Summary: 7.2 equivalent transform of an SVG viewport is
                    mathematically wrong
           Product: SVG
           Version: SVG 2.0
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Coordinate Systems
          Assignee: [hidden email]
          Reporter: [hidden email]
        QA Contact: [hidden email]
  Target Milestone: Test Suite

I've tried to implement the algorithm described in section "7.2 Computing the
equivalent transform of an SVG viewport" and found it to be wrong.

> 9. Initialize translate-x to vb-x - e-x.
> 10. Initialize translate-y to vb-y - e-y.

The purpose of this is to move the viewport origin to the left/top coordinates
of the viewBox. I. e. when the viewBox is to the right of the initial origin
(vb-x > e-x), the origin needs to be moved to the right: x values get thus
smaller (tx < 0).

In addition, the last sentence implies that translation is applied after
scaling. In this case the translation values also need to be multiplied by the
scaling values.

Therefore these steps must be

>  9. Initialize translate-x to (e-x - vb-x) * scale-x.
> 10. Initialize translate-y to (e-y - vb-y) * scale-y.

Here are a few test cases to illustrate:

x="0" y="0" width="21" height="10" viewBox="11 13 3 2"
preserveAspectRatio="none" is equivalent to
transform="translate(-77 -65) scale(7 5)"

x="0" y="0" width="21" height="10" viewBox="11 13 3 2"
preserveAspectRatio="xMinYMin meet" is equivalent to
transform="translate(-55 -65) scale(5 5)"

x="0" y="0" width="21" height="10" viewBox="11 13 3 2"
preserveAspectRatio="xMidYMid meet" is equivalent to
transform="translate(-52 -65) scale(5 5)"

x="0" y="0" width="21" height="10" viewBox="11 13 3 2"
preserveAspectRatio="xMaxYMax meet" is equivalent to
transform="translate(-49 -65) scale(5 5)"

x="0" y="0" width="21" height="10" viewBox="11 13 3 2"
preserveAspectRatio="xMinYMin slice" is equivalent to
transform="translate(-77 -91) scale(7 7)"

x="0" y="0" width="21" height="10" viewBox="11 13 3 2"
preserveAspectRatio="xMidYMid slice" is equivalent to
transform="translate(-77 -93) scale(7 7)"

x="0" y="0" width="21" height="10" viewBox="11 13 3 2"
preserveAspectRatio="xMinYMin slice" is equivalent to
transform="translate(-77 -95) scale(7 7)"

--
You are receiving this mail because:
You are the QA Contact for the bug.
Reply | Threaded
Open this post in threaded view
|

[Bug 29751] 7.2 equivalent transform of an SVG viewport is mathematically wrong

Bugzilla from bugzilla@jessica.w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29751

Amelia Bellamy-Royds <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amelia.bellamy.royds@gmail.
                   |                            |com

--- Comment #1 from Amelia Bellamy-Royds <[hidden email]> ---
We're now using GitHub issues to track SVG spec bugs, I've created a copy of
this issue here: https://github.com/w3c/svgwg/issues/215

--
You are receiving this mail because:
You are the QA Contact for the bug.
Reply | Threaded
Open this post in threaded view
|

[Bug 29751] 7.2 equivalent transform of an SVG viewport is mathematically wrong

Bugzilla from bugzilla@jessica.w3.org
In reply to this post by Bugzilla from bugzilla@jessica.w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29751

--- Comment #2 from [hidden email] ---
I got directed here from https://www.w3.org/Graphics/SVG/feedback.html, maybe
you should update that page.

--
You are receiving this mail because:
You are the QA Contact for the bug.