pencil
pencil copied to clipboard
Implement a discrete straight line constraint for drawing tools
Issue Summary
As the name implies, having a discrete constraint (i.e variable degree from initial click placement) to create straight lines is a very widespread and useful feature that Pencil2D has been missing ever since it was created.
Even the polyline tool could benefit from this behavior as creating straight lines at odd angles doesn't look really nice when you need precision drawing for creating certain shapes.
Expected Results
To be able to create a straight line at regular or odd intervals depending on a modifier key (normally SHIFT). This would however have to be validated against the Quick-sizing behavior which already uses the hard coded SHIFT key to change the brush size when enabled
Angle based on initial mouse / stylus direction H: Horizontal Angle (0°, 180°) V: Vertical Angle (90°, 270°) D: Discreet Angle (Depends on degree setting, initially 45° steps)
- [ ] Pencil Tool: H & V
- [ ] Pen Tool: H & V
- [ ] Brush Tool: H & V
- [ ] Eraser Tool: H & V
- [ ] Polyline Tool: H, V, D
Video or Image Reference
Red: odd angle straight lines (current) Blue: discrete angle straight lines
I don't know many of the programs that you (and others) refer to, and I don't understand 100% what you want here. My guess is that you want a tool, or an extension to a tool, so it can draw straight lines. Right? An these lines should be constrained to some predefined angles? Why? If I want a slightly tilted line (3-5 degrees) what then? Well chances are that I've misunderstood it all, so please enlighten me :-)
@davidlamhauge Sure. So if you want a slightly tilted line you can do that already freehand or with the polyline tool.
But If I want to draw a perfectly flat horizon line, delineate a set of buildings or mechanical elements, or better yet, to draw an isometric perspective grid at 45° angles, I can't without great effort or without using other software entirely.
So I'd like to alternate between drawing freehand lines and straight-angled lines however I choose for complex artwork. This is a simple tool meant to help in drawing inorganic, mechanical or repetitive patterns more efficiently, not to take away the artist freedom.
As you mentioned this is quite simply a request to extend all the drawing tools, and quite particularly to have the polyline tool to be able to lock the stroke placement on a specific axis or direction as determined by a custom angle.
Such behavior could also work similarly as it does in PhotoShop, perhaps just for the freehand drawings tools. In PS when you press & hold the modifier key, then click once on the canvas to establish the first point of the line, and afterwards click on a second point it creates a straight line in any direction as determined by those two points. Note that this will not provide necessarily provide perfect angles, but rather allow you to "eyeball" the angles yourself.
In summary I'm requesting that along freehand lines all the drawing tools should allow you to:
- Draw precision lines at any angle either by
- Connecting between any two given points
- Locking / snapping to an axis (X or Y, 45°) established by the initial stroke direction
In the case of the polyline tool
- To draw precision lines from any connecting endpoint, at any angle, and let you switch between discrete and "freehand" straight lines
I hope that is more clear. If not I'll capture a few GIF's with the tool behaviors we can draw inspiration from. Cheers.
So, it seems to be the same request from #44. It happens to be mine . If yes you may close it @Jose-Moreno
@Kaikogf Yes you're right it's a similar request. I forgot it was there, but it also seems it never had any traffic except for me adding it to the feature roadmap before today. I'll read it later and see if I can add anything to this one or simply move the comments to that one then. I feel this request has been ignored for too long (2013) ...
@Jose-Moreno The issue is the same as in #44. Your description here is more comprehensive and so I am going to close the other one :+1:
Thank you