Skip to main content

Module glyph_fill

Module glyph_fill 

Source
Expand description

グリフ塗りつぶしの区間計算(純粋モジュール)。

【2026-10-03】ラスタライザは even-odd 規則(交点を 2 個ずつ組にする)で塗っていた。 TrueType/OpenType の輪郭は non-zero(巻き数)規則で塗る決まりで、CJK フォント(Noto Sans JP 等)は 画を別々の輪郭として重ねて作ることが多い。even-odd だと重なりが穴になり、 sugi-lab.net の見出し「主な研究テーマ」の「主」で横画と縦画の交差部が白く抜けていた。

Functions§

nonzero_spans
1 本の走査線上の交点 (x, 向き) から、塗る区間 [開始, 終了) を non-zero 規則で求める。 向きは辺が y 増加方向なら +1、減少方向なら -1(輪郭の回り方向の符号。どちら向きを正にしても結果は同じ)。 crossings は x 昇順に並べ替えられる。