次の方法で共有


ブラシと図形の塗りつぶし

四角形や楕円などの閉じた図形は、アウトラインと内部で構成されます。 アウトラインは Pen オブジェクトで描画され、内部は Brush オブジェクトで塗りつぶされます。 Windows GDI+ には、閉じた図形の内部を塗りつぶすブラシ クラスがいくつか用意されています。 SolidBrushHatchBrushTextureBrushLinearGradientBrushPathGradientBrush です。 これらのクラスはすべて Brush クラスから継承されます。 次の図は、単色ブラシで塗りつぶされた四角形と、ハッチ ブラシで塗りつぶされた楕円を示しています。

青い四角形と青いハッチ パターンで塗りつぶされたマゼンタの楕円を示す図

 

単色ブラシ

閉じた図形を塗りつぶすには、 Graphics オブジェクトと Brush オブジェクトが必要です。 Graphics オブジェクトは FillRectangleFillEllipse などのメソッドを提供し、Brush オブジェクトは塗りつぶしの属性 (色やパターンなど) を格納します。 Brush オブジェクトのアドレスは、引数の 1 つとして fill メソッドに渡されます。 次の使用例は、楕円に赤い純色を塗りつぶします。

SolidBrush mySolidBrush(Color(255, 255, 0, 0));
myGraphics.FillEllipse(&mySolidBrush, 0, 0, 60, 40);

前の例では、ブラシは Brush から継承される SolidBrush 型であることに注意 してください

ハッチ ブラシ

ハッチ ブラシを使用して図形を塗りつぶす場合は、前景色、背景色、およびハッチ スタイルを指定します。 前景色はハッチの色を表します。

HatchBrush myHatchBrush(
   HatchStyleVertical, 
   Color(255, 0, 0, 255),
   Color(255, 0, 255, 0));

GDI+ には、 HatchStyle で指定された 50 を超えるハッチ スタイルが用意されています。 次の図に示す 3 つのスタイルは、Horizontal、ForwardDiagonal、Cross です。

それぞれ異なるハッチ スタイルを持つ 3 つのティール色の楕円を示す図

 

テクスチャ ブラシ

テクスチャ ブラシを使用すると、ビットマップに格納されているパターンで図形を塗りつぶすことができます。 たとえば、次の図が MyTexture.bmp という名前のディスク ファイルに格納されるとします。

さまざまな色で満たされた小さな正方形のスクリーンショット

次の使用例は、MyTexture.bmpに格納されている図を繰り返して省略記号を塗りつぶします。

Image myImage(L"MyTexture.bmp");
TextureBrush myTextureBrush(&myImage);
myGraphics.FillEllipse(&myTextureBrush, 0, 0, 100, 50);

次の図は、塗りつぶされた楕円を示したものです。

前に定義したパターンで塗りつぶされた楕円を示す図

 

グラデーション ブラシ

グラデーション ブラシを使用すると、図形の一部から別の部分に徐々に変化する色で図形を塗りつぶすことができます。 たとえば、図の左側から右側に移動すると、水平方向のグラデーション ブラシの色が変わります。 次の使用例は、楕円の左側から右側に移動すると青から緑に変化する水平グラデーション ブラシで楕円を塗りつぶします。

LinearGradientBrush myLinearGradientBrush(
   myRect,
   Color(255, 0, 0, 255),
   Color(255, 0, 255, 0),
   LinearGradientModeHorizontal);
myGraphics.FillEllipse(&myLinearGradientBrush, myRect); 

次の図は、塗りつぶされた楕円を示したものです。

グラデーションの塗りつぶしを持つ楕円を示す図: 右側は青、左側は緑色

図形の中心から境界に向かって移動する際に、色を変更するようにパス グラデーション ブラシを構成できます。

中心に濃い青色の楕円を配置し、エッジで薄い青色に網掛けする

パス グラデーション ブラシには非常に柔軟性があります。 次の図の三角形の塗りつぶしに使用したグラデーション ブラシは、中心の赤色から各頂点の 3 つの異なる色に徐々に変化しています。

中心に赤い三角形の図、各頂点で異なる色に網かけ