public final class RadialGradientPaint extends MultipleGradientPaint
RadialGradientPaint
クラスは、Shapeを色の円放射状グラデーション・パターンで塗りつぶす方法を提供します。ユーザーはグラデーションの色を2色以上指定でき、この場合の描画では、各色の間の補間が行われます。
ユーザーは、グラデーション・パターンを制御する円を指定する必要があります。この円は、中心点と半径で記述されます。その円内にある別の焦点を指定することもできます。焦点は、グラデーションの最初の色の位置を制御します。デフォルトでは、焦点は、円の中心に設定されます。
この描画は、グラデーションの最初の色を焦点にマップし、最後の色を円周にマップして、その間にあるユーザーが指定した色についてはなめらかに補間します。そのため焦点から円周へと描画されるあらゆる線は、すべてのグラデーションの色を横断します。
焦点を円の半径の外側に指定すると、その焦点の方向にある円周のすぐ内側の点に、グラデーション・パターンの輪の中心が配置されます。描画では、この変更後の位置を、指定された焦点として内部的に使用します。
ユーザーは、グラデーションでの色の分布方法を指定するfloat配列を指定する必要があります。これらの値は0.0 - 1.0の範囲内にあって、グラデーションに沿ったキー・フレームのように機能する必要があります。これらの値によって、グラデーションを厳密に特定の色にする位置をマークします。
ユーザーが最初のキー・フレーム値を0に設定しない場合や、最後のキー・フレーム値を1に設定しない場合は、キー・フレームがその位置に作成され、最初の色や最後の色がその位置に複製されます。そのため、ユーザーがグラデーションを構築するために次の配列を指定した場合、
{Color.BLUE, Color.RED}, {.3f, .7f}これは、次のキー・フレームを持つグラデーションに変換されます。
{Color.BLUE, Color.BLUE, Color.RED, Color.RED}, {0f, .3f, .7f, 1f}
ユーザーは、CycleMethod
をREFLECTION
またはREPEAT
に設定することによって、円の半径の外側の領域を塗りつぶすときにRadialGradientPaint
オブジェクトで実行される動作を選択することもできます。グラデーションの色の比率は、焦点から引かれたどの直線でも等しくなります。次の図は、距離ABが距離BCと等しく、距離ADが距離DEと等しいことを示しています。
NO_CYCLE
が選択されます。つまり、残りの領域を塗りつぶすために最後のキー・フレームの色が使用されます。
colorSpaceパラメータでは、補間が実行されるカラー・スペース(デフォルトのsRGBまたは線形化されたRGB)を指定できます。
次のコードは、中心点と焦点が同一の場合のRadialGradientPaint
の一般的な使い方を示しています。
Point2D center = new Point2D.Float(50, 50); float radius = 25; float[] dist = {0.0f, 0.2f, 1.0f}; Color[] colors = {Color.RED, Color.WHITE, Color.BLUE}; RadialGradientPaint p = new RadialGradientPaint(center, radius, dist, colors);
3つの循環方法のそれぞれについて、焦点がデフォルトの(中心点に合わされた)ときの上記のコード例の結果は次のイメージのようになります。
次のコードのように、中心点に合わされていない焦点を指定することもできます。
Point2D center = new Point2D.Float(50, 50); float radius = 25; Point2D focus = new Point2D.Float(40, 40); float[] dist = {0.0f, 0.2f, 1.0f}; Color[] colors = {Color.RED, Color.WHITE, Color.BLUE}; RadialGradientPaint p = new RadialGradientPaint(center, radius, focus, dist, colors, CycleMethod.NO_CYCLE);
3つの循環方法のそれぞれについて、焦点が中心点に合わされていないときの上記のコード例の結果は次のイメージのようになります。
Paint
, Graphics2D.setPaint(java.awt.Paint)
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod
BITMASK, OPAQUE, TRANSLUCENT
コンストラクタと説明 |
---|
RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors)
中心を焦点として使用して、デフォルトの
NO_CYCLE 繰返しメソッドとSRGB カラー・スペースでRadialGradientPaint を構築します。 |
RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
中心を焦点として使用して、デフォルトの
SRGB カラー・スペースでRadialGradientPaint を構築します。 |
RadialGradientPaint(float cx, float cy, float radius, float fx, float fy, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
デフォルトの
SRGB カラー・スペースでRadialGradientPaint を構築します。 |
RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors)
中心を焦点として使用して、デフォルトの
NO_CYCLE 繰返しメソッドとSRGB カラー・スペースでRadialGradientPaint を構築します。 |
RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
中心を焦点として使用して、デフォルトの
SRGB カラー・スペースでRadialGradientPaint を構築します。 |
RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
デフォルトの
SRGB カラー・スペースでRadialGradientPaint を構築します。 |
RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
RadialGradientPaint を構築します。 |
RadialGradientPaint(Rectangle2D gradientBounds, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
デフォルトの
SRGB カラー・スペースでRadialGradientPaint を構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
PaintContext |
createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
色の円放射状グラデーション・パターンを生成するために使用される
PaintContext を作成して返します。 |
Point2D |
getCenterPoint()
放射状グラデーションの中心点のコピーを返します。
|
Point2D |
getFocusPoint()
放射状グラデーションの焦点のコピーを返します。
|
float |
getRadius()
放射状グラデーションを定義する円の半径を返します。
|
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency
public RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors)
NO_CYCLE
繰返しメソッドとSRGB
カラー・スペースでRadialGradientPaint
を構築します。cx
- グラデーションを定義する円の中心点のユーザー空間内のX座標。グラデーションの最後の色は、この円の円周にマップされるcy
- グラデーションを定義する円の中心点のユーザー空間内のY座標。グラデーションの最後の色は、この円の円周にマップされるradius
- 色のグラデーションの広がりを定義する円の半径fractions
- グラデーションに沿った色の分布を指定する、0.0から1.0までの範囲の数値colors
- グラデーションで使用する色の配列。最初の色は焦点で使用され、最後の色は円周で使用されるNullPointerException
- fractions
配列がnullであるかcolors
配列がnullである場合IllegalArgumentException
- radius
が正でない場合、fractions.length != colors.length
である場合、colors
のサイズが2がより小さい場合、fractions
値が0.0より小さいか1.0より大きい場合、またはfractions
が厳密に昇順で指定されていない場合public RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors)
NO_CYCLE
繰返しメソッドとSRGB
カラー・スペースでRadialGradientPaint
を構築します。center
- グラデーションを定義する円のユーザー空間内の中心点radius
- 色のグラデーションの広がりを定義する円の半径fractions
- グラデーションに沿った色の分布を指定する、0.0から1.0までの範囲の数値colors
- グラデーションで使用する色の配列。最初の色は焦点で使用され、最後の色は円周で使用されるNullPointerException
- center
点がnullの場合、fractions
配列がnullの場合、またはcolors
配列がnullの場合IllegalArgumentException
- radius
が正でない場合、fractions.length != colors.length
である場合、colors
のサイズが2がより小さい場合、fractions
値が0.0より小さいか1.0より大きい場合、またはfractions
が厳密に昇順で指定されていない場合public RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
SRGB
カラー・スペースでRadialGradientPaint
を構築します。cx
- グラデーションを定義する円の中心点のユーザー空間内のX座標。グラデーションの最後の色は、この円の円周にマップされるcy
- グラデーションを定義する円の中心点のユーザー空間内のY座標。グラデーションの最後の色は、この円の円周にマップされるradius
- 色のグラデーションの広がりを定義する円の半径fractions
- グラデーションに沿った色の分布を指定する、0.0から1.0までの範囲の数値colors
- グラデーションで使用する色の配列。最初の色は焦点で使用され、最後の色は円周で使用されるcycleMethod
- NO_CYCLE
、REFLECT
、REPEAT
のいずれかNullPointerException
- fractions
配列がnullであるか、colors
配列がnullであるか、またはcycleMethod
がnullである場合IllegalArgumentException
- radius
が正でない場合、fractions.length != colors.length
である場合、colors
のサイズが2がより小さい場合、fractions
値が0.0より小さいか1.0より大きい場合、またはfractions
が厳密に昇順で指定されていない場合public RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
SRGB
カラー・スペースでRadialGradientPaint
を構築します。center
- グラデーションを定義する円のユーザー空間内の中心点radius
- 色のグラデーションの広がりを定義する円の半径fractions
- グラデーションに沿った色の分布を指定する、0.0から1.0までの範囲の数値colors
- グラデーションで使用する色の配列。最初の色は焦点で使用され、最後の色は円周で使用されるcycleMethod
- NO_CYCLE
、REFLECT
、REPEAT
のいずれかNullPointerException
- center
点がnullの場合、fractions
配列がnullの場合、colors
配列がnullの場合、またはcycleMethod
がnullの場合IllegalArgumentException
- radius
が正でない場合、fractions.length != colors.length
である場合、colors
のサイズが2がより小さい場合、fractions
値が0.0より小さいか1.0より大きい場合、またはfractions
が厳密に昇順で指定されていない場合public RadialGradientPaint(float cx, float cy, float radius, float fx, float fy, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
SRGB
カラー・スペースでRadialGradientPaint
を構築します。cx
- グラデーションを定義する円の中心点のユーザー空間内のX座標。グラデーションの最後の色は、この円の円周にマップされるcy
- グラデーションを定義する円の中心点のユーザー空間内のY座標。グラデーションの最後の色は、この円の円周にマップされるradius
- 色のグラデーションの広がりを定義する円の半径fx
- 最初の色がマップされる、ユーザー空間内の点のX座標fy
- 最初の色がマップされる、ユーザー空間内の点のY座標fractions
- グラデーションに沿った色の分布を指定する、0.0から1.0までの範囲の数値colors
- グラデーションで使用する色の配列。最初の色は焦点で使用され、最後の色は円周で使用されるcycleMethod
- NO_CYCLE
、REFLECT
、REPEAT
のいずれかNullPointerException
- fractions
配列がnullであるか、colors
配列がnullであるか、またはcycleMethod
がnullである場合IllegalArgumentException
- radius
が正でない場合、fractions.length != colors.length
である場合、colors
のサイズが2がより小さい場合、fractions
値が0.0より小さいか1.0より大きい場合、またはfractions
が厳密に昇順で指定されていない場合public RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
SRGB
カラー・スペースでRadialGradientPaint
を構築します。center
- グラデーションを定義する円のユーザー空間内の中心点。グラデーションの最後の色は、この円の円周にマップされるradius
- 色のグラデーションの広がりを定義する円の半径focus
- 最初の色がマップされる先のユーザー空間内の点fractions
- グラデーションに沿った色の分布を指定する、0.0から1.0までの範囲の数値colors
- グラデーションで使用する色の配列。最初の色は焦点で使用され、最後の色は円周で使用されるcycleMethod
- NO_CYCLE
、REFLECT
、REPEAT
のいずれかNullPointerException
- いずれかの点がnullであるか、fractions
配列がnullであるか、colors
配列がnullであるか、またはcycleMethod
がnullである場合IllegalArgumentException
- radius
が正でない場合、fractions.length != colors.length
である場合、colors
のサイズが2がより小さい場合、fractions
値が0.0より小さいか1.0より大きい場合、またはfractions
が厳密に昇順で指定されていない場合@ConstructorProperties(value={"centerPoint","radius","focusPoint","fractions","colors","cycleMethod","colorSpace","transform"}) public RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
RadialGradientPaint
を構築します。center
- グラデーションを定義する円のユーザー空間内の中心点。グラデーションの最後の色は、この円の円周にマップされるradius
- 色のグラデーションの広がりを定義する円の半径focus
- 最初の色がマップされる先のユーザー空間内の点fractions
- グラデーションに沿った色の分布を指定する、0.0から1.0までの範囲の数値colors
- グラデーションで使用する色の配列。最初の色は焦点で使用され、最後の色は円周で使用されるcycleMethod
- NO_CYCLE
、REFLECT
、REPEAT
のいずれかcolorSpace
- 補間に使用するカラー・スペースであり、SRGB
またはLINEAR_RGB
のどちらかgradientTransform
- グラデーションに適用する変換NullPointerException
- いずれかの点がnullであるか、fractions
配列がnullであるか、colors
配列がnullであるか、cycleMethod
がnullであるか、colorSpace
がnullであるか、またはgradientTransform
がnullである場合IllegalArgumentException
- radius
が正でない場合、fractions.length != colors.length
である場合、colors
のサイズが2がより小さい場合、fractions
値が0.0より小さいか1.0より大きい場合、またはfractions
が厳密に昇順で指定されていない場合public RadialGradientPaint(Rectangle2D gradientBounds, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
SRGB
カラー・スペースでRadialGradientPaint
を構築します。RadialGradientPaint
のグラデーションの円は、指定されたバウンディング・ボックスで定義されます。
このコンストラクタを使用すると、次のコードまたはそれと同等のコードをより簡単に表現できます。
double gw = gradientBounds.getWidth(); double gh = gradientBounds.getHeight(); double cx = gradientBounds.getCenterX(); double cy = gradientBounds.getCenterY(); Point2D center = new Point2D.Double(cx, cy); AffineTransform gradientTransform = new AffineTransform(); gradientTransform.translate(cx, cy); gradientTransform.scale(gw / 2, gh / 2); gradientTransform.translate(-cx, -cy); RadialGradientPaint gp = new RadialGradientPaint(center, 1.0f, center, fractions, colors, cycleMethod, ColorSpaceType.SRGB, gradientTransform);
gradientBounds
- ユーザー空間で、グラデーションのもっとも外側の広がりを定義する円のバウンディング・ボックスfractions
- グラデーションに沿った色の分布を指定する、0.0から1.0までの範囲の数値colors
- グラデーションで使用する色の配列。最初の色は焦点で使用され、最後の色は円周で使用されるcycleMethod
- NO_CYCLE
、REFLECT
、REPEAT
のいずれかNullPointerException
- gradientBounds
がnullの場合、fractions
配列がnullの場合、colors
配列がnullの場合、またはcycleMethod
がnullの場合IllegalArgumentException
- gradientBounds
が空の場合、fractions.length != colors.length
である場合、colors
のサイズが2がより小さい場合、fractions
値が0.0より小さいか1.0より大きい場合、またはfractions
が厳密に昇順で指定されていない場合public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
PaintContext
を作成して返します。nullパラメータの処理については、createContext
メソッドを参照してください。cm
- 呼出し元がピクセル・データを受信するためのもっとも便利な形式を表す推奨されるColorModel
、または推奨値がない場合はnull
。deviceBounds
- 描画されるグラフィックス・プリミティブのデバイス空間でのバウンディング・ボックス。userBounds
- 描画されるグラフィックス・プリミティブのユーザー空間でのバウンディング・ボックス。transform
- ユーザー空間からデバイス空間へのAffineTransform
。hints
- コンテキスト・オブジェクトが描画の選択肢の中から選択するために使用できるヒントのセット。PaintContext
。Paint
, PaintContext
, ColorModel
, Rectangle
, Rectangle2D
, AffineTransform
, RenderingHints
public Point2D getCenterPoint()
Point2D
オブジェクトpublic Point2D getFocusPoint()
Point2D
オブジェクトpublic float getRadius()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.