Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes the corrupted output of the gothic style.
ゴシック体の出力で筆画が欠けるなどの不具合を修正しました。
(関連するIssue: #3, Radically/hanazonolite#13 )
グリフウィキではゴシック体は生成されないのであまり注目されていないようですが、現状のKAGEエンジンのゴシック体出力には
という問題があります。
このうち1.の理由は、
Kage.adjustHane
やKage.adjustMage
で尾形状の100の位と1000の位が変更されうるのをdfDrawFont
のゴシック体処理部分が考慮していないためです。2.と3.は単純にゴシック体でまだ実装されていないためです。これらの問題を修正するため、次のような変更を行いました。
具体的な変更内容
kage.js
:Kage.adjustXXX
系関数で設定されるパラメータは実質的に明朝体でしか機能しておらず、明朝体特有の調節事項(ウロコ)もあるため、ゴシック体ではこれら関数を呼ばないように変更しました。(1.の修正)Kage.adjustXXX
系関数を呼ぶコードがKage.makeGlyph2
とKage.makeGlyph3
の2箇所にあったのを、1つの関数Kage.adjustStrokes
にまとめました。kagedf.js
:dfTransform
に抽出し、ゴシック体で再利用するようにしました。kagecd.js
:curve.js
(下記)にまとめました。curve.js
:kagecd.js
: 明朝体の2箇所 + ゴシック体の1箇所,curve.js
: 3箇所)を1つの関数calculateBezier
に抽出して再利用するようにしました。kUseCurve = true
としたときに 上向きの筆画のポリゴンが壊れるのを修正 #4 の修正漏れがあったのを修正しました。グリフウィキへの影響
修正されるのはゴシック体の出力(と明朝体で
kUseCurve = true
のときの出力)のみで、グリフウィキ上のグリフ画像への影響はありません。サンプル
twe_sandbox@99(上段)と u221b4-jv(下段)のゴシック体での出力を比較した画像です。(左:変更前、右:変更後、中:左右を重ねたもの)twe_sandbox@99 は上記1.と2.の問題を、 u221b4-jv は3.の問題を修正したことを示しています。