Hi guys, Have commited the stuff I was working on to give control knots for manipulating pattern fills. Knots are currently provided for translation, rotation and scaling. Theres a circular node at the pattern 0,0 with 2 diamonds, one to the right, and on below (in the pattern co-ord system). To move the pattern, drag the circle, to rotate, drag the diamond to the right, to scale the one below. I'm putting thought into how best to do skew and non uniform scale, however need to discuss that with people, both from UI and maths point of views, so dont intend trying to get those done for 0.39.
Cheers
John
__________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail
On Tue, 2004-06-22 at 15:11, John Cliff wrote:
Have commited the stuff I was working on to
give control knots for manipulating pattern fills. Knots are currently provided for translation, rotation and scaling. Theres a circular node at the pattern 0,0 with 2 diamonds, one to the right, and on below (in the pattern co-ord system). To move the pattern, drag the circle, to rotate, drag the diamond to the right, to scale the one below. I'm putting thought into how best to do skew and non uniform scale, however need to discuss that with people, both from UI and maths point of views, so dont intend trying to get those done for 0.39.
I think a better approach, given that arrangement of knots, is something like this (imagine X is your diamond shape):
^ V (skew)
O------X <-> (scale) | | | X <-> (skew)
^ V (scale)
So, from the initial position (i.e. no transform) dragging the:
center knot: any direction = translation
right knot: up or down = skew vertically right or left = scale horizontally
bottom knot: right or left = skew horizontally up or down = scale vertically
IOW, motion parallel to the line between the center knot and the knot being dragged will cause scaling, and motion perpendicular to that line will cause skewing.
Holding down shift will limit it to only scaling or skewing at a time, depending on whether the motion is closer to parallel or perpendicular.
Holding down control while dragging the right or bottom knots will cause uniform scaling and rotation instead of a one-axis skew.
[ rotation = uniform skew on both axes ]
[ Variation on the idea:
Uniform scaling/rotation would be the default, and only the center and the bottom knot are shown. Holding down control shows the third knot and permits non-uniform scaling/skewing. I think I like that better..]
Anway, doing it this way also means a very direct relationship to the math: taking the translation and default knot distance out of the picture first, you are left with a center knot at 0,0, the right knot at 1,0, and the bottom knot at 0,1 (or 0,-1, depending on how you've set up your coordinate system).
Applying the non-translation portion of your matrix to those two knot coordinates will let you break it down into separate horizontal and vertical skews+scales.
For each axis, scale is the distance of its transformed knot from the center, and skew is the angle between a line drawn from the center to the knot's original position and one drawn from the center to its transformed one.
Nathan or someone can help you with the math to reverse the process and compute the "delta" transform between two knot positions if you can't figure it out (I'm tired and have a headache).
-mental
MenTaLguY wrote:
On Tue, 2004-06-22 at 15:11, John Cliff wrote:
Have commited the stuff I was working on to
give control knots for manipulating pattern fills. Knots are currently provided for translation, rotation and scaling. Theres a circular node at the pattern 0,0 with 2 diamonds, one to the right, and on below (in the pattern co-ord system). To move the pattern, drag the circle, to rotate, drag the diamond to the right, to scale the one below. I'm putting thought into how best to do skew and non uniform scale, however need to discuss that with people, both from UI and maths point of views, so dont intend trying to get those done for 0.39.
I would personally put 4 knots on the diagram. gets rid of the hidden mode (rotation).
Editting in place as it's easier :)
I think a better approach, given that arrangement of knots, is something like this (imagine X is your diamond shape):
^ V (skew)
O--------------------X <-> (scale) | | | | | | X <-> (skew)--------* (rotate and scale)
^ V (scale)
So, from the initial position (i.e. no transform) dragging the:
center knot: any direction = translation
right knot: up or down = skew vertically right or left = scale horizontally
bottom knot: right or left = skew horizontally up or down = scale vertically
bottom right knot: scale and rotate like normal objects
Really the behviour should be as close to the normal object behaviour as possible.
Nathan or someone can help you with the math to reverse the process and compute the "delta" transform between two knot positions if you can't figure it out (I'm tired and have a headache).
The code already does this in seltrans.cpp - look at that, maybe you could even factor out a common function (I've pondered whether the rotate etc handles should be done with knots too)
njh
On Tue, 2004-06-22 at 22:09, Nathan Hurst wrote:
I would personally put 4 knots on the diagram. gets rid of the hidden mode (rotation).
Editting in place as it's easier :)
I think a better approach, given that arrangement of knots, is something like this (imagine X is your diamond shape):
^ V (skew)
O--------------------X <-> (scale) | | | | | | X <-> (skew)--------* (rotate and scale)
^ V (scale)
Hmm, okay, now that I see it it makes a lot of sense.
-mental
MenTaLguY wrote:
On Tue, 2004-06-22 at 22:09, Nathan Hurst wrote:
I would personally put 4 knots on the diagram. gets rid of the hidden mode (rotation).
Editting in place as it's easier :)
I think a better approach, given that arrangement of knots, is something like this (imagine X is your diamond shape):
^ V (skew)
O--------------------X <-> (scale) | | | | | | X <-> (skew)--------* (rotate and scale)
^ V (scale)
Hmm, okay, now that I see it it makes a lot of sense.
Yep, I also suggest you try and make arrow like icons to match the standard selection transforms.
The origin could be a fleur, rotate and scale the curvy arrow. not sure about the shear/scale.
njh
After testing the wonderfull 0.39, i just took a look at the fr.po file. I saw some mistakes and some empty entries. Is there anybody working on this ? If not I could do this. If we plan to make a manual, it is very important to have well-defined translations.
Hi,
i just took a look at the fr.po file. I saw some mistakes and some empty entries. Is there anybody working on this ?
That file has not been touched by translators for a long time, but it's always a good idea to ask the "Last-Translator".
Arpad Biro
__________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! http://promotions.yahoo.com/new_mail
On Wed, 23 Jun 2004, cedric wrote:
After testing the wonderfull 0.39, i just took a look at the fr.po file. I saw some mistakes and some empty entries. Is there anybody working on this ? If not I could do this.
There have been some changes to the file lately, so someone may be working on it, but I suspect more assistance maintaining the file would be quite welcome. Arpad may be able to provide additional info on it.
If we plan to make a manual, it is very important to have well-defined translations.
Agreed.
Bryce
Hi,
i just took a look at the fr.po file. I saw some mistakes and some empty entries. Is there anybody working on this ?
There have been some changes to the file lately, so someone may be working on it
All PO files change from time to time, because I frequently regenerate them to match the current source code.
Arpad Biro
__________________________________ Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! http://promotions.yahoo.com/new_mail
On Wed, Jun 23, 2004 at 01:26:23PM +0200, cedric wrote:
Is there anybody working on this ?
The cvs log gives an indication of who has worked on it. I believe the 2004-04-06 and 2004-02-11 commits are the most significant recent work (see log).
pjrm.
participants (7)
-
Arpad Biro
-
Bryce Harrington
-
cedric
-
John Cliff
-
MenTaLguY
-
Nathan Hurst
-
Peter Moulder