|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.awt.MultipleGradientPaint
java.awt.RadialGradientPaint
public final class RadialGradientPaint
RadialGradientPaint 類別提供使用圓形輻射顏色漸變網要填充某一形狀的方式。使用者可以指定兩種或多種漸變顏色,此繪製將在顏色與顏色之間提供一個插值。
使用者必須指定用於控制漸變網要的圓,可用中心點和半徑對該圓進行描述。使用者也可以在該圓內部指定一個獨立焦點,由它控制漸變的第一種顏色的位置。預設情況下,該焦點被設置為圓心。
此繪製將漸變的第一種顏色映射到焦點,將漸變的最後一種顏色映射到圓周,在兩者之間平滑地插入使用者指定的任意中間顏色。因此,從焦點到圓周之間繪製的任何直線都將跨越所有漸變顏色。
在圓的半徑外部指定焦點將導致焦點被設置為焦點-中心線與圓周的交點。
使用者必須提供一個 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);
此圖像用預設(居中)焦點演示了對以上範例程式碼使用三種循環方法時的情形:
它也可以使用以下程式碼指定一個非居中的焦點:
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);
此圖像演示了對上述範例程式碼(使用了非居中焦點)使用三種循環方法時的情形:
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 範圍內的數字,用於指定沿漸變的顏色分佈在漸變中使用的顏色陣列。第一種顏色用於焦點處,最後一種顏色環繞在圓周上。 - 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 範圍內的數字,用於指定沿漸變的顏色分佈在漸變中使用的顏色陣列。第一種顏色用於焦點處,最後一種顏色環繞在圓周上。 - cycleMethod - NO_CYCLE、REFLECT 或 REPEATcolorSpace - 用於插值操作的顏色空間,該參數為 SRGB 或 LINEAR_RGBgradientTransform - 要應用於漸變的變換
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,則為 null 的 ColorModel 參數將給予 Paint 實作完全的選擇餘地,使其在光柵處理中使用其首選最高效的 ColorModel。
因為 API 文檔在 1.4 版本之前沒有關於此項的具體描述,因此可能有一些 Paint 實作不能接受 null ColorModel 參數。如果開發人員正在編寫程式碼將 null ColorModel 參數從任意源傳遞給 Paint 物件的 createContext 方法,則為了實作安全的編碼,應該為這些物件建構一個非 null ColorModel,使其拋出 NullPointerException。
cm - 接收 Paint 資料的 ColorModel。這只用作一個提示。deviceBounds - 正在呈現的圖形圖元的設備空間邊界框userBounds - 正在呈現的圖形圖元的使用者空間邊界框transform - 從使用者空間到設備空間的 AffineTransformhints - 上下文物件用於選擇所呈現內容的提示
PaintContextPaintContextpublic Point2D getCenterPoint()
Point2D 物件,它是中心點的副本public Point2D getFocusPoint()
Point2D 物件,它是焦點的副本public float getRadius()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。