私はキャンバスベースのアプリケーションで作業していますが、私はテキストの垂直方向の整列にいくつかの問題があります。私は浮動小数点座標を使用していますが、これは問題の原因だと思います。私は確信していませんが、それにもかかわらず解決策を探しています。とにかく、私は正方形の文字「O」を表示するために使用するコードは、例えば、次のとおりですキャンバステキストの垂直方向の整列
context.fillRect(0, 0, 21.864951768488744, 21.864951768488744);
context.textBaseline = 'middle';
context.textAlign = alignLeft ? 'left' : 'center';
context.fillText('O', 10.932475884244372, 10.932475884244372);
キャンバス上の結果が「O」が水平に中心が、約1配置されていることである - 2中央より上のピクセル。
誰もがこれについて考えていますか?
フォントが実際に自然に中央ではない可能性がありますか?どのフォントを使用していますか?いくつかのフォントは、異なるシステム上で目立って異なる位置に表示されることがあります(時には驚くほど厄介です)。 – DBS
私はArialを使用しています。 – Peter
縦の位置合わせは、フォントのベースラインを参照します。それぞれのキャラクターは、垂直にセンタリングされていません。または、テキストのディップ&ライズキャラクターが表示されます。背の高い文字である大文字の「O」は、同じフォントの短い文字よりも垂直方向に伸びやすいでしょう。 – markE