Istvan Seidel:
one question abut the knotes tool, how can i move a knote to another place of the line?
I'm guessing that you mean "nodes tool". Do you mean move a node to a different place on the line without affecting the shape of the line? I don't think this is directly possible. It may not be possible, after all, to represent the same shaped curve with nodes in different places. You could add a new node (select two nodes, press Ins, and a new node appears half way in between them), but when you delete one of the original nodes, the shape of the line changes dramatically.
The only way I can think of is to duplicate the object, and then move the node and adjust its handles manually so that it closely matches the shape of the other object, then delete the other object.
__________________________________________________ Phil Hibbs | Capgemini | Rotherham Technical Consultant T. +44 1483 248892 | www.capgemini.com T. 0870 238 8892 __________________________________________________
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
On 11/1/05, Hibbs, Phil <phil.hibbs@...926...> wrote:
I'm guessing that you mean "nodes tool". Do you mean move a node to a different place on the line without affecting the shape of the line? I don't think this is directly possible. It may not be possible, after all, to represent the same shaped curve with nodes in different places. You could add a new node (select two nodes, press Ins, and a new node appears half way in between them), but when you delete one of the original nodes, the shape of the line changes dramatically.
Theoretically this is possible, but a) not in all cases and b) it requires tricky math calculations.
Alexandre
On 11/1/05, Hibbs, Phil <phil.hibbs@...926...> wrote:
I'm guessing that you mean "nodes tool". Do you mean move a node to a different place on the line without affecting the shape of the line? I don't think this is directly possible. It may not be possible, after all, to represent the same shaped curve with nodes in different places. You could add a new node (select two nodes, press Ins, and a new node appears half way in between them), but when you delete one of the original nodes, the shape of the line changes dramatically.
There was a proposal to delete nodes without changing shape as much as possible, and Aaron started looking into it (I think). Hopefully this will be implemented soon.
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
bulia byak wrote:
On 11/1/05, Hibbs, Phil <phil.hibbs@...926...> wrote:
I'm guessing that you mean "nodes tool". Do you mean move a node to a different place on the line without affecting the shape of the line? I don't think this is directly possible. It may not be possible, after all, to represent the same shaped curve with nodes in different places. You could add a new node (select two nodes, press Ins, and a new node appears half way in between them), but when you delete one of the original nodes, the shape of the line changes dramatically.
There was a proposal to delete nodes without changing shape as much as possible, and Aaron started looking into it (I think). Hopefully this will be implemented soon.
I haven't started looking at this yet. Since I don't know or understand the complex math is trying to guess at the best approximation, I had planned to sample the two curve segments adjacent to the node in a configureable number of places and send that list of points to the bezier fitting functions in bezier-utils.cpp to have it find the best fitting single segment approximation (I think that it has the ability to do this with end tangent constraints). Does this sound like a reasonable idea to the people in the know?
Aaron Spike
On 11/1/05, Aaron and Sarah Spike <spike@...476...> wrote:
I haven't started looking at this yet. Since I don't know or understand the complex math is trying to guess at the best approximation, I had planned to sample the two curve segments adjacent to the node in a configureable number of places and send that list of points to the bezier fitting functions in bezier-utils.cpp to have it find the best fitting single segment approximation (I think that it has the ability to do this with end tangent constraints). Does this sound like a reasonable idea to the people in the know?
Yes - initially I was doubtful about this approach, but after some thinking I now consider it the only practical mehtod, easily working for any number of deleted nodes.
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
bulia byak wrote:
On 11/1/05, Aaron and Sarah Spike <spike@...476...> wrote:
I haven't started looking at this yet. Since I don't know or understand the complex math is trying to guess at the best approximation, I had planned to sample the two curve segments adjacent to the node in a configureable number of places and send that list of points to the bezier fitting functions in bezier-utils.cpp to have it find the best fitting single segment approximation (I think that it has the ability to do this with end tangent constraints). Does this sound like a reasonable idea to the people in the know?
Yes - initially I was doubtful about this approach, but after some thinking I now consider it the only practical mehtod, easily working for any number of deleted nodes.
I have no idea how good it is, but a friend of mine implemented a relatively straightforward way of deleting a node from a bezier curve in the following program (license is GPL): http://magicseteditor.sourceforge.net/ As far as I understand he uses de Casteljau's subdivision algorithm backwards to obtain a reasonably approximation.
For convenience, the relevant file can be viewed here: http://cvs.sourceforge.net/viewcvs.py/magicseteditor/mse/src/Action/SymbolAc...
The relevant method is the "construct" method in the ControlPointAddAction class. (It's in a custom language btw, but it's very much like C++, so it shouldn't be too hard to understand.)
participants (5)
-
Aaron and Sarah Spike
-
Alexandre Prokoudine
-
bulia byak
-
Hibbs, Phil
-
Jasper van de Gronde