|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.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
或 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,則為 null 的 ColorModel 參數將給予 Paint 實作完全的選擇餘地,使其在光柵處理中使用其首選最高效的 ColorModel。
因為 API 文檔在 1.4 版本之前沒有關於此項的具體描述,因此可能有一些 Paint
實作不能接受 null ColorModel
參數。如果開發人員正在編寫程式碼將 null ColorModel
參數從任意源傳遞給 Paint
物件的 createContext
方法,則為了實作安全的編碼,應該為這些物件建構一個非 null ColorModel
,使其拋出 NullPointerException
。
cm
- 接收 Paint
資料的 ColorModel
。這只用作一個提示。deviceBounds
- 正在呈現的圖形圖元的設備空間邊界框userBounds
- 正在呈現的圖形圖元的使用者空間邊界框transform
- 從使用者空間到設備空間的 AffineTransform
hints
- 上下文物件用於選擇所呈現內容的提示
PaintContext
PaintContext
public 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。