Inverted ruler co-ordinate system

Bug #170049 reported by Md-seymour
568
This bug affects 107 people
Affects Status Importance Assigned to Milestone
Inkscape
Medium
Thomas Holder
Declined for 0.47.x by ScislaC
inkscape (Ubuntu)
Medium
Mattia Rizzolo

Bug Description

The y-axis of the rulers' co-ordinate system is
inverted (increasing upwards), and places the origin on
the bottom left of the viewport. The SVG spec places the
default origin on the top left of the viewport, and has
the co-ordinate system increasing to the right and
downwards.

Revision history for this message
Mental-users (mental-users) wrote :

This needs to be fixed, but from talking to Lauris it requires some
very wide-reaching changes. It may be a while before this is
fixed.

Revision history for this message
Bryce Harrington (bryce) wrote :

I think this qualifies as a feature request, since the current
system is functioning properly as designed. Moving to the
RFE queue.

Revision history for this message
Bug Importer (bug-importer) wrote :

damn. this is an annoying issue. how's progress on it?

Revision history for this message
vonHalenbach (lustik) wrote :

I see this as a design fault. So i bump importance up. This needs to be fixed.

Changed in inkscape:
assignee: nobody → lustik
importance: Medium → High
status: New → Confirmed
Revision history for this message
Maximilian Albert (cilix) wrote :

True. It is also a hindrance during development because one constantly needs to switch between different coordinate systems. The earlier this is addressed the better.

vonHalenbach (lustik)
Changed in inkscape:
assignee: lustik → nobody
Revision history for this message
Tom Davidson (tjd-mit) wrote :

I have merged in a couple RFEs requesting the ability to switch the y-axis direction as dupes. Since I imagine that if/when this is implemented either a) there will be an option to toggle axis direction or b) those RFEs will become moot...

Revision history for this message
Mark Crutch (markc-qsiuk) wrote :

Just a "me too" for an option to have the origin and coordinate system as per SVG. I'm currently playing around with some hand-coded SMIL on a complex image, and it's annoying to find that I can't simply use the coordinates from Inkscape directly in my code due to the inverted y-axis.

Revision history for this message
markww (markww) wrote :

Whoa the coordinate system has been in cartesian format since 2004?

Yeah a choice to flip to image coordinates would be great for direct SVG support.

I guess I will write a converter now in the meantime, blast! Otherwise inkscape is great, thanks for this software.

Revision history for this message
Clay Enga (clayton-enga) wrote :

I noticed, as described above, the UI (rulers and status bar) uses one coordinate system whereas the saved SVG file uses a different coordinate system.

But that's not all. The UI is not totally self-consistent in its use of coordinates. Try importing an image file, then right click on the image and choose "Image Properties" from the context menu. The coordinates shown are based on origin at top left -- in contrast to the rulers and status bar which use bottom left origin.

As a new user, this stood out to me as being unintuitive (everything else I've tried so far in Inkscape is pretty slick though :-)

Revision history for this message
Antonio Roberts (hellocatfood) wrote :

It's also inconsistent with scribus, which is a real shame!

Revision history for this message
F1LT3R (director-hyper-metrix) wrote :

Apart from general weird OS related bugs, Inkscape is a well-rounded app with a lot of neat features. Great work guys!

I also find this Y axis extremely annoying, because every other co-ordinate system I work with uses Y=0 as top left. It does seem like there are no "good" reasons to keep the Cartesian system, so change it. And as a new-user of Inkscape, I have to say... "I will move to the next freeware SVG creator instantly when I find one with a standard Y axis."

I understand that recoding any deep feature of an app can be a confusing and time-consuming process, but it can make or break the software.

Revision history for this message
jdv145 (jandevries145) wrote :

I am using the latest beta and still i cant seem to find a way to set the origin to the top-left.
I really hope this gets done for the 0.47 release because this is the first program every i have used that has this weird coordinate system. Its also a bit annoying to have such a great app like inkscape without a "normal" coordinate system

Revision history for this message
ScislaC (scislac) wrote :

This would be far too great of a change to introduce so late in this dev cycle. I tell you what though, I will see what we can do to try and get people interested in it being a goal to fix for 0.48.

Revision history for this message
pbhj (pbhj) wrote :

When one alters the units does the scale alter too? I noticed the hint is still in px even if I set my preferred units as mm - I can't currently see the left hand ruler so can't tell if this changes.

I imagine if the ruler display is changing then adding the feature to alter the scale when the units are altered is close to trivial?

Revision history for this message
Raimund Andersen (anderse-gmx) wrote :

Now 0.48 is just around the corner, and this bug - yes, I think it's a bug! - is still unassigned.

This is getting procrastinated on and on since six years now!!

When will users like me, who frequently edit the source xml code, be able to work with this otherwise very great tool in a reasonable way?

Revision history for this message
jimmac (jimmac) wrote :

This is truly biting me every single time I need to change page size as it requires repositioning of everything afterwards. A serious workflow killer.

Revision history for this message
tigert (tuomas-kuosmanen) wrote :

I have to agree with jimmac here... It's also very frustrating when working on a workflow that requires both Gimp and Inkscape, or websites as everything related to coordinates is not easily translated between.

For example in Maemo5 "Fremantle" (Nokia N900) theme work when we were developing the theme template, I had to always export the canvas as PNG, do a selection in Gimp and check out the coordinates there. I could have looked it up from Inkscape object properties toolbar if the y-coordinate wasnt flipped around compared to everything else.. :-/

Revision history for this message
lemasney (lemasney-gmail) wrote :

This is more of a nuisance than a hindrance to me, but I'd love to see it fixed too.

Revision history for this message
Duggeek (duggeek) wrote :

I would agree that the core of the issue here is interoperability; how working with Inkscape should be consistent with open– and closed-source tools of similar purpose. Designers become used to a coordinate system with zero at the top, not the bottom. I, too count myself among those that think this is backwards.

Over six years have gone by since it was first mentioned. Has the project become any simpler? Will the passage of time make this any less of an issue? This issue will grow in complexity right along with Inkscape itself. My point is, the sooner this is remedied, the better.

IMHO, to be considered a "real" design tool, rather than an open-source novelty or hobbyist's sandbox, Inkscape needs to consider whether it will conform to the norms of digital design.

If you want an opportunity to "plus" this bug, then make it a configuration option. (y-axis from top-down or bottom-up)

Revision history for this message
Dusan Maliarik (dusan-maliarik) wrote :

This is just a shame of the most advanced OSS vector app. Looking for alternative. Now thinking about it, Inkscape haven't introduced any new "feature" for a long time, UI is still terribly wrong, and developers refuse to comment on issues reported by users.. Way to go

Revision history for this message
jimmac (jimmac) wrote :

Dusan, you're certainly going to help the matter by disrespecting the developers with blatantly wrong trolling. Way to go.

As for #19, I don't see this as primarily an interoperability issue. It is a workflow issue. For an evolving UI mockup or creating derivate versions you will constantly need to resize the canvas. And currently this means repositioning everything (including layer visibility toggling) after you've resized. And most of the time you need to resize based on how your mockup is tall, so it means either iterating or using a clumsy workaround of keeping an unfilled rectangle and resizing to its dimensions (which can lead to sub-pixel shifts easily).

In any case, this bug is seriously annoying for the inkscape-loving UI/web designer.

Revision history for this message
Dusan Maliarik (dusan-maliarik) wrote :

@jimmac: thanks, I am active on issue trackers long enough to know that, but come on! 6 years old issue! All I'm asking for is an explanation, on why it's so hard to fix it.

Revision history for this message
ScislaC (scislac) wrote :

Dusan,

If you think it's so easy to fix, know that we are more than happy to accept a patch from you. ;) Developers have commented on it and agree that it needs to be fixed. It's just not as easy to fix as you would like. If this was as straightforward as you wish it were, it would have been fixed long ago.

Would you like it if you upgraded Inkscape and all of your old documents were flipped upside down, objects misplaced, things that were transformed (scaled/rotated) to be even more oddly handled, etc? Those are just some of the possibilities of what is expected to go wrong. For this to be handled properly, it needs to be ensured that we retain full and painless backwards compatibility. That is the primary reason it hasn't been touched. For the record we inherited this issue from sodipodi when it was forked, so the issue is actually older than 6 years...

Honestly though, the proper fix for this is to default to top-left oriented coordinates, but to have the coordinate system completely customizable by the user so they can define their preference per-document for where 0,0 is located. It's much better to fix this the right way than to have to make multiple passes on the code.

Revision history for this message
Jon A. Cruz (jon-joncruz) wrote :

Dusan,

The explanation is in the code. Just grab it and look around.

Things started out with hardcoded math and assumptions spread all over the code base in all sorts of methods. If one has assumptions coded in to each and every function that does part of UI or editing work or such, that does take quite a bit to fix.

Among other things there *HAS* been a lot of work going on to address this. We even have a complete stand-alone math library now as part of this work. So it has not just been ignored, as you imply.

To answer specifically:

"Has the project become any simpler?"

Yes, it has. The complexity is perhaps even an order of magnitude less that it was originally.

"Will the passage of time make this any less of an issue?"

Yes, it will. See lib2geom and other work. By cleaning up hardcoded assumptions that are spread all over and instead unifying them to single locations it is getting much less of an issue to address.

"This issue will grow in complexity right along with Inkscape itself."

No, it won't. The work that will be required to specifically address this has been *reducing* in complexity as Inkscape code has matured.

Revision history for this message
rwillhoite (rex-willhoite-gmail) wrote :

Sometimes I feel like I'm trying to measure objects while standing on my head. The vertical ruler is really strange and unnatural.

Apart from that, I can't think of anything negative to say. The Inkscape team is doing an outstanding job. Thank you guys for all your hard work. This software is one of the main reasons I made the move to Linux. Linux Mint is awesome, and so are you.

Revision history for this message
Dusan Maliarik (dusan-maliarik) wrote :

@ScislaC: I never mentioned that I think it's easy to fix, or that I am capable of patching something. I would rather avoid discussion on backward compatibility, it's way too controversial.

@Jon A. Cruz: If I understand it correctly, you are working on abstracting coordinate system, right? That's quite a complex task. I don't think assumptions are that bad, Inkscape will probably stay a 2D vector drawing tool, it might be a bit of overkill to add such a complexity in order to get rid of assumptions about coord. system.

Revision history for this message
Rad3k (trueradzian) wrote :

@Dusan
From what I understand, those assumptions became the main obstacle on the way to fixing this bug. And splitting the code into sections which make as little assumptions as possible about the others may be a complex task, but it actually leads to overall reduction of complexity of the source code.

Revision history for this message
Thomas Holder (speleo3) wrote :

Since this problem is supposed to "require some very wide-reaching changes" I guess nobody ever did a serious attempt to fix it. I claim (or rather hope) that it is actually not that hard, I'd like to dig into this but unfortunately do have very little time currently to do inkscape hacking.

Attached is my first patch to start inverting desktop coordinates. Maybe someone will hook up and finish it :-)

Revision history for this message
Krzysztof Kosinski (tweenk) wrote :

I worked from Thomas's patch for a bit and now I have a version that has SVG coordinates and I see no obvious breakage. Will commit after some further testing.

Changed in inkscape:
status: Confirmed → In Progress
assignee: nobody → Krzysztof Kosinski (tweenk)
Changed in inkscape:
status: In Progress → Fix Committed
milestone: none → 0.48
Revision history for this message
Krzysztof Kosinski (tweenk) wrote :

Fixed in r9288. Please report any regressions you find.

Revision history for this message
Thomas Holder (speleo3) wrote :

looks good. Regressions that I observe:

 * Text cursor initially blinks downwards
 * Pasted objects are always placed to the page center instead of mouse position
 * Zoom (CTRL+Mouse Wheel) always zooms to page center instead of mouse position

Revision history for this message
su_v (suv-lp) wrote :

I would strongly argue to make this change configurable: there are other use cases for Inkscape besides artistic drawings and web design that depend on having a 1.quadrant coordinate system e.g. when using Inkscape for technical drawings (CAD applications have the origin in the lower left corner - besides offering user-configurable and object-related named coordinate systems). Configuration options ideally include the option to freely relocate the origin in relation to the defined page (e.g. move the origin to the middle of the page).

related reports:
Bug #170347 “ability to set coordinate origin”
Bug #171488 “User-defined coordinate system”

Revision history for this message
Krzysztof Kosinski (tweenk) wrote :

Thomas: those three are fixed in r9295. Also fixed is wrong positioning of guides.

However, I don't know whether we'll be able to release with this change: 3D boxes are flipped vertically. If I don't find a way to fix this, I'll have to revert to the old coordinate system, or remove editing support for 3D Boxes created in 0.47 and earlier.

Revision history for this message
Krzysztof Kosinski (tweenk) wrote :

The remaining regressions proved impossible to fix properly without introducing a backwards compatibility mechanism at the XML level. It's too late to introduce it in the 0.48 release cycle, so this will have to wait until 0.49.

Changed in inkscape:
milestone: 0.48 → 0.49
status: Fix Committed → In Progress
Revision history for this message
su_v (suv-lp) wrote :

(Fix for inverted coordinate system committed in r9288 was reverted in r9298)

su_v (suv-lp)
tags: added: ui
Revision history for this message
Dan Elleson (danielsan-ichiban) wrote :

This is an annoying problem right now trying to match locations of graphics within an svg with coordinates in a browser. Constantly having to convert the numbers.
ALMOST every coordinate system especially where technology is concerned, is increasing top to bottom and left to right.
Please fix this one eventually.

Changed in inkscape (Ubuntu):
status: New → Confirmed
tags: added: patch
tags: added: patch-rejected-upstream
removed: patch
Changed in inkscape (Ubuntu):
status: Confirmed → Triaged
importance: Undecided → Medium
description: updated
Revision history for this message
Alan Wolfe (alan-wolfe) wrote :

I'm using inkscape as the basis of a level editor for a 2d indie game and hit this problem.

I was really confused why everything was upside down... took me a couple hours to figure out what was goin on (i thought it was my projection matrix or a left handed vs right handed coordinate system at first).

it would be nice if this were fixed so that the rulers matched reality!

Revision history for this message
U-Fong Chua (chuaufong) wrote :

Totally agree. Hope this will be fixed soon (or add this feature to flip the ruler) soon.

Other than that, Inkscape rocks! You guys did awesome job!

Revision history for this message
joe Berg (bergsigns) wrote :

I am in full agree about this amazing product... and am wondering if the coordinate issue is why it won't sent files to my Universal Laser. Anybody have some light for me? It won't work at all.

Revision history for this message
joe Berg (bergsigns) wrote :

full agreement, that is.

ScislaC (scislac)
Changed in inkscape:
milestone: 0.49 → none
21 comments hidden view all 101 comments
Revision history for this message
vaifrax (vaifrax) wrote :

I have partly implemented what I described in #57, I still have work to do on the GUI elements.
See attached image for how it could look like (this is also the easiest to implement that I can think of for now).

@lemasney: I did not quite understand, click and drag on that corner then moves the origin? Or is the origin set where the mouse drag is released?
Your suggestion from #61 could be used in addition, good idea.

-- Scaling of offset/origin --
In which units should the origin be specified? It could use the 'default units' or the same ones as in the page size settings, but this would in general not match the rulers. If it was scaled by the ruler multiplier it would also change when the multiplier was changed.

-- Grid origin --
It probably often makes sense to specify the grid origin relative to the ruler origin. But sometimes you may want to keep an existing grid steady while just moving the ruler origin, so should there be an option for each grid to choose either 'relative to ruler origin' or 'absolute position'?

I will try to fix a few remaining gui glitches and will report back within a few days.

Revision history for this message
lemasney (lemasney-gmail) wrote : Re: [Bug 170049] Re: Inverted ruler co-ordinate system

So to be clear. Where the vertical ruler and the horizontal ruler meet in
the upper left hand corner, click and drag out as though you were dropping
a grid line. Instead of a grid line, you'd set the origin of the ruler. It
would also set the origin of the grid. Units and other measurements should
be inherited from the document settings.

On Sat, Feb 9, 2013 at 4:23 AM, vaifrax <email address hidden> wrote:

> I have partly implemented what I described in #57, I still have work to do
> on the GUI elements.
> See attached image for how it could look like (this is also the easiest to
> implement that I can think of for now).
>
> @lemasney: I did not quite understand, click and drag on that corner then
> moves the origin? Or is the origin set where the mouse drag is released?
> Your suggestion from #61 could be used in addition, good idea.
>
> -- Scaling of offset/origin --
> In which units should the origin be specified? It could use the 'default
> units' or the same ones as in the page size settings, but this would in
> general not match the rulers. If it was scaled by the ruler multiplier it
> would also change when the multiplier was changed.
>
> -- Grid origin --
> It probably often makes sense to specify the grid origin relative to the
> ruler origin. But sometimes you may want to keep an existing grid steady
> while just moving the ruler origin, so should there be an option for each
> grid to choose either 'relative to ruler origin' or 'absolute position'?
>
> I will try to fix a few remaining gui glitches and will report back
> within a few days.
>
> ** Attachment added: "possible user interface"
>
> https://bugs.launchpad.net/inkscape/+bug/170049/+attachment/3521809/+files/ruler-ui-suggestion.png
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/170049
>
> Title:
> Inverted ruler co-ordinate system
>
> Status in Inkscape: A Vector Drawing Tool:
> In Progress
> Status in “inkscape” package in Ubuntu:
> Triaged
>
> Bug description:
> The y-axis of the rulers' co-ordinate system is
> inverted (increasing upwards), and places the origin on
> the bottom left of the viewport. The SVG spec places the
> default origin on the top left of the viewport, and has
> the co-ordinate system increasing to the right and
> downwards.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/inkscape/+bug/170049/+subscriptions
>

--

John LeMasney
lemasney on Facebook, Twitter, and everywhere else.
http://about.me/lemasney
6095539498
http://john.lemasney.com

Revision history for this message
Jarl Arntzen (jarl-arntzen) wrote :

@vaifrax: Cool stuff. I look forward to testing this out. The main task is to make the origin move at all and to make sure that the rest of the app still works as it should. E.g. moving origin to top left corner and then enter some positive numeric x/y values should work but I'm willing to test any partial solution towards that too.

Revision history for this message
vaifrax (vaifrax) wrote :

Due to some problems I have with the gui and to make future changes easier, I'm rewriting the gui code I had so far.

@jarl-arntzen: have you tested my partial solution?

Revision history for this message
lemasney (lemasney-gmail) wrote :

I'm also willing to test. Was there a link to a patch or build? I'm on a
Mac, so it may diversify the test.

On Thu, Feb 14, 2013 at 9:57 AM, vaifrax <email address hidden> wrote:

> Due to some problems I have with the gui and to make future changes
> easier, I'm rewriting the gui code I had so far.
>
> @jarl-arntzen: have you tested my partial solution?
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/170049
>
> Title:
> Inverted ruler co-ordinate system
>
> Status in Inkscape: A Vector Drawing Tool:
> In Progress
> Status in “inkscape” package in Ubuntu:
> Triaged
>
> Bug description:
> The y-axis of the rulers' co-ordinate system is
> inverted (increasing upwards), and places the origin on
> the bottom left of the viewport. The SVG spec places the
> default origin on the top left of the viewport, and has
> the co-ordinate system increasing to the right and
> downwards.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/inkscape/+bug/170049/+subscriptions
>

--

John LeMasney
lemasney on Facebook, Twitter, and everywhere else.
http://about.me/lemasney
6095539498
http://john.lemasney.com

Revision history for this message
vaifrax (vaifrax) wrote :

@lemasney: here is a partially working first step to a possible solution which only affects rulers and mouse pointer status coordinates:
https://code.launchpad.net/~vaifrax/inkscape/bugfix170049
You can find text boxes in the document properties; in the current state keyboard input does not always trigger an update, make sure to subsequently click on the spinner buttons (up/down) to trigger the update.
Thanks for testing.

My attempt rewriting the GUI part currently fails with a crash, I guess it will still take me some time to finish.

Revision history for this message
vaifrax (vaifrax) wrote :

I rewrote the gui code and hopefully fixed all issues, please test.
Use the patch or branch https://code.launchpad.net/~vaifrax/inkscape/bugfix170049

future work:
- for convenience, add buttons to set origin relative to page (see #62)
- for convenience, add draggable origin (see #61, #63)
- use origin as default for new grids
- optionally specify guides relative to this origin

Revision history for this message
vaifrax (vaifrax) wrote :

oops, found some debugging messages I forgot, updated now

Revision history for this message
lemasney (lemasney-gmail) wrote :

Exciting! Can't wait to test.

On Fri, Feb 15, 2013 at 5:19 PM, vaifrax <email address hidden> wrote:

> oops, found some debugging messages I forgot, updated now
>
> ** Patch added: "removed some more debugging messages"
>
> https://bugs.launchpad.net/inkscape/+bug/170049/+attachment/3530900/+files/bugfix170049_partial2.patch
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/170049
>
> Title:
> Inverted ruler co-ordinate system
>
> Status in Inkscape: A Vector Drawing Tool:
> In Progress
> Status in “inkscape” package in Ubuntu:
> Triaged
>
> Bug description:
> The y-axis of the rulers' co-ordinate system is
> inverted (increasing upwards), and places the origin on
> the bottom left of the viewport. The SVG spec places the
> default origin on the top left of the viewport, and has
> the co-ordinate system increasing to the right and
> downwards.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/inkscape/+bug/170049/+subscriptions
>

--

John LeMasney
lemasney on Facebook, Twitter, and everywhere else.
http://about.me/lemasney
6095539498
http://john.lemasney.com

Revision history for this message
Jarl Arntzen (jarl-arntzen) wrote :

I'll get around to test a build tonight or tomorrow. Sorry about the delay.
Den 16. feb. 2013 00.40 skrev "lemasney" <email address hidden>
følgende:

> Exciting! Can't wait to test.
>
>
> On Fri, Feb 15, 2013 at 5:19 PM, vaifrax <email address hidden>
> wrote:
>
> > oops, found some debugging messages I forgot, updated now
> >
> > ** Patch added: "removed some more debugging messages"
> >
> >
> https://bugs.launchpad.net/inkscape/+bug/170049/+attachment/3530900/+files/bugfix170049_partial2.patch
> >
> > --
> > You received this bug notification because you are subscribed to the bug
> > report.
> > https://bugs.launchpad.net/bugs/170049
> >
> > Title:
> > Inverted ruler co-ordinate system
> >
> > Status in Inkscape: A Vector Drawing Tool:
> > In Progress
> > Status in “inkscape” package in Ubuntu:
> > Triaged
> >
> > Bug description:
> > The y-axis of the rulers' co-ordinate system is
> > inverted (increasing upwards), and places the origin on
> > the bottom left of the viewport. The SVG spec places the
> > default origin on the top left of the viewport, and has
> > the co-ordinate system increasing to the right and
> > downwards.
> >
> > To manage notifications about this bug go to:
> > https://bugs.launchpad.net/inkscape/+bug/170049/+subscriptions
> >
>
>
> --
>
> John LeMasney
> lemasney on Facebook, Twitter, and everywhere else.
> http://about.me/lemasney
> 6095539498
> http://john.lemasney.com
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/170049
>
> Title:
> Inverted ruler co-ordinate system
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/inkscape/+bug/170049/+subscriptions
>

Revision history for this message
vaifrax (vaifrax) wrote :

another update, in case you use autotools the new files were not compiled, fixed now (thanks ~suv)

Revision history for this message
vaifrax (vaifrax) wrote :

Could someone else than me test the patch and report back, please?
I won't continue with improvements until the more experienced devs agree that this is the way to go.
cheers

Revision history for this message
Jarl Arntzen (jarl-arntzen) wrote :

@vaifrax: Hi! I havn't been able to build this on my system yet due to other commitments. I would however like to pay you for your efforts so far and I'd like to encourage you to keep up the good work. I'll pay my original pledge now and make a new one so you can keep on improving this.

However, when I attempt to make the payment on FreedomSponsors.org, I get this error message:

"The programmer(s) who solved this issue do not have a verified Paypal account yet, so you cannot pay them at this time.
Please leave a comment for them, asking them to update their profile page with an email of a verified Paypal account, then come back here again."

Have you added your PayPal account info to FreedomSponsors.org?

Revision history for this message
vaifrax (vaifrax) wrote :

@jarl-arntzen: Thanks. Even though I spent many days trying to get this little bit of patch working (mainly because of lack of experience), I'm not sure if this idea of mine will be an accepted solution and make it into the official build. I'm not against receiving money but especially in this case it is probably better spent for something else.

If I continue to improve this does not depend on money but rather on some dev's opinions if this makes sense. And I hope this will be soon as I will have very little time from April on.
Anyway, I will write an email to the dev mailing list and try to get some attention to the topic there.

Can someone give a hint where money is needed most? Servers, build infrastructure? Support for meetings for developers?

Revision history for this message
Krzysztof Kosinski (tweenk) wrote :

The patch by vaifrax does not address the actual issue, which is that Inkscape internally uses 'desktop coordinates' in many places. These 'desktop coordinates' are hardcoded as an Y-grows-upwards system that starts at the bottom left corner of the page. A proper solution will be composed of two parts:

1. Remove the dependence on the desktop-to-document transformation from all code that deals with document elements rather than UI elements
2. Provide an UI to set an arbitrary zoom transform (e.g. scaling + translation) as the desktop-to-document transformation.

The patch from vaifrax does only 2 and only partially, since it does not actually change the desktop-to-document transformation, but tacks on an extra transformation between some of the UI controls and the desktop coordinates. This approach further complicates things and is untractable in the long run.

Furthermore, fixing this problem requires removing or significantly rewriting support for 3D boxes, which contain a fatal bug and write desktop coordinates to the SVG.

Revision history for this message
vaifrax (vaifrax) wrote :

I tried looking at the svg side and I'm a little confused.

How about, as a first step, modifying inkscape so that rulers and mouse pointer coordinate status use the origin that is indirectly defined by the viewbox? What about the viewbox units? Second step would be a gui to actually configure the viewbox within inkscape in a user friendly way. Finally, using those coordinates directly for new objects instead of inserting another transformation (I think this is what Krzysztof wrote in the previous post).
(viewbox reference: http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute )
I played around with a hand coded svg, in case anyone else is interested I attached it.

This alone does not allow setting up an inverted y axis (to enable having y axis pointing up like now) but it looks like there is a ‘svg:transform’ attribute for that. Inverting the axis would also require things like flipping text, I think?
(svg:transform reference: http://www.w3.org/TR/SVG/coords.html#SVGGlobalTransformAttribute )

Maybe it helps if we can agree on how coordinate systems should be defined in the svg and how inkscape should display units and rulers?
I feel like I haven't really understood all issues.

Revision history for this message
lemasney (lemasney-gmail) wrote :

I was not able to compile for Mac OS. I'm sure it's no fault of anyone but
me, but this is why I have not been able to test.

On Thu, Feb 28, 2013 at 2:34 PM, vaifrax <email address hidden> wrote:

> I tried looking at the svg side and I'm a little confused.
>
> How about, as a first step, modifying inkscape so that rulers and mouse
> pointer coordinate status use the origin that is indirectly defined by the
> viewbox? What about the viewbox units? Second step would be a gui to
> actually configure the viewbox within inkscape in a user friendly way.
> Finally, using those coordinates directly for new objects instead of
> inserting another transformation (I think this is what Krzysztof wrote in
> the previous post).
> (viewbox reference: http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute)
> I played around with a hand coded svg, in case anyone else is interested I
> attached it.
>
> This alone does not allow setting up an inverted y axis (to enable having
> y axis pointing up like now) but it looks like there is a ‘svg:transform’
> attribute for that. Inverting the axis would also require things like
> flipping text, I think?
> (svg:transform reference:
> http://www.w3.org/TR/SVG/coords.html#SVGGlobalTransformAttribute )
>
> Maybe it helps if we can agree on how coordinate systems should be defined
> in the svg and how inkscape should display units and rulers?
> I feel like I haven't really understood all issues.
>
> ** Attachment added: "viewbox with origin in the center of the page"
>
> https://bugs.launchpad.net/inkscape/+bug/170049/+attachment/3551689/+files/viewbox-test.svg
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/170049
>
> Title:
> Inverted ruler co-ordinate system
>
> Status in Inkscape: A Vector Drawing Tool:
> In Progress
> Status in “inkscape” package in Ubuntu:
> Triaged
>
> Bug description:
> The y-axis of the rulers' co-ordinate system is
> inverted (increasing upwards), and places the origin on
> the bottom left of the viewport. The SVG spec places the
> default origin on the top left of the viewport, and has
> the co-ordinate system increasing to the right and
> downwards.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/inkscape/+bug/170049/+subscriptions
>

--

John LeMasney
lemasney on Facebook, Twitter, and everywhere else.
http://about.me/lemasney
6095539498
http://john.lemasney.com

Changed in inkscape:
status: In Progress → Triaged
milestone: none → 1.0
Revision history for this message
Jayson Bourne (jaysonb) wrote :

Having read all that is written here over several years I came to the following conclusion:

Surely somewhere someone must be sitting laughing at us, because they know something we don't.
Every time someone tries to address this issue it gets shot down. Without explanation!
The developers don't seem to need the correct SVG coordinate system, and don't care to fix it for their users.

Half the people on here are now willing to pay to get this working and I am sure there are or will be pay-for apps out there that comply to the SVG spec regarding this issue.

It is ok to say your application has been downloaded x-million times, but how many of those people uninstalled it shortly afterwards because of unfixed bugs like this?

I'm outta here... This is not worth the effort.

Keep your broken-ware!

Jayson

Revision history for this message
ScislaC (scislac) wrote :

Jayson: Thank you for adding absolutely nothing of value here other than whining that a free piece of software isn't the most perfect tool for you personally. It HAS been discussed about why various attempts to fix this over the years have been shot down... basically we need to maintain compatibility with documents created in the past and fix it properly once and for all. Various features in the software currently expect the coordinates to exist as they do now and it's not a quick fix. If it was, it would have been fixed.

I'm sorry you feel somehow personally slighted for something nobody has asked you to pay for or to use. We're currently working with our legal counsel on the framework to allow payed projects under the umbrella of our organization and I wouldn't be surprised if someone were to take this on once that is in place. Either way, almost everyone who works on this project is volunteering. Anyone being payed is being done so by a third party and the terms of their arrangement (including what they are working on) is not something we have control over.

Revision history for this message
lemasney (lemasney-gmail) wrote :

ScislaC++

I love all that you (and team) do, always. I use Inkscape every day,
and love all of it, even the parts that are not perfect, because it's free,
it's ours, and if I wanted to, I could learn how to fix it myself. I
certainly
would not complain about any piece of open source software not being
exactly as I wanted it, since the point of open source software is that
I can make it precisely as I wish at any time. I have that ability.

Thank you.

John LeMasney.

Take a look at my portfolio of design work:
http://lemasney.com/consulting/design-portfolio/
See my schedule and propose a meeting here: http://www.doodle.com/lemasney
Check out my upcoming public
talks<https://www.google.com/calendar/embed?src=pdst7j4q666373rccaibb6osuk%40group.calendar.google.com&ctz=America/New_York>
on
technology, design and more.
Subscribe to lemasney.com updates
here<http://lemasney.com/consulting/?blogsub=confirming#subscribe-blog>to
read what I have to say about design, technology, and branding in your
email.

John LeMasney
<email address hidden>
609-553-9498
lemasney.com

On Sun, Mar 9, 2014 at 4:29 AM, ScislaC <email address hidden> wrote:

> Jayson: Thank you for adding absolutely nothing of value here other than
> whining that a free piece of software isn't the most perfect tool for
> you personally. It HAS been discussed about why various attempts to fix
> this over the years have been shot down... basically we need to maintain
> compatibility with documents created in the past and fix it properly
> once and for all. Various features in the software currently expect the
> coordinates to exist as they do now and it's not a quick fix. If it was,
> it would have been fixed.
>
> I'm sorry you feel somehow personally slighted for something nobody has
> asked you to pay for or to use. We're currently working with our legal
> counsel on the framework to allow payed projects under the umbrella of
> our organization and I wouldn't be surprised if someone were to take
> this on once that is in place. Either way, almost everyone who works on
> this project is volunteering. Anyone being payed is being done so by a
> third party and the terms of their arrangement (including what they are
> working on) is not something we have control over.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/170049
>
> Title:
> Inverted ruler co-ordinate system
>
> Status in Inkscape: A Vector Drawing Tool:
> Triaged
> Status in "inkscape" package in Ubuntu:
> Triaged
>
> Bug description:
> The y-axis of the rulers' co-ordinate system is
> inverted (increasing upwards), and places the origin on
> the bottom left of the viewport. The SVG spec places the
> default origin on the top left of the viewport, and has
> the co-ordinate system increasing to the right and
> downwards.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/inkscape/+bug/170049/+subscriptions
>

Revision history for this message
timfinley24 (tim-finley24) wrote :

I was wondering if this is still an issue. I am currently using .48 and don't want to hassle if it wont fix it. I've been using inkscape for years and love it. I have only recently noticed that this is an issue. If there were a python script out there, that would be cool. I'm not very versed in coding, otherwise I would do it myself.

Thanks for the hard work and the great product! I hope you can pull something together with your legal team for that project. I do know about working for something passionately and going broke because of your passion. Hope it pans out.

Revision history for this message
anatoly techtonik (techtonik) wrote :

Still not there in Inkscape 0.91 r13725 ?

Revision history for this message
Thorjelly (thorjelly) wrote :

This might seem very naive, but why do you actually have to change the internal coordinate system? Can't you add an option in user preferences or document preferences, which in the latter case could be added as metadata to not affect backwards compatibility, to where 0,0 should be and have it only affect the user interface? Simply translate what coordinates are displayed for an object in the user interface, without changing the internal coordinate system. This should be an extremely simple mathematical translation, and the coordinates can be translated back internally when the document is saved so no internal coordinates need to change, and no previous documents need to be broken. I'm sure there are already translations for object coordinates for specific formats when they are saved since SVG files assume 0,0 is top left.

This seems like a perfectly fine and elegant solution; it even seems like it should be preferential to me than implementing a system where all internal coordinates are absolute and revolve around a user-given origin, because a user changing the origin doesn't also change every single coordinate in the file, it only changes how coordinates are displayed in the user interface. To me it seems preferential, because any coordinate system change only affects the mathematical translation and not every single point in the system.

I'm literally just talking about translating the x and y values displayed to the user in the top bar by adding a function. What is wrong with this solution?

Revision history for this message
vaifrax (vaifrax) wrote :

@Thorjelly

I wrote scripts writing out geometries at scale (in mm). For debugging and other purposes it is most useful if the numeric values in the document stay these numbers and the rulers also show the same numbers. This is not only useful for the scale but also where on the page the origin is and if it is a right-handed or left-handed coordinate system.

Revision history for this message
yosefrow (yosefrow) wrote :

@vaifrax

While I do understand your approach as a programmer. From a design perspective (particularly web-design in which the bottom is not always clearly defined) it's often easier to think of coordinates as originating from the top left corner. Creating web design mock-ups in inkscape without the ability to see this kind of coordinate display is rather inconvenient.

The feature being requested here is to at least offer a *visual option* for users to observe the coordinate system as starting at the top left. Nothing needs to change in the background. Plugins can still use the old coordinate system and plugin developers can view the coordinate system however they want.

Revision history for this message
vaifrax (vaifrax) wrote :

@ yharrow

I did create a patch to just visually change the ruler and coordinate display, but more experienced devs pointed out that this was not the best way to address the issue (see #76).
Time has passed, I don't know how much work is still necessary. I'd also love to see a fix and still suggest to use the svg viewbox element for internal coordinates and visual representation or rulers.

Revision history for this message
Adrian Carter (adriam) wrote :

You know.. I appreciate theres probably tons of other issues that have been knocked over... but in what, 12 years? , you'd hope they could have closed this out by now.

Is there any progress other than the declined patch to date ?

Revision history for this message
BlackDalek (dalekky) wrote :

I'd like to see this change too. Every other design program I've used has had the origin at top left because that is how we read a page (top to bottom). This isn't a mathematical graph we're wanting to draw here (usually) :P

Revision history for this message
Mathieu Virbel (tito-bankiz) wrote :

When you use Gimp to translate mockup to code that uses OpenGL coordinates (Y 0 is bottom), it's sad not to be able to reverse the ruler!
Right now, i'm just flipping the image on Y...

One day!

Revision history for this message
paradisaeidae (paradisaeidae) wrote :

Heartbeat comment to keep this love-rage active!
Inkscape I love you....

kednar (kednar)
Changed in inkscape:
status: Triaged → Confirmed
Revision history for this message
kednar (kednar) wrote :

Sorry I accidentally changed the bug status to Confirmed and can't put it back to Triaged.

Also came to say that I love Inkscape and this is a most wanted feature.

Revision history for this message
ionut stoica (i.stoica) wrote :

@yharrow man, can you bring back your patch from the dust, even if it is just visual/fake representation, it still is something, do you have link somewhere ?

@kednar it is good in this state, it was in Triaged since 2003, I am not here to complain, but instead of adding new ui and new buttons, this would really be nice to give a little bit of attention :D ... I am not an experienced developer, I am sure it is not a trivial thing, lets just hope for the best.

I am willing to pay for this a small amount, if anyone tells how we can support this, a crowd funded stuff such as gofundme or alike, what do you guys think ?

Thanks and many bows to the mighty Inkscape!

Revision history for this message
Brenda Collins (gentlebath) wrote :

I too LOVE all the new features and the stability of Inkscape 62.2 but... but I use Inkscape for label design and the wonky design and inversion of the x-y coordinates makes trying to mentally invert all the label alignments makes my head explode... just sayin!

Revision history for this message
Thomas Holder (speleo3) wrote :

@tweenk mind if I assign this to myself? I'd like to work on this.

Thomas Holder (speleo3)
Changed in inkscape:
assignee: Krzysztof Kosinski (tweenk) → Thomas Holder (speleo3)
Revision history for this message
Thomas Holder (speleo3) wrote :
Patrick Storz (ede123)
Changed in inkscape:
milestone: 1.0-old → 1.0
Thomas Holder (speleo3)
Changed in inkscape:
status: Confirmed → Fix Committed
Revision history for this message
Thomas Holder (speleo3) wrote :

This long standing issue has been fixed during the Inkscape Hackfest in Kiel. Those who offered money are welcome to donate to the Inkscape Fund via the Software Freedom Conservancy. Your donations will be used for example for Hackfest travel reimbursements which make such developer meetings possible.

https://inkscape.org/en/support-us/donate/
https://inkscape.org/en/support-us/hackfests/

Source commit:
https://gitlab.com/inkscape/inkscape/commit/1fa0c72b664afa4803dffd463ed11ce01632ab76

Revision history for this message
ottadini (ben-harrison) wrote :

Magnificent :)

Revision history for this message
Mattia Rizzolo (mapreri) wrote :

And now also pulled in the Debian packaging (for now only uploading in Debian experimental, will reach Ubuntu 19.10 only most likely).

Changed in inkscape (Ubuntu):
assignee: nobody → Mattia Rizzolo (mapreri)
status: Triaged → Fix Committed
Changed in inkscape:
importance: High → Medium
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package inkscape - 1.0~rc1-4ubuntu1

---------------
inkscape (1.0~rc1-4ubuntu1) groovy; urgency=medium

  * Try to increase timeout to make riscv64 slow builds happy

 -- Gianfranco Costamagna <email address hidden> Wed, 06 May 2020 11:34:12 +0200

Changed in inkscape (Ubuntu):
status: Fix Committed → Fix Released
Max Gaukler (mgmax)
Changed in inkscape:
status: Fix Committed → Fix Released
Revision history for this message
Shawn Rutledge (shawn-t-rutledge) wrote :

The fix is barely adequate for only a few people IMO.

Some 1990s-era programs for graphical work had the ability to drag the corner where the rulers meet, out into the document somewhere, to set a new origin.

I would expect to _at least_ have a document-specific setting to set the origin anywhere on the page, numerically.

If I'm drawing a room (furniture layout etc.), I don't want the corner of the room to need to be at the corner of the page. It should be whichever corner I decided to start measuring from. (And that in fact is what I'm trying to do at this very moment.)

Displaying first 40 and last 40 comments. View all 101 comments or add a comment.