|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.awt.MultipleGradientPaint java.awt.RadialGradientPaint
public final class RadialGradientPaint
RadialGradientPaint
クラスは、色の円放射状グラデーションパターンで形状を塗りつぶす手段を提供します。ユーザーはグラデーションの色を 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}
ユーザーは、円の半径の境界外部で色を塗りつぶすときに RadialGradientPaint
で実行される動作を選択することもできます。循環方法を指定しない場合は、デフォルトで 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)
入れ子のクラスの概要 |
---|
クラス java.awt.MultipleGradientPaint から継承された入れ子のクラス/インタフェース |
---|
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod |
フィールドの概要 |
---|
インタフェース java.awt.Transparency から継承されたフィールド |
---|
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()
放射状グラデーションを定義する円の半径を返します。 |
クラス java.awt.MultipleGradientPaint から継承されたメソッド |
---|
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
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
が厳密な昇順で指定されない場合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
を作成して返します。CreateContext に対する ColorModel 引数はヒントに過ぎないので、Paint の実装は ColorModel の引数に null を受け入れる必要があります。アプリケーションが特定の ColorModel を優先して使用しない場合、ColorModel の引数 null は Paint の実装で、ラスタ処理にもっとも効率的と思われる ColorModel を自由に使用できることになります。
API のドキュメントでは、バージョン 1.4 以前のリリースにおいてこの点を特に指定しなかったので、ColorModel
引数 null を受け入れない Paint
の実装がある可能性があります。開発者が任意のソースからの Paint
オブジェクトの createContext
メソッドに ColorModel
引数 null を渡すコードを記述する場合は、NullPointerException
をスローするこれらのコードに対して、null を使用しない ColorModel
を作成することにより、安全にコーディングすることが賢明です。
cm
- Paint
データを受け取る ColorModel
。これは単にヒントとして使用されるdeviceBounds
- 描画されるグラフィックスプリミティブのデバイス空間でのバウンディングボックスuserBounds
- 描画されるグラフィックスプリミティブのユーザー空間でのバウンディングボックスtransform
- ユーザー空間からデバイス空間への AffineTransform
hints
- コンテキストオブジェクトが描画の選択肢を選択するときに使用するヒント
PaintContext
PaintContext
public Point2D getCenterPoint()
Point2D
オブジェクトpublic Point2D getFocusPoint()
Point2D
オブジェクトpublic float getRadius()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。