筆順 · the longest stroke and the frame
Where the longest stroke falls
For each jōyō character, whether the longest stroke meets the finished box on two opposite sides, passes within 10 of the centre, or does neither, and where that stroke sits in the order.
These are counts in one KanjiVG snapshot. A count is not a rule.
When the longest stroke has been drawn it flashes and then stays indigo. Click a plate to replay. With reduced motion the finished character stays still, and the mark stays. The flash is optional data-longest-stroke. A plate without it does not flash a stroke. The plate stays cream in either theme. The draw timings are unchanged.
- The longest stroke
On this page
How the longest stroke is chosen
- The longest stroke
- The length is the arc length on Stroke length and order. A cubic and a smooth cubic are replaced by 24 straight chords at equal parameter steps. The length is the sum of those chords. A moveto does not add a jump. The stored length is that sum, rounded half away from zero to a hundredth. The longest stroke is the stroke of greatest stored length. The helper is
length_ofintools/stroke_length.py. - A tie
- When two or more strokes share that stored length, the earliest stroke number is the one classified. That is the stroke the stroke-length page stores as at.
- The finished box
- The axis-aligned bounding box of every sample of every stroke. The samples are the vertices of those chords. Top is the smaller y. In the SVG, y grows downward. The centre is the centre of that box.
- A frame stroke
- The stroke’s samples meet two opposite sides of the finished box, within 3/2. Opposite sides are left and right, or top and bottom. 3/2 is half the stroke width 3 written on the stroke group. The closed test allows a slack of 1e-9.
- A spine
- The distance from the centre to the stroke is the minimum distance from the centre to a chord. That distance is rounded half away from zero to a hundredth. A spine is a stored distance of at most 10.00.
- Both
- A stroke that is a frame stroke and a spine is both. It is counted in that row alone. Frame on this page is the frame test without the spine test. Spine is the spine test without the frame test. Neither is neither test. The four rows add to 2,136.
- Rank
- The rank of stroke k in a character of n strokes is k/n. The rank tenth is b = ⌈10k/n⌉ − 1, so k/n lies in (b/10, (b+1)/10]. The helper is rank_tenth in tools/stroke_tempo.py. The last tenth is the bin (0.9, 1]. Every last stroke falls there.
- What the neighbouring pages count
- Stroke length and order records every stroke’s length, the last stroke against the character mean, and where the unique longest stroke falls in the order. This page uses that length and that tie rule, and leaves the histogram and the rank correlation there. Enclosing frames counts each top-level slot whose kvg:position is kamae, tare, or nyo. The box on this page is the finished bounding box of the samples.
Four classes
Both, frame, spine, and neither partition the 2,136 characters. The total row says so. The last-tenth column is the characters whose longest stroke has rank k/n in (0.9, 1]. That column adds to the last-tenth total. The share beside a class is that count over 2,136, in percent to one decimal, rounded half up. The share beside a last-tenth count is that count over the class.
| Class | Characters | Share | Last tenth | Share of the class |
|---|
Rank in the order
Each row is one tenth of k/n. Both, frame, spine, and neither add to the row. The ten rows add to 2,136, and each column adds to its class. The total row says so.
| Rank tenth | Both | Frame | Spine | Neither | Total |
|---|
Plates
Both
Frame
Spine
Neither
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. Length: Stroke length and order.