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 coord 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, 20040622 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 coord 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)
OX <> (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 oneaxis 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 nonuniform 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 nontranslation 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, 20040622 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 coord 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)
OX <> (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, 20040622 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)
OX <> (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, 20040622 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)
OX <> (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 welldefined 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 "LastTranslator".
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 welldefined 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 20040406 and 20040211 commits are the most significant recent work (see log).
pjrm.
participants (7)

Arpad Biro

Bryce Harrington

cedric

John Cliff

MenTaLguY

Nathan Hurst

Peter Moulder