筆順 · the prefix and the mirror line
Where the order breaks symmetry
For each jōyō character whose finished drawing is near left-right symmetric, the first stroke prefix that fails that test, and the stroke that passes it again.
These are counts in one KanjiVG snapshot. A correlation is not a rule.
The vertical line is the mirror line x = 54.5. The stroke that first breaks the test flashes cinnabar, then stays cinnabar. The stroke that restores the test flashes indigo, then stays indigo. Click a plate to replay. With reduced motion the finished character stays still, and the line and the colors stay. The line and the flashes are optional data-symmetry-break. A plate without it draws no line and does not flash a stroke. The draw timings are unchanged.
- The mirror line, x = 54.5
- The stroke that breaks the test
- The stroke that restores the test
On this page
How a prefix is tested
The test is the primary tolerance on the mirror-symmetry page. The mirror line is x = 54.5, the centre of the KanjiVG square of side 109. A point (x, y) goes to (109 − x, y). In the SVG, y grows downward.
Each stroke is eight points, equally spaced along the curve, including both ends. A cubic is flattened to six steps so the spacing follows the curve. The distance between two strokes is the symmetric Hausdorff distance of those points.
A stroke is matched to one partner, which may be itself. The defect is the smallest D such that some matching keeps every pair at distance at most D. D is rounded half up to a hundredth of a unit. The drawing passes when that hundredth-count is at most 900, which is tolerance 9. The same test is used for a prefix and for the finished character.
A prefix of k strokes is strokes 1 through k in the file’s -sN order. The test is applied to those strokes alone. The mirror line stays x = 54.5. It is not recentered on the ink drawn so far.
- Qualifying character
- A jōyō character whose finished drawing passes tolerance 9. The mirror-symmetry page is the source of that test. A character that passes only at tolerance 12 does not qualify.
- Breaking stroke
- The smallest k such that the prefix of k strokes fails the test. If the prefix of one stroke already fails, k is 1. A character whose every prefix passes has no breaking stroke.
- Restoring stroke
- The smallest m greater than the breaking stroke such that the prefix of m strokes passes. The finished drawing passes, so m is at most n, and it may be n.
- Cycle
- One breaking stroke and the restoring stroke that follows it. If the drawing fails again after that restore, another cycle starts. A character that never breaks has zero cycles.
- Asymmetric run
- The failing prefixes in one cycle, from the breaking stroke k through the stroke before the restoring stroke m. The length is m − k. It is a count of prefixes, not a tenth.
- Rank tenth
- The bin of k/n. Bin b, from 0 through 9, is the interval (b/10, (b+1)/10]. In integers, b = ⌈10k/n⌉ − 1. The last stroke, k = n, is in the last tenth. A character that never breaks is not placed in a tenth.
Which characters
| Set | Characters |
|---|
| Set | Characters |
|---|
One character, prefix by prefix
| Prefix | Defect | At tolerance 9 | Rank tenth |
|---|
Where the symmetry first breaks
| Rank tenth | Characters |
|---|
Where the symmetry returns
| Rank tenth | Characters |
|---|
How many times it breaks
| Cycles | Characters |
|---|
The asymmetric runs
| Character | Strokes | Breaks at | Restores at | Length | Break tenth | Restore tenth |
|---|
The qualifying characters
| Character | Strokes | Defect | Breaks at | Break tenth | Restores at | Restore tenth | Cycles | Longest run | Prefixes |
|---|
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.