※ ChatGPTを利用し、要約された質問です(原文:C#、太らせた多角形を塗りつぶす方法)
C#で太らせた多角形を塗りつぶす方法
このQ&Aのポイント
C#で点列で囲まれる多角形を塗りつぶす方法としてFillPolygonを使うことができますが、多角形をnピクセル太らせた領域を塗りつぶすにはどうしたらよいでしょうか。
一つのアイデアは、多角形を太らせた新しい多角形を作り、元の多角形の角に半径nの円を描く方法です。
例えば、三角形ABCの場合、A'B'B''C''A''の六角形を作り、A、B、Cの中心に半径nの円を描くことになります。しかし、ABを太らせるために平行移動したA'B''を求めるのは面倒であるため、もっと簡単な方法があるかどうか質問しました。
言語はC#です。
点列を与えて、その点列で囲まれる多角形を塗りつぶすのはFillPolygonを使って、
Point[] pa;
SolidBrush brush1 = new SolidBrush(Color.Blue);
g.FillPolygon(brush1, pa);
でできますが、多角形をnピクセル太らせた領域を塗りつぶすにはどうしたらよいでしょう。
考えたのは、
多角形を太らせた新多角形をつくり、
元多角形の角に半径nの円を描く
という方法です。
三角形ABCの場合、A'B"B'C"C'A"の6角形をつくり、A,B,Cを中心に3つ半径nの円を書くことになります。コーディングし始めたら、ABを太らせるために平行移動したA'B"を求めるのが結構面倒なので、そもそももっと簡便な方法があるかと思い、質問しました。
お礼
回答ありがとうございます。 なるほど、太らせた外側の多角形を作るのではなく、オリジナルの多角形を太いnピクセル幅の直線で画くわけですね。 助かりました。