簡単な図を描いてみよう!

パスという概念を理解して、直線を書こう!前回では矩形(四角形)を描くstrokeRectメソッドやfillRectメソッドを紹介しました。これらは、呼び出すだけで矩形の線を描いたり、塗りつぶした矩形を描いたりすることができ、非常に分かりやすいメソッドでした。しかし、これらのメソッドはCanvasに

羽田野 太巳

2008年5月8日 20:00

パスという概念を理解して、直線を書こう!

前回では矩形(四角形)を描くstrokeRectメソッドやfillRectメソッドを紹介しました。これらは、呼び出すだけで矩形の線を描いたり、塗りつぶした矩形を描いたりすることができ、非常に分かりやすいメソッドでした。しかし、これらのメソッドはCanvasにおいて例外的といっても良いでしょう。

通常、Canvasではパスという概念を使って図形を描きます。今回は、このパスの使い方について詳しく解説していきます。まずは、直線を書いていきましょう。

白い紙に鉛筆を使って線を描くシーンを想像してください。最初に、頭の中で線を描こうと考えますよね(beginPathメソッド)。次に、書き始める場所に鉛筆を置きます(moveToメソッド)。そして鉛筆を動かします(lineToメソッド)。これで線が描かれます。Canvasでも、これによく似たことをメソッドの呼び出しによって行うのです。ただし、Canvasではパスを定義しただけでは何も表示されません。パスを定義した後に、strokeメソッドを呼び出すことで線がパスの上に描かれます(リスト1)。


画像をクリックすると拡大します

beginPathメソッドは、これからパスを定義すると宣言するためのメソッドです。これを最初に呼び出さないと、期待通りにパスを定義できませんので、忘れないように呼び出してください。このメソッドに引数はありません。

moveToメソッドには、線の開始地点の座標を引数に与えます。そしてlineToメソッドには線の終了地点の座標を引数に与えます。moveToメソッドで指定した座標から、lineToメソッドで指定した座標まで結んだ直線がパスとして定義されます。このサンプルコードでは、横向きの直線を表すパスを定義したことになります。

Canvasではパスを定義しただけでは何も表示されません。最後にstrokeメソッドを呼び出すことで、初めてパス上に線が描かれます。

直線を連続して描く

直線を連続して一筆書きのように描きたい場合は、lineToメソッドを繰り返し呼び出します。ここでは、三角形を描くサンプルを見ていきましょう(リスト2)。

まずmoveToメソッドで開始点を指定します。次に、三角形の各頂点を結ぶように、lineToメソッドを呼び出します。

lineToメソッドは、呼び出される直前のパスの終点から、引数に与えられた座標を直線で結ぶパスを定義します。そのため、このサンプルのように異なる座標を指定しながら連続してlineToメソッドを呼び出すと、一筆書きのように直線を組み合わせたパスが定義できるのです。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30