HTML5 Canvasでテキストを描画するための主要プロパティ徹底解説
HTML5のCanvas APIを使うと、JavaScriptだけでキャンバス上に自由にテキストを描画できます。テキストを扱う際に押さえておきたいのが、fontやtextAlign、fillText()などのプロパティとメソッドです。この記事では、それぞれの役割と設定できる値についてわかりやすく解説します。
textBaseline プロパティとは
textBaseline [ = value ] は、現在のベースライン(文字の縦方向の基準線)の位置を取得・設定するプロパティです。この値を変更することで、テキストをどの高さを基準に配置するかを制御できます。指定できる値は以下の通りです。
- top — 文字の最上部を基準に配置
- hanging — ハンギングベースラインを基準に配置(主にインド系文字向け)
- middle — 文字の中央を基準に配置
- alphabetic — 標準的なアルファベットのベースラインを基準に配置(デフォルト)
- ideographic — 漢字などの表意文字のベースラインを基準に配置
- bottom — 文字の最下部を基準に配置
テキスト作成に使える主なプロパティ一覧
| 番号 | プロパティと説明 |
|---|---|
| 1 | font [ = value ] 現在のフォント設定を返すプロパティです。値を設定することでフォントを変更できます。CSSのfontプロパティと同じ書式が使え、例えば ctx.font = '20px "MS Gothic", sans-serif'; のようにサイズ・種類・スタイルをまとめて指定できます。 |
| 2 | textAlign [ = value ] 現在のテキストの横方向の揃え位置を取得・設定するプロパティです。指定できる値は start、end、left、right、center の5種類です。 |
| 3 | textBaseline [ = value ] 現在のベースラインの位置を取得・設定するプロパティです。指定できる値は top、hanging、middle、alphabetic、ideographic、bottom の6種類です。 |
| 4 | fillText(text, x, y [, maxWidth ] ) 指定した座標 (x, y) の位置に、塗りつぶし(フィル)スタイルでテキストを描画するメソッドです。省略可能な第4引数 maxWidth を指定すると、テキストはその最大幅に収まるように縮小されます。 |
| 5 | strokeText(text, x, y [, maxWidth ] ) 指定した座標 (x, y) の位置に、輪郭線(ストローク)スタイルでテキストを描画するメソッドです。塗りつぶしではなく文字の枠線だけを描きたい場合に使用します。 |
使い方のポイント
テキストを描画する基本的な流れは、まず font でフォントを指定し、必要に応じて textAlign や textBaseline で位置を揃えてから、fillText() または strokeText() を呼び出す、という手順になります。これらを組み合わせることで、見出しやラベル、動的に生成される図形内の文字など、さまざまな場面で柔軟にテキストを配置できます。
-
JavaFXでCubicCurve(3次曲線)を作成・描画する方法を解説
3次曲線(Cubic Curve)とは3次曲線とは、2つの変数を含む3次多項式関数によって表される曲線のことです。滑らかなS字カーブなどを描く際に利用され、グラフィック描画の分野で広く使われています。JavaFXでは、この3次曲線をjavafx.scene.shape.CubicCurveクラスで表現します。このクラスには以下の8つのプロパティが用意されています。startX:曲線の始点のX座標。setStartX()メソッドで値を設定します。startY:曲線の始点のY座標。setStartY()メソッドで値を設定します。controlX1:第1制御点のX座標。setControlX1()メ
-
PythonとTkinterでデジタル時計を作成する方法【初心者向け解説】
Pythonの標準GUIライブラリ「Tkinter」を使えば、デスクトップアプリケーションを手軽に開発できます。本記事では、Tkinterを活用して、時・分・秒をリアルタイムに表示するデジタル時計を作成する方法を解説します。 デジタル時計の仕組み このプログラムでは、Pythonのtimeモジュールからstrftimeメソッドを使用し、「時:分:秒」形式で現在時刻を取得して表示します。具体的な流れは以下の通りです。 strftime(%H:%M:%S)で現在時刻を文字列として取得する Tkinterのラベル(Label)ウィジェットを作成し、時刻を表示する after()メソッドを使い、20