うしブログ

うしブログ

趣味で運営する、GeoGebraの専門ブログ。

(作業メモ)StartPoint要検証(2行の場合;テキスト変更時未定義問題)

テキストの高さ、および描画開始点の位置

テキストのピクセル

テキストオブジェクトは、スタイルバーまたはプリファレンスで、サイズを指定できる。選べるサイズは、微小(Extra Small)、特小(Very Small)、小(Small)、中(Medium)、大(Large)、特大(Very Large)、巨大(Extra Large)である(カッコ内は英語モードでの名前)。

下図は、スタイルバーでサイズを指定する際の画面である。

f:id:usiblog:20181007224357p:plain

テキストの幅は、文字の種類および数によって変化する。これに対して、テキストの高さは、文字の種類および数によらず一定である。

そして、テキストの高さは、フォントサイズと、テキストサイズによって変化する。

フォントサイズおよびテキストサイズと、テキストの高さおよび描画開始点の位置との間に、何らかの法則性を見出すことはできるだろうか。

 

以下の表は、フォントサイズの値(pt)およびテキストサイズの値(sizeM*1)に応じて、テキストの高さ、および描画開始点の位置を測定した結果である。

f:id:usiblog:20181107060324p:plain

表中の測定値は、ピクセル単位である。測定値の意味は、下図の通りである。

f:id:usiblog:20181107060432p:plain

詳細な分析

ptやsizeMの値を変化させたときの、各種測定値の変化を観察できるアプレットを作成した。

sizeMとテキストサイズ – GeoGebra

一般化

上記アプレットによる分析の結果、以下の法則が成り立っていることが確認できた。

① 高さ = floor(1.5floor( pt(sizeM-1) )+1.5pt+6)

② 隅4〜開始点の幅 = 3(一定)

③ 隅4〜開始点の高さ = floor( pt(sizeM-1) )+pt+3

④ size = ceil( pt(sizeM-1) )

バージョン情報

この記事の内容は、以下のバージョンのGeoGebraで検証した。

Version: 6.0.509.0-w (04 November 2018)

*1:sizeMは、XMLデータのfont タグ内にみられる値であり、テキストサイズの関数であると思われる。