フォント
自前のフォント描画プログラムを使って、四角い図形の上に上下左右センタリングして文字を描画した。
文字列は「LOAD」「SAVE」「WIDTH」「HEIGHT」とかそんなの。
フォントはある等幅フォント。
画面に描画された状態をチェックするとあきらかに図形の中心より2、3ピクセル下にずれているように見える。
デバックをしてみたが、きちんとフォントの高さは生成したときと同じ18ピクセルと取得できる。
フォント生成ツールも描画ルーチンも自前だったので、いろいろな場所を疑って1日経過したが原因がつかめない…。
そこで発想をかえてAdobeのPhotoshopElementsで同じものを描画したらどうなるか確認してみた…。
グリッドは18ピクセルで区切り、フォントも等幅18ピクセル。
あれ?やっぱり大文字は上にずれて見える。
小文字もやってみたが大文字ほどではないにしろ、下に少しずれて見える…。
実はすでに1文字目を打った時点で原因に気づいてしまった…。
そうか…。
こういうことか…。
私の自前ルーチンに記録されているフォントの高さは最大のものを記録しているだけだ。
大文字だけで構成された文字列をその値で四角い図形の上にセンタリングすると上にずれて見える(いや実際そうなんだけど)原因は「セルの高さ」と「文字列の高さ」は違うことに気がつかなかった自分にあったわけだ…くぅ。
そこで文字列の中で一番高い縦幅を取得する関数を作って、その値でセンタリングをすることにした。
くぅ、こんなこと気づかないなんて…もう歳かしら…
| 固定リンク
「プログラミング」カテゴリの記事
- フォント(2008.04.10)
- Silverlight実習 その2(2008.03.04)
- Silverlight実習(2008.03.04)
- 開発ラッシュ(2008.02.23)
- VC++ 2005 セキュリティーコード(2007.09.20)
「プログラム」カテゴリの記事
- フォント(2008.04.10)
- VC++ 2005 セキュリティーコード(2007.09.20)
- SOFTIMAGE_XNAViewer(2007.08.24)
- [XNA]:XSI 6 Mod Tool(2007.08.18)
- C言語のmain関数について(2006.08.28)




















コメント