Difference between revisions of "User talk:Davidhewitt"

From Inkscape Wiki
Jump to navigation Jump to search
Line 12: Line 12:
== The Ultimate New Inkscape input tool and the editing architecture necessary to complement it... ==
== The Ultimate New Inkscape input tool and the editing architecture necessary to complement it... ==


  ''This new input tool for inkscape is designed to complement the existing
''This new input tool for inkscape is designed to complement the existing tools inkscape already has by providing an new and versatile way of inputting paths, similar to xara,s "shape editor tool".''
  tools inkscape already has by providing an new and versatile way of inputting
  paths. Similar to xara,s "shape editor tool".
  (for those familar with xara).''
  ''N.B. This is actually stated as being the main input tool for Xara and it is my opinion that once most users try this they will seldom if ever return to using the bezier tool. Simply put this is a must for inkscape.''


  ''This new input method is ideal for use with Spiro as it does not require the user to drag out to create Beizier handles in order to produce a "curve node" and shape the resultant curved line segment on the fly ETC......''
''(for those familar with xara).''
 
''N.B. This is actually stated as being the main input tool for Xara and it is my opinion that once most users try this they will seldom if ever return to using the bezier tool. Simply put this is a must for inkscape.''
 
''This new input method is ideal for use with Spiro as it does not require the user to "click and drag" (to create Beizier handles)in order to produce a "curve node" and in the process shape the resultant curved line segment on the fly ETC......''
 
''This new method simply employs "Corner Nodes" & "Curve Nodes"...''
 
''This new input method is ideal for use with Spiro as it does not require the user to drag out to create Beizier handles in order to produce a "curve node" and shape the resultant curved line segment on the fly ETC......''
 
=== Important Points ===
It is worth noting here that in order to reproduce complex curves with this method that more curve points have to be employed depending on the complexity of the shape. I.E instead of using beizier to adjust one node more exactly here simply more curve nodes are employed to define the complex curve path with more "node resolution"....
 
The whole idea behind this tool is different to bezier:
With beizier the ethos is: a minimum of nodes each exacting great control over a repetitively large line segment...
 
Here the ethos is: Many more nodes placed down rapid fire each having a much less impact.
 
 
=== Node Reduction ===
This type of Curve/Corner node input method is many times faster than beizier as nodes can be placed down as fast as the user can click and no dragging is required with each node to control curves as one goes...
 
In short its a much simpler process and one that can be done allot faster.
 
It is obvious however that the result is line paths with many more nodes...
But with node reduction there is no reason why these paths should be any harder to edit with the beizier method which although much slower to input with is allot better suited to editing....
 
 
=== Input Options ===
Normally i would say you could use the Left Mouse to put down curve nodes and you could hold shift to insert a corner nodes...
 
But I would strongly urge that this tool should have an OPTION (option only as allot of people will hate this otherwise)to allow the Right Mouse to be used to input corner nodes for this tool only...
 
This way you could use left and right mouse exclusively to enter curve and corner nodes respectively and input paths with-out requiring the keyboard.
 
=== Customization ===
This new tool should be versatile and very customizable so that it can be tailored to the requirements of the user and to their hardware.
 
And that any of the other input modes currently used in inkscape...
(Sketch and Beizier) can also be mixed and matched with-in the same tool with-out the need to change from one tool to another....
 
The ways in which these other input modes can be accessed should be customizable so that if one has a mouse with many buttons these can be configured to input sketch and beizier segments...
This way the user can chop and change the input method as required to suit the circumstances....
 
All the input options for this tool would available in options and could be configured individually...
1) Curve node ----> [left mouse].
2) corner node ----> [Combination]---> [Hold Shift]-[Left Mouse]
3) Sketch Segment ----> [middle Mouse]-[Click & Drag to sketch]
4) bezier segment ----> [alt] - [active whilst held]
5) finalize -----> Right mouse or Enter.....
6) node reduce ---) [Combination]---> [Hold Shift]-[mouse wheel]
 
OR you could configure any way you wanted I.E
 
1) Curve node ----> [right mouse].
2) corner node ----> [Left Mouse]
3) Sketch Segment ----> [Left Mouse-[Hold shift]-[Click & Drag to sketch]
4) bezier segment ----> [alt] - [active whilst held]
5) finalize -----> [Middle mouse].....
6) node reduce ---) [Middle mouse and hold down]-[move mouse to control]
ETC...
This is not mandatory but would allow great flexibility to accommodate a wide range of input hardware and also personal preferences....
 
In addition to this all the settings for this tool could be saved as a txt file that would reside somewhere convienient and users could swap or change the setups ETC......and try different set-ups and compare.... perhaps you would save these as options and then switch between them...
 
 
 
=== Tool synthsis ===
As already touched on in the last point this new input method would allow the user to incorporate sketch, beizier and Curve/corner input modes for different segments of the same path with out changing tools...
And this could be set up and customized to suit the user.
 
The main reason for this is that different input methods have different advantages which are best suited to various conditions which can exist with-in the same path....
 
for example certain parts of a path might need great precision whilst others may be able to be done super fast with sketch where less precision is required....


  ''This new input method is ideal for use with Spiro as it does not require the user to drag out to create Beizier handles in order to produce a "curve node" and shape the resultant curved line segment on the fly ETC......''


=== What properties would qualify such a tool? ===
=== What properties would qualify such a tool? ===

Revision as of 06:24, 15 February 2009

Auto-Scroll that happens automatically...

Its curious that inkscape already has functionality called autoscroll, but nothing that causes scrolling to happen automatically...

Whist not for everyone what i call "proper autoscroll" I.E scrolling that happens automatically when you get to the edge of the screen, does exist in other applications and is loved by many....(hated by others)...

Autoscroll.png

Here is a dialogue from an application that does have a genuine autoscroll function.

A similar autoscroll function that kicks in automatically when the cursor gets close to the edge of the screen (centering the cursor and scrolling the screen automatically) would be a welcome addition to the fine scrolling options already present....

The Ultimate New Inkscape input tool and the editing architecture necessary to complement it...

This new input tool for inkscape is designed to complement the existing tools inkscape already has by providing an new and versatile way of inputting paths, similar to xara,s "shape editor tool".

(for those familar with xara).

N.B. This is actually stated as being the main input tool for Xara and it is my opinion that once most users try this they will seldom if ever return to using the bezier tool. Simply put this is a must for inkscape.

This new input method is ideal for use with Spiro as it does not require the user to "click and drag" (to create Beizier handles)in order to produce a "curve node" and in the process shape the resultant curved line segment on the fly ETC......

This new method simply employs "Corner Nodes" & "Curve Nodes"...

This new input method is ideal for use with Spiro as it does not require the user to drag out to create Beizier handles in order to produce a "curve node" and shape the resultant curved line segment on the fly ETC......

Important Points

It is worth noting here that in order to reproduce complex curves with this method that more curve points have to be employed depending on the complexity of the shape. I.E instead of using beizier to adjust one node more exactly here simply more curve nodes are employed to define the complex curve path with more "node resolution"....

The whole idea behind this tool is different to bezier: With beizier the ethos is: a minimum of nodes each exacting great control over a repetitively large line segment...

Here the ethos is: Many more nodes placed down rapid fire each having a much less impact.


Node Reduction

This type of Curve/Corner node input method is many times faster than beizier as nodes can be placed down as fast as the user can click and no dragging is required with each node to control curves as one goes...

In short its a much simpler process and one that can be done allot faster.

It is obvious however that the result is line paths with many more nodes... But with node reduction there is no reason why these paths should be any harder to edit with the beizier method which although much slower to input with is allot better suited to editing....


Input Options

Normally i would say you could use the Left Mouse to put down curve nodes and you could hold shift to insert a corner nodes...

But I would strongly urge that this tool should have an OPTION (option only as allot of people will hate this otherwise)to allow the Right Mouse to be used to input corner nodes for this tool only...

This way you could use left and right mouse exclusively to enter curve and corner nodes respectively and input paths with-out requiring the keyboard.


Customization

This new tool should be versatile and very customizable so that it can be tailored to the requirements of the user and to their hardware.

And that any of the other input modes currently used in inkscape... (Sketch and Beizier) can also be mixed and matched with-in the same tool with-out the need to change from one tool to another....

The ways in which these other input modes can be accessed should be customizable so that if one has a mouse with many buttons these can be configured to input sketch and beizier segments... This way the user can chop and change the input method as required to suit the circumstances....

All the input options for this tool would available in options and could be configured individually... 1) Curve node ----> [left mouse]. 2) corner node ----> [Combination]---> [Hold Shift]-[Left Mouse] 3) Sketch Segment ----> [middle Mouse]-[Click & Drag to sketch] 4) bezier segment ----> [alt] - [active whilst held] 5) finalize -----> Right mouse or Enter..... 6) node reduce ---) [Combination]---> [Hold Shift]-[mouse wheel]

OR you could configure any way you wanted I.E

1) Curve node ----> [right mouse]. 2) corner node ----> [Left Mouse] 3) Sketch Segment ----> [Left Mouse-[Hold shift]-[Click & Drag to sketch] 4) bezier segment ----> [alt] - [active whilst held] 5) finalize -----> [Middle mouse]..... 6) node reduce ---) [Middle mouse and hold down]-[move mouse to control] ETC... This is not mandatory but would allow great flexibility to accommodate a wide range of input hardware and also personal preferences....

In addition to this all the settings for this tool could be saved as a txt file that would reside somewhere convienient and users could swap or change the setups ETC......and try different set-ups and compare.... perhaps you would save these as options and then switch between them...


Tool synthsis

As already touched on in the last point this new input method would allow the user to incorporate sketch, beizier and Curve/corner input modes for different segments of the same path with out changing tools... And this could be set up and customized to suit the user.

The main reason for this is that different input methods have different advantages which are best suited to various conditions which can exist with-in the same path....

for example certain parts of a path might need great precision whilst others may be able to be done super fast with sketch where less precision is required....


What properties would qualify such a tool?

1) First, it would have to be super fast to input curves....

Lets take a look at Bezier (Inkscape's existing "Pen" tool) in this light:

  • Bezier can define any line very accurately but inputting this line in the first place both quickly and accurately can be difficult.
  • With Bezier (especially for complex lines) it can be very hard to achieve perfect results first time without edits.
  • Bezier takes allot of experience to do well in all circumstances.
  • Bezier has been reported by many to be notoriously hard to master.
  • You can get very accurate results with Bezier but not without taking time to be careful and precise and not always without edits.


Lets take a look at Sketch inputs (Inkscape's existing "Pencil" tool) in this light:

  • Sketch is blindingly fast and has a great loose free hand feel.
  • Sketch although fast and easy is not suitable for exacting/accurate work.
  • Anyone can use the sketch tool but it only has a niche application.
  • It would be impossible to define a complex line quickly or effectively with a sketch action.


2) Second (Whist being fast) it also has to be very very accurate...

Lets take a look at Bezier (Inkscape's existing "Pen" tool) in this light:

  • Pen tools that sketch are probably the fastest at creating a line but they lack the accuracy in the process that placing down nodes does...
  • You can have your speed with a pen tool but at the expense of accuracy.

3) Third this tool would be mouse only...

How practical is an input method that requires you to have a free hand to straddle the keyboard or to leave the work space and click on different icons just to get practical results?

  • 4) Fourthly it should incorporate all the advantages of the other input tools and in such a way that they are all rolled into one.
  • 5) Fifthly The results of this input should be node minimized...
  • 6) Sixthly It should accommodate Spiro...


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To be fast i propose this new tool should not require bezier drags at all but should simply employ 2 types of nodes: curve and corner.

And in addition to this, that to create these 2 types of nodes that no double clicking, back-tracking and clicking over existing nodes, or right click menuing should be allowed to slow down the process of placing down nodes rapid fire...

Also so as the user does not have to use the keyboard, double clicking or any additional functions to switch between these different node types both node types (curve and corner) should be executed with the "naked" mouse...

Left mouse: Curve point. Right mouse" corner point.

N.B. It should be noted here that these nodes would be devoid of bezier handles for input purposes... and that to achieve greater accuracy and conformity whilst digitizing, this method would require the user to throttle the node output rate to match the complexity of the curve it was required to follow... IE more complex curves would require more nodes from a input perspective...

However even though twice as many nodes would be require with this method than would be the case with the bezier method... these could be pumped out as fast as the user can click...and would not require any fussing about with bezier handles or finicky tweaking.

This new input method is perfect for Spiro as this method also does not utilize bezier handles to define its nodes...