(クラス)
public final Color
{inherits
Texture}
純色を表します。
説明
Color は不変です。
Color はデバイスに影響を受けない均一な色を表します。これは、その色の値が点ごとに異なる
Texture のサブクラスです。しかし、
Color の色の値はすべての点で同じです。
Color オブジェクトを直接インスタンス化する代わりに、通常は次の方法のいずれかで
Color オブジェクトを作成します。
- クラス プロシージャ Color.from-string#factory を呼び出し、その引数として、サポートされている色の名前を明確に記述する String を指定します。
- クラス プロシージャ Palette.get-<color> を呼び出します。これは Color.from-string "<color>" を呼び出すことと同じです。Palette の方が速いため、こちらの使用が推奨されます。
- クラス プロシージャ Color.from-string を呼び出し、その引数として、フォーム "#rrggbb" 又は "#rrggbbaa" の String を指定します。ここでrr、gg、bb および aa はそれぞれ赤、緑、青の色強度、アルファ チャネルの値を指定する 16 進数値のペアです。許可されている文字列のフォーマットに関する詳細は、Color.from-string#factory のドキュメンテーションを参照してください。
- Color.from-rgb#factory ファクトリーを使用します。
次のテーブルでは、色の名前を明確に記述する、サポートされている String を示します。必要な色を取得するためには、Palette.get-<color> または Color.from-string "<color>" を呼び出します。

Color は
FillPattern を必要とする場所で指定します。これは、
FillPattern が自動的に
Color を
FillPattern に変換するためです。そのため上記の形式のどれを使用しても、その型が
FillPattern であるグラフィック オプションの均一色を指定できます。
しかし、必要とされる FillPattern を直接指定することを推奨します。Color から FillPattern に変換すると、パフォーマンスに不利な条件を引き起こします。小さい場合はできれば避けるようにしてください。
例
次の例では、
Color オブジェクトを
Renderer3d および
Drawable でいくつか使用しています。
例:
Color の Drawable および Renderer3d での使用 |
 |
{import * from CURL.GRAPHICS.RENDERER3D}
|| This example uses Renderer3dGraphic because Color is
|| used with lower-level interfaces, such as Renderer3d
|| and Drawable, and Renderer3dGraphic is an easy way to
|| access these. Please see the chapter on 3D rendering in
|| the Developer's Guide for more information.
{Renderer3dGraphic
width=2cm,
height=2cm,
repaint-handler =
{proc {rg:Renderer3dGraphic,
r:Renderer3d,
area:#RectangleSet
}:void
{r.clear
color = {Color.from-string "#301070"}
}
{r.render-rectangle
0.1cm,
0.1cm,
0cm,
1.8cm,
1.8cm,
texture = {Palette.get-teal}
}
{r.render-rectangle
0.5cm,
0.5cm,
0cm,
1cm,
1cm,
texture =
{Color.from-rgb
0.8,
0.6,
0.15
}
}
}
}
| |
注意事項
default: | 0 から 1 までの rgb 値から Color を作成します。 |
ファクトリ public inline | {Color.default}:Color |
from-cmy: | 0 から 1 までの cmy 値から Color を作成します。 |
ファクトリ public inline | {Color.from-cmy}:Color |
ファクトリ public inline | {Color.from-cmyk}:Color |
ファクトリ public | {Color.from-hsv}:Color |
from-rgb: | 0 から 1 までの rgb 値から Color を作成します。 |
ファクトリ public inline | {Color.from-rgb}:Color |
ファクトリ public inline | {Color.from-rgb-float}:Color |
ファクトリ public inline | {Color.from-rgb-uint8}:Color |
from-string: | 色の名前を表す文字列を Color オブジェクトに変換しようとします。文字列は、定義済みの色の名前、または '#' で始まる 16 進数値の色の値のどちらかである必要があります。 |
blue: | 0 から 1 までの値としての rgb 青コンポーネント。 |
cyan: | 0 から 1 までの値として、cmy シアンブルー コンポーネントを返します。 |
green: | 0 から 1 までの値としての rgb 緑コンポーネント。 |
hue: | hsv の彩度を 0deg から 360deg の間の角度で返します。 |
mag-filter: | テクスチャの拡大で使用される FilterMode を返します。フレーム バッファのピクセルがテクスチャ ピクセルのサブエリアにマップする時、つまりテクスチャ マップがスクリーン座標のフレーム バッファより大きい時に、拡大が発生します。 |
magenta: | 0 から 1 までの値として cmy マゼンタ色コンポーネントを返します。 |
min-filter: | テクスチャの縮小で使用される FilterMode を返します。フレーム バッファのピクセルが多くのテクスチャ ピクセルにマップする時、つまりテクスチャ マップがスクリーン座標のフレーム バッファより小さい時に、縮小が発生します。 |
red: | 0 から 1 までの値としての rgb 赤コンポーネント。 |
アクセサ public Color.uniform?:
bool
value: | 0 から 1 までの値として hsv の値を返します。 |
wrap-s: | s 方向 (テクスチャ座標の x 方向) に沿った WrapMode を返します。 |
wrap-t: | t 方向 (テクスチャ座標の y 方向) に沿った WrapMode を返します。 |
yellow: | 0 から 1 までの値として cmy 黄色コンポーネントを返します。 |
from-string-if-exists: | 色の名前を表す文字列を Color オブジェクトに変換しようとします。文字列は、定義済みの色の名前、または '#' で始まる 16 進数値の色の値のどちらかである必要があります。 |
public | {Color.from-string-if-exists}:(value:Color, found?:bool) |
hsv-to-rgb: | 色相、彩度および値 (HSV) の色空間を、赤、緑および青 (RGB) の色空間に変換するユーティリティ。 |
public | {Color.interpolate}:Color |
rgb-to-hsv: | 赤、緑および青 (RGB) の色空間の色を、色相、彩度および値 (HSV) の色空間に変換するユーティリティ。 |
cmy: | cmy と不透明度のセットとして色を返します。 |
cmyk: | cmyk と不透明度のセットとして色を返します。 |
hsv: | hsv と不透明度のセットとして色を返します。 |
rgb: | rgb と不透明度のセットとして色を返します。 |
public | {Color.to-Pixel}:Pixel |
public | {Color.to-Pixmap width:int = 0, height:int = 0}:Pixmap |
(ファクトリ)
public inline | {Color.default}:Color |
0 から 1 までの rgb 値から Color を作成します。
(ファクトリ)
public inline | {Color.from-cmy}:Color |
0 から 1 までの cmy 値から Color を作成します。
(ファクトリ)
public inline | {Color.from-cmyk}:Color |
0 から 1 までの cmyk 値から Color を作成します。
(ファクトリ)
public | {Color.from-hsv}:Color |
色相、彩度、値 (HSV) から Color を作成します。
hue: The hue component of an HSV color specification, expressed as an
Angle. The meaningful range of values is
[0, 360] degrees; values outside of this range are mapped to values within this range as by the modulo operator -- that is,
361deg and
-359deg have the same effect as
1deg.
saturation: 彩度。有効な範囲の値は [0, 1] です。この範囲から外れた場合は、定義されていない結果となります。
value: 値。この値は通常、[0, 1] の範囲で指定されます。しかし、1 以上の値は "過飽和" 効果をもたらします。例えば、色相 15deg、彩度 1 のカラーを考えてみてください。1 の値では、これは黄色の影響が出る明るい赤色です。しかし、値が 1 を超えてから黄色がより際立つようになります。この効果は他の可能な方法よりも明るく見えさせるために照明の計算に使用されることがあります。
opacity: カラーの不透明度。この値は
[0, 1] の範囲で指定され
0 は一般的に完全な透明で、
1 は完全な不透明です。この値の解釈は、通常使用されているカラーのコンテキストに影響されることに注意してください。例えば、
DrawOperation や
TextureMode を御覧下さい。
戻り値
入力された値で表現されるカラー。
(ファクトリ)
(ファクトリ)
public inline | {Color.from-rgb}:Color |
0 から 1 までの rgb 値から Color を作成します。
(ファクトリ)
public inline | {Color.from-rgb-float}:Color |
0 から 1 までの rgb 値から Color を作成します。
(ファクトリ)
public inline | {Color.from-rgb-uint8}:Color |
0 から 255 までの rgb 値から Color を作成します。
(ファクトリ)
色の名前を表す文字列を Color オブジェクトに変換しようとします。文字列は、定義済みの色の名前、または '#' で始まる 16 進数値の色の値のどちらかである必要があります。
説明
StringInterface として渡せるフォーマットは次のとおりです。
- #rgb : r、g および b は 1 桁の 16 進数値、シャープ記号が先頭文字です。
- #rrggbb : r、g および b は 16 進数値、シャープ記号が先頭文字です。これは、HTMLの色指定に似ています。
- #rrggbbaa : r、g、b および a は 16 進数値、シャープ記号が先頭文字です。これは、アルファ値を含む CSS3 の色指定に似ています。
- #rrrgggbbb : r、g および b は 16 進数値、シャープ記号が先頭文字です。
- #rrrrggggbbbb : r、g および b は 16 進数値、シャープ記号が先頭文字です。
- rgb(r, g, b) : r、g および b は 0 から 255 までの浮動小数点値です。
- rgba(r, g, b, a) : r、g、b および a は 0 から 255 までの浮動小数点値です。
サポートされるカラー名一覧は
Color をご覧下さい。
戻り値
Color オブジェクト。文字列が変換できなかった場合、エラーがスローされます。
(アクセサ)
0 から 1 までの値としての rgb 青コンポーネント。
(アクセサ)
0 から 1 までの値として、cmy シアンブルー コンポーネントを返します。
(アクセサ)
0 から 1 までの値としての rgb 緑コンポーネント。
(アクセサ)
hsv の彩度を 0deg から 360deg の間の角度で返します。
(アクセサ)
テクスチャの拡大で使用される FilterMode を返します。フレーム バッファのピクセルがテクスチャ ピクセルのサブエリアにマップする時、つまりテクスチャ マップがスクリーン座標のフレーム バッファより大きい時に、拡大が発生します。
(アクセサ)
0 から 1 までの値として cmy マゼンタ色コンポーネントを返します。
(アクセサ)
テクスチャの縮小で使用される FilterMode を返します。フレーム バッファのピクセルが多くのテクスチャ ピクセルにマップする時、つまりテクスチャ マップがスクリーン座標のフレーム バッファより小さい時に、縮小が発生します。
(アクセサ)
(アクセサ)
0 から 1 までの値としての rgb 赤コンポーネント。
(アクセサ)
0 から 1 までの値として hsv 彩度を返します。
(アクセサ)
アクセサ public Color.uniform?:
bool Color が均一かどうかを示します。
戻り値
true。Color は定義により均一になります。
(アクセサ)
0 から 1 までの値として hsv の値を返します。
(アクセサ)
s 方向 (テクスチャ座標の x 方向) に沿った WrapMode を返します。
(アクセサ)
t 方向 (テクスチャ座標の y 方向) に沿った WrapMode を返します。
(アクセサ)
0 から 1 までの値として cmy 黄色コンポーネントを返します。
(クラスプロシージャ)
public | {Color.from-string-if-exists}:(value:Color, found?:bool) |
色の名前を表す文字列を Color オブジェクトに変換しようとします。文字列は、定義済みの色の名前、または '#' で始まる 16 進数値の色の値のどちらかである必要があります。
説明
戻り値
found? が false (文字列が変換できなかったことを意味します) でない限り、Color オブジェクトが返されます。
(クラスプロシージャ)
色相、彩度および値 (HSV) の色空間を、赤、緑および青 (RGB) の色空間に変換するユーティリティ。
(クラスプロシージャ)
public | {Color.interpolate}:Color |
2 つの色の間を補間します。
説明
RGBA 空間の 2 つの色を線形に混合します。つまり、赤、緑、青、および不透明度チャネルがそれぞれ補間され、返される色を作成します。
blend-factor: 0 から 1 までの線形混合ファクター。0 の時は a が返されます。1 の時は b が返されます。
(クラスプロシージャ)
赤、緑および青 (RGB) の色空間の色を、色相、彩度および値 (HSV) の色空間に変換するユーティリティ。
(クラスプロシージャ)
赤、緑および青 (RGB) の色空間の色を、色相、彩度および値 (HSV) の色空間に変換するユーティリティ。
注意事項
(クラスプロシージャ)
サポートされるカラー名のリストを返します。
説明
注意事項
このプロシージャが呼ばれる度に、呼び出し元のみが持つ一意になる配列を返します。自由にこの配列を改変することができます。
(メソッド)
(メソッド)
(メソッド)
(メソッド)
(メソッド)
public | {Color.to-Pixel}:Pixel |
テクスチャのピクセルすべての平均値となるピクセルを返します。
説明
このメソッドは、テクスチャのピクセル値を平均し、その平均値を 1 つのピクセル値として返します。平均は 1 度しか行われないので、以降の to-Pixel への呼び出しは速くなります。
(メソッド)
public | {Color.to-Pixmap width:int = 0, height:int = 0}:Pixmap |