These are counts in one KanjiVG snapshot. A correlation is not a rule.

When a hook stroke is drawn it flashes and then stays cinnabar. When the following stroke is drawn, and that stroke is not itself a hook, it flashes and then stays indigo. Any other stroke keeps the ordinary ink. Click a plate to replay. With reduced motion the finished character stays still, and the colors stay. The flash is optional data-hooks. A plate without it does not flash a stroke. The draw timings are unchanged.

On this page

How a hook stroke is counted

A stroke is a path whose id contains -sN. The order is that numbering. kvg:type is read as the file writes it. A trailing run of ASCII letters on a slash-separated piece is a variant letter. The letter-stripped form deletes those letters and keeps the slash. ㇆a and ㇆ are one string. ㇖b/㇆ is ㇖/㇆. The helper is normalize in tools/stroke_types.py.

Hook character
One CJK stroke whose Unicode name’s last token contains G. ㇚ is SG, ㇁ is WG, ㇟ is SWG, ㇆ is HZG, and ㇖ is HG. ㇙ is CJK STROKE ST. The token ST does not contain G, so ㇙ is not a hook character. The same G test is what family_of in tools/stroke_types.py uses when the string has no slash.
Ends in a hook
The last character of the letter-stripped kvg:type is a hook character. ㇆ and ㇆a both end in a hook. ㇖/㇆ ends in a hook. ㇟/㇏ contains a hook and does not end in one. A string with no kvg:type does not end in a hook.
Rank tenth
The bin of k/n. b = ⌈10k/n⌉ − 1, so k/n lies in (b/10, (b+1)/10]. The helper is rank_tenth in tools/stroke_start.py. Ten bins. Stroke 1 of a ten-stroke character is the first bin. Stroke 1 of a two-stroke character is the fifth bin, because 1/2 is 0.5.
Last stroke
k = n. On a character of more than one stroke that row is last. On a one-stroke character that row is sole. The two rows together are the hooks that are the last stroke. The stroke-end page records the end point of stroke n for every character, and the family of that stroke. It does not select hook strokes that are not last.
Distance
The Euclidean distance from the hook’s path end to the next stroke’s start. The path end is the point after the last command. The start is the first moveto. Both come from walk_path in tools/stroke_direction.py, the same points the pen-lift page uses. The distance is rounded half away from zero to a hundredth and stored as an integer number of hundredths. The helper is jump_hundredths in tools/pen_lift.py. A hook with k = n has no next stroke and no distance. The turning page measures the angle between tangents, not this vector.
Direction
The compass of the vector from the path end to the next start. The helper is compass in tools/stroke_direction.py, the same eight cones as the stroke-direction atlas, plus a zero step. SVG y grows downward, so upward on the page is N. A hook with no next stroke is not in these bins.
What the neighbouring pages count
The handoff page counts a change of top-level component. The next-stroke page counts how many letter-stripped types can follow a prefix. Neither page selects a stroke because its type ends in a hook, and neither measures the step from a path end to the next start.

How many hook strokes

Hook strokes in the character Characters Hook strokes

Letter-stripped type Last token Strokes Last stroke Has a next stroke

Where in the order

k/n Hook strokes

How often a hook is the last stroke

Place Hook strokes

Distance from the path end to the next start

Distance, in units Steps

Direction of that step

Direction Steps

Plates

KanjiVG · CC BY-SA 3.0

What this shows

Stroke diagrams: KanjiVG, Ulrich Apel et al., CC BY-SA 3.0, from commit 70a0b7ae0c18ceb5cb358274b029cce0234a43bc of github.com/KanjiVG/kanjivg. The plate files are unmodified copies in site/assets/kanjivg/. Jōyō index: the list used on the Gallery.