Jump to content

Ellipse and 1:1


Crazy Man Dan

Recommended Posts

I don't know if this is a bug, or if this is how it's supposed to work. But it just seems wrong to me, so I'll say something about it!

When constraining an Ellipse (both the Selection tool and the Shape drawing tool) to a 1:1 ratio with the [shift] key, it acts strangely. It constrains it to 1:1, but it also switches up how the Ellipse is drawn.

When drawing normally, each of the ellipses cardinal points are defined by tangential points of the quadrilateral path drawn. (You know, you click and drag in a rectangle, you get an oval within the confines of the rectangular path you traced.)

But when you hit shift, the behavior changes. Now, the origin becomes one tangent point and your cursor becomes the second tangent point. It's as if you're drawing the circle by specifying the origin with the first click, the diameter with how far you drag, and the angle from the origin by where you drag.

Now I know there are some programs that do this when [Ctrl] is pressed, and I could see where it would come in handy, but there are times when I want to draw a perfect circle by specifying the square in which it should reside.

And I'm still as confusing as last time, so I'll post up a screenshot right away this time:

pdntest.png

In both, I clicked at 40px x 40px and dragged to 160px x 160px. but in the second one, I used the [shift] key. The black line is my dragged path, and the grey lines denote the upper and right sides of the bounding box the circle should habitate. When dragging normally, it works normally, but when using [shift], it gets bigger. As you can see by the grey lines, the circle is drawn around the square bounding box instead of within it.

Is there a reason why it works this way? As I said, there are times when I need to draw a perfect circle, and I naturally start at a certain point, but the [shift] key throws it all out there. Perhaps this could be split up to Constrain 1:1 on [shift] and Draw Around Path on [Ctrl], perhaps not. Any explanation you could give would be helpful.

I hope that explanation was understandable. I shall await your reply, good sir!

Dan

I am not a mechanism, I am part of the resistance;

I am an organism, an animal, a creature, I am a beast.

~ Becoming the Archetype

Link to comment
Share on other sites

This is by design; we change it in v2.5 because it makes more sense when drawing circles to do it this way. I'll try and get Tom to put up a more in-depth explanation.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

I made this change because I realized that circles are conventionally drawn in a very useless way. You usually end up having to select the bounding box for the circle, and I hate that. It makes it terrible for selecting existing circles, or for drawing a new circle in a particular spot. The way it is now, you draw circles by selecting where you want the circle's edges to be. I've found that it's quite intuitive and much more useful.

Having said that, yes circles are drawn differently from ellipses, yes. This is because circles are defined by 3 variables. No matter how you slice it, you end up having 3 degrees of freedom. Either it's center-x, center-y, and radius, or it's three edge points, or it's edge point and center point. I chose to use edge-to-edge because it's useful.

Ellipses, on the other hand, are much more complicated. Ellipses are defined by 5 degrees of freedom. One example of how this ends up working out is: center-x, center-y, direction-of-eccentricity-x, direction-of-eccentricity-y, eccentricity-factor.

This presents a problem because, with a mouse click + drag, you only get 4 values. Start-x, start-y, end-x, and end-y. This simply isn't enough variables to do an ellipse. So, ellipses are constrained to using the 'old' (and lame) method.

Possible fixes (methods for getting more than 4 variables from the user to Paint.NET):

1. Have a UI that allows the user to stretech out a circle to define the major-radius, and squish the circle back to define the minor radius. The direction of eccentricity is then derived from the final start->end direction of the mouse click. This is okay, but it doesn't allow the user to go back to 'major radius' mode without another mouse key.

2. Have the user drag the mouse around to define the 5-point outline of the ellipse. The user would simply click and drag, and the smallest ellipse that contains every trace-point would be drawn. This ends up being very complicated to implement, and it still does not allow the user to decrease the size of the ellipse.

Anyway, that's the way it is right now. If you have another idea for an intuitive and complete method for drawing ellipses, reply.

This post is made "AS IS" without warranties and confers no rights.

Link to comment
Share on other sites

...circles are conventionally drawn in a very useless way.

That's the problem, though. Conventionally. When I go to create a circle, I naturally start at the intersection of the tangent lines of the upper and left corner and drag to the intersection of the tangent lines of the lower and right corner, because that's the way every other program I've used does it (including Microsoft Paint). Now, I'm not saying you have to be conformist, because the world would be boring if everyone was the same. And since no one else has mentioned it, it seems I alone am having a problem with the way it functions.

Maybe I'm just too used to the "old (and lame) method." I can indeed see where this functionality would be useful, the problem is, I've never had to use it. And since when [shift] is pressed, the origin is changed from the tangential intersection to the tangent itself, the two methods are completely incompatable. So, if you start out thinking the conventional way, you'll have to [Crtl]+z yourself into submission.

Oh well. Looks like I'll just have to keep on keeping my eyes on the status bar. :wink:

Thanks for the explanation of your reasoning behind it!

Dan

I am not a mechanism, I am part of the resistance;

I am an organism, an animal, a creature, I am a beast.

~ Becoming the Archetype

Link to comment
Share on other sites

On a side note, how useful do you think tilt-able ellipses would be? As it is, the ellipses are effectively constrained at 90-degree intervals. UI implementation aside, how useful do you think this would be?

This post is made "AS IS" without warranties and confers no rights.

Link to comment
Share on other sites

On a side note, how useful do you think tilt-able ellipses would be? As it is, the ellipses are effectively constrained at 90-degree intervals. UI implementation aside, how useful do you think this would be?

Actually, I was thinking how interesting that would be, I just neglected to mention anything about it. Instead of having to rotate an ellipse after-the-fact, you could just make it at whatever angle you needed. Just so long as this method does not replace the current drawing method...

I think the best option would be the first method proposed up there:

1. Have a UI that allows the user to stretech out a circle to define the major-radius, and squish the circle back to define the minor radius. The direction of eccentricity is then derived from the final start->end direction of the mouse click. This is okay, but it doesn't allow the user to go back to 'major radius' mode without another mouse key.

However, you do raise a legetimate concern. If you can find an intuitive way to do it, it would indeed be an interesting and useful method of creating ellipses.

I am not a mechanism, I am part of the resistance;

I am an organism, an animal, a creature, I am a beast.

~ Becoming the Archetype

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...