【2024年4月】弊社では、基本リモートワークで一緒に成長してくださるメンバーを広く募集させていただいております。 詳細はこちら

【Flutter】図形(CustomPaint)の作成方法からカスタマイズ方法までの完全ガイド!

【Flutter】図形(CustomPaint)の作成方法からカスタマイズ方法までの完全ガイド!
いちの

こんばんは〜
弊社ブログに辿り着いていただきありがとうございます!
株式会社メモリアインクのいちのです

この記事を読んでわかること

  • CustomPaintについて
  • 円形の描画
  • 三角形の描画
  • 四角形の描画
  • 直線の描画
  • 波線の描画

開発環境

  • Dart 3.0.0
  • Flutter 3.10.0
目次

CustomPaintについて

CustomPaintウィジェットを使用することで、Flutterで自由にグラフィックを描画することができます。CustomPainterクラスを継承したクラスを作り、そこに描画ロジックを記述します。

円形の描画

概要

円形を描画するには、drawCircleメソッドを使用します。以下にサンプルコードを示します。

サンプルコード

// 円を描画する
canvas.drawCircle(
  Offset(100.0, 100.0), // 円の中心を指定する
  50.0, // 円の半径を指定する
  Paint()..color = Colors.blue, // 描画する円の色を青に設定する
);

サンプルコードの解説

  • 3行目で円の中心点をOffsetで指定しています。
  • 4行目で円の半径を指定します。この例では50.0の半径を持つ円を描いています。
  • 5行目でPaintオブジェクトを用いて、描画する円の色を設定しています。この例では青色で円を描きます。

表示確認

いちの

それでは、表示を確認してみましょ〜

【Flutter】図形(CustomPaint)の描画(円形)

三角形の描画

概要

三角形を描画するためには、drawPathメソッドとPathクラスを使用します。以下のコードは三角形を描画する方法を示しています。

サンプルコード

// 三角形を描画する
Path path = Path(); // Pathオブジェクトを生成する
path.moveTo(100.0, 100.0); // 描画開始点を設定する
path.lineTo(150.0, 200.0); // 一つ目の頂点への線を描画する
path.lineTo(50.0, 200.0); // 二つ目の頂点への線を描画する
path.close(); // パスを閉じることで、最初の点に戻る
canvas.drawPath(path, Paint()..color = Colors.green); // 三角形の色を緑に設定して描画する

サンプルコードの解説

  • 2行目でPathオブジェクトを生成します。これを使って描画のパス(軌跡)を定義します。
  • 3行目でmoveToメソッドを使用して、描画の開始点を指定します。
  • 4行目と5行目でlineToメソッドを使用して、三角形の頂点を指定し、線を描画します。
  • 6行目でpath.close()を呼び出すことにより、パスを閉じて三角形を完成させます。
  • 7行目で三角形を描画します。ここでは色を緑に設定しています。

表示確認

いちの

それでは、表示を確認してみましょ〜

【Flutter】図形(CustomPaint)の描画(三角形)

四角形の描画

概要

四角形の描画にはdrawRectメソッドを使用します。以下に四角形を描画するサンプルコードを示します。

サンプルコード

// 四角形を描画する
canvas.drawRect(
  Rect.fromLTWH(50.0, 100.0, 100.0, 150.0), // 四角形の位置とサイズを指定する
  Paint()..color = Colors.red, // 描画する四角形の色を赤に設定する
);

サンプルコードの解説

  • 3行目でRect.fromLTWHを使用して、四角形の左上の点と幅、高さを指定します。
  • 4行目で四角形の色を赤に設定します。

表示確認

いちの

それでは、表示を確認してみましょ〜

【Flutter】図形(CustomPaint)の描画(四角形)

直線の描画

概要

直線を描画するにはdrawLineメソッドを使用します。以下に直線を描画するサンプルコードを示します。

サンプルコード

// 直線を描画する
canvas.drawLine(
  Offset(100.0, 100.0), // 開始点を指定する
  Offset(200.0, 200.0), // 終了点を指定する
  Paint()..color = Colors.black, // 描画する線の色を黒に設定する
);

サンプルコードの解説

  • 3行目で線の開始点を指定します。
  • 4行目で線の終了点を指定します。
  • 5行目で線の色を黒に設定します。

表示確認

いちの

それでは、表示を確認してみましょ〜

【Flutter】図形(CustomPaint)の描画(直線)

波線の描画

概要

波線を描画するにはdrawPathメソッドとPathクラスを使い、波の形を定義します。以下に波線を描画するサンプルコードを示します。

サンプルコード

// 波線を描画する
Path path = Path(); // Pathオブジェクトを生成する
path.moveTo(0, 100); // 描画開始点を設定する
for (int i = 0; i < 10; i++) {
  path.quadraticBezierTo(
    i * 50 + 25, i % 2 == 0 ? 150 : 50, // 波の頂点を計算する
    i * 50 + 50, 100, // 波の谷を計算する
  );
}
canvas.drawPath(path, Paint()..color = Colors.blue); // 波線を青色で描画する

サンプルコードの解説

  • 2行目でPathオブジェクトを生成し、描画のパスを定義します。
  • 3行目で描画の開始点を指定します。
  • 6行目と7行目でquadraticBezierToメソッドを使用して、波の形を描きます。このメソッドはベジェ曲線を描くために使用されます。
  • 10行目で定義したパスに沿って波線を描画します。ここでは色を青に設定しています。

表示確認

いちの

それでは、表示を確認してみましょ〜

【Flutter】図形(CustomPaint)の描画(波線)

まとめ

いかがでしたでしょうか?今回は、図形(CustomPaint)の作成方法からカスタマイズ方法について、サンプルコードを用いて解説してみました。読者様の開発の手助けに少しでもなればいいなと思いこの記事を書かせていただいております。弊社ではAndroid、iOS、Flutterを使ったアプリ開発についてのブログを多数投稿させていただいておりますので、ご興味のある方はぜひ!

いちの

自分の成長を加速させるチャンスがどこかにあるかもしれません。
変化を恐れずに新たな環境に飛び込む勇気のある方は、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
をオススメします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次