Rotating objects might not work how you think

Previous topic - Next topic

GarryP

Strap yourself in, this is a long one!

I was messing around with the Scribus rotation tools recently - I don't use them very much - and found that they didn't work in the way I thought they might. And after a bit of experimenting I thought I'd share some of my experiences.

I was trying to draw a simple flower - don't me ask why - and I started with a simple petal [see Figure 1 in the attached image].

My expectation was that I could duplicate/rotate (menu "Item -> Multiple Duplicate") it about the pointy end to create the "face" of a flower. However that wasn't as easy as I thought it might be.

First, as a test, I tried to create two duplicates rotated by 20 degrees. The result is in Figure 2. This showed me that the duplicates had been rotated around the top-left-hand corner of the frame the shape is in (as is default and shown in the XYZ section of the Properties palette, as pictured).

All that sounds fine and is how it should be but it obviously this wasn't what I wanted so I thought I'd rotate the shape - by 225 degrees - to make its pointy end at the top-left corner, as in Figure 3. Then I tried the rotation again, and the results were worse [Figure 4].

What had happened was that the shape was still rotated around the top-left-hand corner of the bounding box but that corner was now at the right of the shape [see arrow], and Scribus still thinks that the top-left-hand corner of the frame is at the top-left-hand of the shape so it starts rotating from that position which is why the rotated shapes are where they are. They're the same as in Figure two but start in the "wrong" place because of the earlier rotation.

On top of this, the bounding box of the shape stays in the same orientation as the shape rather than the box "reorganising itself" to be a different shape but in the horizontal/vertical axes. After some thought this seems reasonable but maybe not what could be expected as I've used other software that works differently - that could just be my unreasonable expectations though.

So, then I modified the original shape so that its pointy end was at the corner of the bounding box. Then I changed the rotation base-point to the bottom-left [Figure 5]. Then I duplicated/rotated the shape and finally got my flower shape [Figure 6].

So... after all that, my "friendly warning" to people is to be careful when rotating things as the results may not be how you might naturally expect. If you know you're going to be rotating things, plan ahead and make sure you know what you're doing.

And... my question to the rest of the forum is this: "Should Scribus take the current rotation of a shape into account as a starting point when rotating, or should it use the shape's original orientation?"

Personally I think it should use the shape's current rotation as a starting point as it seems more natural and expected. But what does everyone else think? Is it just me being stupid or picky or am I on to something here? Tell me what you think.

[attachment deleted by admin]

utnik

hi garry

Quote from: GarryP on August 19, 2013, 04:37:50 PM...my question to the rest of the forum is this: "Should Scribus take the current rotation of a shape into account as a starting point when rotating, or should it use the shape's original orientation?"

this is a good question – but not that easy to answer...

       
  • as long as it's the same rotation tool for text frames, image frames and vector elements like your petals, i prefere it the way it is. when iplay with a rotated text frame (maybe not a square), i would like the possibility to rotate it back to exactly horizontal text lines...
  • for building geometrical structures like yours, it might be easier with the reorganized bounding box.
QuotePersonally I think it should use the shape's current rotation as a starting point as it seems more natural and expected.

for me it doesn,t really matter. when i build vector graphics, i do this with inkscape and import the graphics into the scribus file...

utnik

GarryP

Hi utnik.

I think you're right about my question not being easy to answer. I can see positives and negatives to each method too. I have a feeling that this particular issue is a long-haul debate where either side is as valid as the other but in different ways. Maybe someone can think of a good compromise?

However, I think that the issue raised in Figure 4 is something that should be looked at as a bug. Making a duplicate by rotation, in my view, should take the current rotation of the object into account as its starting point. I can't think of any reason why it should work as it currently does and I've never seen that in any other application. Unless, of course, someone can tell me why I am wrong.

It's probably a very simple programming change - i.e. start the rotation calculation at the object's current rotation angle instead of zero - but it's little details like this that could make newbies wary of using what is an otherwise excellent piece of software.

P.S. Like you, I do most of my more complex vector graphics - and mine aren't that complicated I have to say - in Inkscape too. Generally I try to think of Scribus as a layout tool with some useful in-built graphics capabilities, but I'd like to hope that those graphics capabilities work properly when I use them. And don't get me wrong, they normally do; this is just one tiny oversight that I found purely by accident when I was playing around.