The scaling / rotation handles are not rotated, but placed in the correct position. This gives the impression as if the object scaling / rotation would happen on different axes than it actually does.
What should have happened?
The scaling / rotation handles should rotate with the objects.
For those handles where it makes a difference whether they are 'diamond-shaped' or 'square' (which is essentially the same, except for rotation), I'm not sure what should be happening. I would probably still rotate them along with the canvas, but other people's preferences may be different.
Rationale:
If the canvas behaves exactly as if it was un-rotated (effectively only rendered rotated but working the same functionality-wise) there's not much point in rotating it in the first place.
Instead if I set the "width" of the bounding box when the canvas is rotated, the width should always be measured horizontal to the screen. Similarly "Align and distribute" should align and distribute relative to the screen and not the canvas. Moving control points while Ctrl is held should move them vertically/horizontally on the screen, not the canvas, etc.
Just tested this with fresh Linux AppImage (Inkscape-9dee831-x86_64.AppImag)
I got the same quirk as you (Maren). I thought the Rotation Handles would align the same way as they always have done? In my opinion this looks odd and will attract a lot of negative comments.
I had thought it would just rotate the view, and with it everything on the canvas - as I thought of it as a different view mode more than a different work mode.
I think the extra bbox and handles put around the outside could be done. But the center needs to be the center of the original bbox. (unless someone can think of a reason shifting the rotation center would be a good idea?)
@t1mj0nes That would be really helpful to determine what to ask for in this bug report, thank you!
What might be confusing in the 'red' case is that diamonds can become squares and vice versa, and angles/widths/... etc will not be what you see on canvas (personally, I would expect angles and widths to stay the same, as in the red case, but not everyone might).
But it's more like 'just rotating the paper', and I think it could be a lot easier to program (but that depends on how the rest is already implemented).
I think we need to make a clear distinction between
bounding box
shape dimensions (e.g. rectangle width/height, horizontal/vertical radius of an ellipse, etc.)
Obviously rotating the page should not change the latter, I think that's mostly what Maren was afraid of.
What I described above holds for the visual bounding box, and I think it's the most intuitive solution if it is always aligned to the screen. Otherwise we could end up with situation where setting the width of some selected objects changes their vertical size (if the page is rotated by 90 degrees), moving shapes up/down moves them in arbitrary directions on the screen, resizing works in unexpected directions, etc.
If you don't believe me, just try it in master and you'll see why I think rotating the bounding box with the canvas is not intuitive: Draw a rectangle, rotate it a bit, then rotate the canvas a bit, then try to rescale the rectangle without getting a serious headache (the worst you can do is to actually rotate the canvas the same amount you rotated the rectangle, so the rectangle is aligned with the screen, but not the page ). The only way you'll manage will likely be by tilting your head physically, or at least undoing the canvas rotation mentally, both not really being the idea behind having the possibility to rotate the canvas in software in the first place.
As for the fear that changing width/height might be confusing:
It's not more confusing than the fact that width/height of the bounding box of a rectangle already change today when rotating said rectangle.
Also the suggested behavior matches the rulers and coordinates on the canvas (and is therefore actually less confusing): If you draw a square with a size of 100 mm x 100 mm and rotate the canvas by 45° the rulers will show correctly that the width/height in this orientation scales by sqrt(2) and consequently the measurements of the rotated square are 141.4 mm x 141.4 mm. It's only logical to mirror this in the visible bounding box and the width/height fields of the selection tool.
I was making that distinction, and was referring to the width and height fields for the selection tool, not those of the rectangle tool. For me, rotating the paper doesn't change an object's width/height, just how I look at it.
I still have to try out the thing you described, Patrick....
Yep, I agree, scaling that way is awkward - although, if the handles pointed into the right direction, it would make more sense. Would it be difficult to align them properly for allowing people to test? (i.e. is there one single place where all handles converge in the program?)
And I think the point of turning the paper is not the same as rotating the whole drawing. You turn it to have its angle match the one of your tablet, so you can more easily draw lines that go from top to bottom/vice versa. You don't rotate it to get completely different info about the drawing. At least, that is what I would think.
You're right about the rulers, they don't make much sense in that situation - but the still give a rough indication about distances.
Btw. new guides come out parallel to the page's axes. Which is what I would expect.
You turn it to have its angle match the one of your tablet
While usage with a tablet will certainly be an important usage scenario of canvas rotation I feel that reducing the discussion to this narrow point of view (designers doing free-hand graphics with a graphics tablet) unnecessarily limits the scope of the feature.
Personally I can imagine a lot of things that could be done with canvas rotation if it does in fact change how I can interact with the drawing (and therefore is more than merely changing the angle of my input device). Especially for vector graphics!
Some examples that could become significantly easier to do:
aligning angled shapes relatively to each other
construct content with multiple arbitrarily angled symmetry axes
construct rotated parts in drawings to start with (I usually draw them un-rotated, then rotate them, and if I later realize I need to change them I scream inside)
Another quirk I just realized: Have you tried selecting something on a rotated canvas lately? ;-)
One intuitively draws a rectangle aligned to the screen. Spoiler: It won't work! Now why should the outline of a selection differ from the selection rectangle one intuitively draws?
As for other software I'd definitely be interested, too, especially vector software. I checked GIMP which works more or less like Inkscape does currently (and feels just as wrong - when I rotate the canvas and draw a rectangular selection, wouldn't one expect it to be aligned to the screen?) but obviously GIMP is much more aimed at free hand drawing and also has the big disadvantage of pixel grids inevitably being aligned to the page...
Another quirk I just realized: Have you tried selecting something on a rotated canvas lately? ;-)
One intuitively draws a rectangle aligned to the screen. Spoiler: It won't work! Now why should the outline of a selection differ from the selection rectangle one intuitively draws?
I think for Patrick's use cases, there should be other options available that are currently still missing in Inkscape - it doesn't need a rotation of the canvas or of objects to achieve a geometrical construction easily, it needs some dedicated functionality. It appears as if it were a set of workarounds, not proper solutions. Maybe being able to set an angle for the align/distribute dialog could solve this.
Edit: Oh, and maybe keeping rotation transforms, and having a button to reset. It is definitely a problem, for which Patrick isn't the only person facing it.
All of that is there in Inkscape (or SVG for that matter), but it's hard to use if one does not have planned out the drawing from the start, having a map of the XML tree in mind, and then makes heavy use of grouping and layers.
While I don't think it's impossible to somehow hack this into an UI, I think it will never be easy to use (let alone easy to program).
That's why I think canvas rotation would be an easy way to solve this intuitively (not completely without development effort, though, but probably less then re-inventing every tool).
To maybe speak more vividly and to explain why I don't think changing other tools will really solve this:
Find me a quick way to draw a wall of Legos (with all those little knobs) that is tilted exactly 31.415 degrees, but without cheating (drawing it first, then rotating it) ;-)
Of course you can try grouping, but it will be hell as soon as you have to change it (unless Inkscape adds a mode to "enter a group" by actually opening a new document that has just the group untransformed, but now where entering so far into Wishlist territory that I don't even dare to think of it).
@t1mj0nes Do you already have any feedback for this?
@ede123 I think maybe (if there is no feedback) we should go with the minimum option that fixes it, instead of adding that large additional coding for the type of rotation you are thinking of.
That could still be added later if someone requests it, we have more than enough bugs to fix before 1.0.
(I would like to have this milestoned... It's embarrassing.)
The only feedback I've had is; People love the Canvas rotation but don't use the object rotation with it. Tbh, I am the same, when inking a drawing the canvas rotation is superb but I don't think about rotating a single object as well. It just doesn't cross my mind. Hope that helps?
Thank you. It would help, if I understood what you mean :/ Is this in favor of red or green above? The objects are always rotated with the paper... Only how their bounding box works and how the arrows look - does it look as if you just rotated the screen, or does it look as if you are working in a completely different orientation.
actually, I think both behaviors could be useful red when you just drawing and you want to rotate the screen so you don't draw in awkward angle and green when you want to stretch objects in this specific angel.
But I would exept to be as a red one and green one could be feature :D
I took a deep dive into the handles during canvas rotation. I did get them to rotate, but we all would hate the results, the pixmap handles are tiny (13x13px) scaled up x2 on HiDPI (which is why they look so bad even when strait) but are only 3 colour.
I added a pixmap rotation function but the results were very bad (clipping, pixelation, and upscaling artefacts)
Looking at different solutions, increasing the size of the pixmaps, using a vector based handle graphic, reordering the scaling factors. They are all very disruptive and require lots of refactoring. So even if fixed, it would be hard to get them into 1.0.x without a lot of testing and consensus to land it. I do admit though that the handles look terrible, so we should focus on fixing all the pixmaps for 1.0.1 or 1.1 (maybe some of the designers can help make all the cursors and handles too).
My preferred solution is to replace the xpm handles with svg based paths we can render without any pixelation and have a smooth output for all angles, sizes, resolutions of display and even offer better options to users for how big these handles should be.
Hi, I've seen this thread only yesterday and I completely agree with Patrick Storz, to me it seems a mistake that when I rotate the canvas also the selection and the commands rotate. I'm definitely for the green.
Blender or FreeCAD are 2 examples where the box selection is relative to the user view and it's many advantages, the first is that you often turn the view to achieve a particular selection.
Same for the bounding box, the proposal of Patrick could disclose other ways of drawing and in the end it's what the inking people do: they turn the canvas and they draw as usual, they don't have to adapt their movements to the canvas rotation. So we could turn the canvas and start drawing shapes normally, making it more intuitive and faster.
#2609 (closed) is related to this topic too (I closed my issue there to contribute here)
A very typical use case for me, is editing floor plans. Here, corridors or wings of a building are often slant. When being able to rotate the canvas to a corridor becomes horizontal, allows to add signage and elements in line with the visually horizontal work.
A second use case would be when you need to select a subset of elements that are on a line but not horizontal/vertical.
I agree that a good image design can help out a lot. Unfortunately, images supplied are not always nicely layered and grouped.
So this is what makes most sense for me:
clicking on existing elements - creates the handles as currently happens (along the box), just as it does with a rotated element
dragging the select tool - creates a rectangle straight in reference to the view pane.
dragging the rectangular or ellipse or etc... tool - works in reference to the view pane.
Optionally:
add a button in the settings allowing to toggle the reference pane for boxes.