筆順 · the hook
Hook strokes and the next stroke
For every jōyō stroke whose letter-stripped type ends in a hook, where that stroke sits in the order, and where the next stroke starts from the path end.
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.
- A hook stroke
- The following stroke, when it is not a hook
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_ofintools/stroke_types.pyuses when the string has no slash. - Ends in a hook
- The last character of the letter-stripped
kvg:typeis 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 nokvg:typedoes 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_pathintools/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 isjump_hundredthsintools/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
compassintools/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
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.