The following script:
https://github.com/benkasminbullock/kanjivg/blob/master/check-all-str...
is based on using the stroke "type" information and parsing the path
information.
It averages the direction of all the strokes of a particular type
(using the start and end points, as extracted by Image::SVG::Path)
then it looks at each individual stroke and prints out any stroke
which seems to be very much in the wrong direction (this is set to 1.0
radians at the moment, but can be set to any number).
When the script is run on the "normal" files, excluding the -Kaisho
and others, the output looks like this:
https://github.com/benkasminbullock/kanjivg/blob/master/check-1.0
Using this, the eight errors shown in the attached pictures were
found, from looking at about a quarter of the file (from line 1 to
line 117 of check-1.0). Many more errors might be found if the limit
is set to less than one radian, for example 0.5. Also it should be run
on the -Kaisho and other files. These aren't visible at
kanji.sljfaq.org which is why it was difficult to check them.
Another point is that many of the things found by this script seem to
arise from the KanjiVG classification of the strokes rather than the
errors in strokes which even a non-expert can pick out. Sorting this
out is a job for someone who understands the system of classification,
so apologies but that is not done here.
There are many more cases to examine! If anyone on the list would like
to volunteer to check just a few of the lines of check-1.0 that would
be very helpful.
All the corrections are now uploaded to github:
https://github.com/benkasminbullock/kanjivg