Bug 281267

Summary: Smooth Stroke option missing
Product: [Applications] krita Reporter: animtim
Component: GeneralAssignee: Halla Rempt <halla>
Status: RESOLVED FIXED    
Severity: wishlist CC: enrico_guarnieri, halla, lukast.dev, mirandagraphic
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description animtim 2011-09-03 12:54:09 UTC
Version:           svn trunk
OS:                Linux

Particularly for clean ink work, we need a real "smooth stroke" option, like the one in Gimp-painter G-Pen tool ("Quality" and "Rate" options).
The exact details of how it works in Gimp-painter is described here:
http://www24.atwiki.jp/sigetch_2007/pages/17.html
Use google translate as I guess you don't read japanese…
Seriously that feature need to be in Krita (I'd say it's the best smoothing stroke algorythm I've seen, and it's open source, so we need it ;) )

There's another smoothing in mypaint, I'm not sure if it works exactly the same (maybe?!), that makes some delay in the stroke and so smooth it. (that's "slow tracking position" and "slow tracking per dab" options)
It's comparable to the option in xsetwacom called Suppress, only difference is xsetwacom's Suppress slow-down directly the cursor, and so the stroke, while the Mypaint options slow down only the stroke result.
So for now I tweak xsetwacom Suppress value in bash to activate a cheap stroke smoothing, but that's not very good solution (not as good result, can't embed it in a preset, and switching to terminal window isn't a fast workflow :P )



Reproducible: Always



Expected Results:  
Clean smoothed lines
Comment 1 Ico_dY 2011-11-04 14:51:56 UTC
"Slow tracking position" slows down the pointer tracking speed and removes the jitter in cursor movements. 

This option is VERY VERY VERY important for the styles based on line-art and generally for painting on very big canvases. Without it the brushes lack of necessary precision for a comfortable work.
Comment 2 Halla Rempt 2012-01-21 10:43:39 UTC
I'd say this should be one of the main goals for 2.5.
Comment 3 LukasT 2012-01-24 18:44:07 UTC
I'd say this should be one of the main goals for 2.5.
I'd say so too.
Comment 4 RamonMiranda 2012-05-14 14:48:21 UTC
As the main goal of Krita is to be aimed to comic makers and painters i think it would be a very good one. There are an App called AZdrawing wich uses too this feature. there is controlled by only a number who tells the program how much stabilization needs to be aplied. In this field Gimp 2,8 is able to do it too, becasue the G-pen feature was implemented. but gimp dont have rotation in canvas for now. and mypaint does slow tracking also but you cant use it in complex images that requires transformed layers. and comic pages  and ink works usually needs this type of work.
Comment 5 Halla Rempt 2012-12-31 13:54:47 UTC
See https://git.reviewboard.kde.org/r/108049/
Comment 6 Halla Rempt 2012-12-31 16:30:27 UTC
Git commit f9cbf6a1bd864be88059255aa9c4b5b35208085d by Boudewijn Rempt.
Committed on 31/12/2012 at 17:04.
Pushed by rempt into branch 'master'.

Implement line smoothing in Krita

REVIEW:108049

M  +1    -1    krita/image/brushengine/kis_paint_information.h
M  +17   -3    krita/image/kis_distance_information.h
M  +5    -3    krita/plugins/paintops/libpaintop/sensors/kis_dynamic_sensors.cc
M  +54   -18   krita/plugins/tools/defaulttools/kis_tool_brush.cc
M  +8    -3    krita/plugins/tools/defaulttools/kis_tool_brush.h
M  +1    -0    krita/ui/CMakeLists.txt
C  +8    -17   krita/ui/tool/kis_smoothing_options.cpp [from: krita/image/kis_distance_information.h - 057% similarity]
C  +20   -14   krita/ui/tool/kis_smoothing_options.h [from: krita/image/kis_distance_information.h - 057% similarity]
M  +1    -8    krita/ui/tool/kis_tool_freehand.cc
M  +3    -3    krita/ui/tool/kis_tool_freehand.h
M  +111  -31   krita/ui/tool/kis_tool_freehand_helper.cpp
M  +7    -3    krita/ui/tool/kis_tool_freehand_helper.h

http://commits.kde.org/calligra/f9cbf6a1bd864be88059255aa9c4b5b35208085d