次の方法で共有


ブラシと塗りつぶされた図形

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

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

 

ソリッド ブラシ

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

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

前の例では、ブラシは、ブラシから継承 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 つの異なる色に徐々に変化します。

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