• jan@cosmigo.com

Line tool snapping to more angles


Line tool is highly useful. Here I’ll describe an idea to greatly boost its usefulness.

I find myself wanting to draw long perfect pixel art lines quite often, but it’s tedious and slows me down a lot.
By “pixel art line” I mean any angled line where each “step” is identical. ^ See the 5 lines above, on the right.

My best workflow idea so far has been to create a brush for each stepped angle and stamp it down as many times as needed, gradually extending the length of the line with each stamp.
Since I can easily rotate and flip my brush, the same brush can be used for several angles with that brush’s step amount. However, it’s clunky and slow in comparison to simply using the Line tool with SHIFT to draw fast clean pixel art lines.

Currently we can easily draw these pixel art lines -

While the above angles are definitely the most common, why not add more?

Customizable Snapping

1-step (45°) and 2-step (26.57°) angles are already snapped to, if holding SHIFT.
What about 3-step, 4-step, 5-step, etc.

Add another modifier key combo for additional angles. This way, the Line tool’s current functionality isn’t altered for existing users who might dislike change and not want additional angles.
Already working: Line tool + SHIFT = most common angles.
Suggested: Line tool + SHIFT + CTRL = most common angles + additional angles.

Let the user decide which additional angles his Line tool snaps to if holding SHIFT and CTRL:
(side note: Adobe Illustrator offers something similar for construction guide angle snaps.)
In order to allow users to customize which stepped angles their Line tool snaps to - A new section in tool settings -

^ User can not only enable/disable the additional angles, he can pick and choose which ones he wants.

With well thought out tool settings, the extra modifier key combo is probably overkill, to be honest.

Informative Cursors
It becomes difficult to quickly discern how many steps a line has at a glance, the longer the step is. Whether it’s a line already drawn on the canvas or one you’re trying to draw.
At the moment, the Line tool only handles 1-step and 2-step lines - no clarity issues; it’s obvious which angle you’re snapping to as you do it. But . . . add more snappable pixel art lines to the Line tool and it may become an issue at times. “Wait is this a 7-step or an 8-step line?” You may know you need an 8-step line and don’t want to draw a 7-step by accident.
Better cursors could inform the user which stepped line he’s currently snapping to, leaving no question -

Of course, there’s also the contextual info readout at the top of the program in the header bar.


Hi @mathias,

I have that feature wish on my list, but as a general feature without selecting the snapping steps.
That means that you just hold an additional extra key (as you suggested, too) and then the line snaps to all slopes that use integers like 1:1, 1:2, 1:3… or 3:1…2:1…
So this just ensures that you use equally segmented lines instead using the typical line calculations. The typical line calculations do not “correctly” use such equal segments because the math just does not care about this. From the math point of view these lines are not close enough to the line formula ( y = mx + n ).
The snap options add maybe some more control, but I’d maybe leave that out for the first round.