Color (クラス)
public final Color {inherits Texture}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GRAPHICS.RENDERER3D.

純色を表します。

説明

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 を指定します。ここでrrggbb および aa はそれぞれ赤、緑、青の色強度、アルファ チャネルの値を指定する 16 進数値のペアです。許可されている文字列のフォーマットに関する詳細は、Color.from-string#factory のドキュメンテーションを参照してください。
  • Color.from-rgb#factory ファクトリーを使用します。


次のテーブルでは、色の名前を明確に記述する、サポートされている String を示します。必要な色を取得するためには、Palette.get-<color> または Color.from-string "<color>" を呼び出します。






ColorFillPattern を必要とする場所で指定します。これは、FillPattern が自動的に ColorFillPattern に変換するためです。そのため上記の形式のどれを使用しても、その型が FillPattern であるグラフィック オプションの均一色を指定できます。


しかし、必要とされる FillPattern を直接指定することを推奨します。Color から FillPattern に変換すると、パフォーマンスに不利な条件を引き起こします。小さい場合はできれば避けるようにしてください。

次の例では、Color オブジェクトを Renderer3d および Drawable でいくつか使用しています。
例: ColorDrawable および 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
                    }
            }
        }
}

注意事項

詳細については、『Curl 開発者ガイド』の「塗りつぶしパターンおよびテクスチャ」 の章を参照してください。

コンストラクタ
default:0 から 1 までの rgb 値から Color を作成します。
ファクトリ public inline {Color.default
red:Fraction,
green:Fraction,
blue:Fraction,
opacity:Fraction = 1.0
}:Color
from-cmy:0 から 1 までの cmy 値から Color を作成します。
ファクトリ public inline {Color.from-cmy
cyan:Fraction,
magenta:Fraction,
yellow:Fraction,
opacity:Fraction = 1.0
}:Color
from-cmyk:0 から 1 までの cmyk 値から Color を作成します。
ファクトリ public inline {Color.from-cmyk
cyan:Fraction,
magenta:Fraction,
yellow:Fraction,
black:Fraction,
opacity:Fraction = 1.0
}:Color
from-hsv:色相、彩度、値 (HSV) から Color を作成します。
ファクトリ public {Color.from-hsv
hue:Angle,
saturation:Fraction,
value:Fraction,
opacity:Fraction = 1.0
}:Color
from-pixel:Pixel から Color を作成します。
ファクトリ public {Color.from-pixel pixel:Pixel}:Color
from-rgb:0 から 1 までの rgb 値から Color を作成します。
ファクトリ public inline {Color.from-rgb
red:Fraction,
green:Fraction,
blue:Fraction,
opacity:Fraction = 1.0
}:Color
from-rgb-float:0 から 1 までの rgb 値から Color を作成します。
ファクトリ public inline {Color.from-rgb-float}:Color
from-rgb-uint8:0 から 255 までの rgb 値から Color を作成します。
ファクトリ public inline {Color.from-rgb-uint8
red:int,
green:int,
blue:int,
opacity:int = 255
}:Color
from-string:色の名前を表す文字列を Color オブジェクトに変換しようとします。文字列は、定義済みの色の名前、または '#' で始まる 16 進数値の色の値のどちらかである必要があります。
ファクトリ public {Color.from-string color-descriptor:StringInterface}:Color

プロパティ
blue:0 から 1 までの値としての rgb 青コンポーネント。
アクセサ public Color.blue:FloatFraction
cyan:0 から 1 までの値として、cmy シアンブルー コンポーネントを返します。
アクセサ public Color.cyan:FloatFraction
green:0 から 1 までの値としての rgb 緑コンポーネント。
アクセサ public Color.green:FloatFraction
hue:hsv の彩度を 0deg から 360deg の間の角度で返します。
アクセサ public Color.hue:FloatAngle
mag-filter:テクスチャの拡大で使用される FilterMode を返します。フレーム バッファのピクセルがテクスチャ ピクセルのサブエリアにマップする時、つまりテクスチャ マップがスクリーン座標のフレーム バッファより大きい時に、拡大が発生します。
アクセサ public Color.mag-filter:FilterMode
magenta:0 から 1 までの値として cmy マゼンタ色コンポーネントを返します。
アクセサ public Color.magenta:FloatFraction
min-filter:テクスチャの縮小で使用される FilterMode を返します。フレーム バッファのピクセルが多くのテクスチャ ピクセルにマップする時、つまりテクスチャ マップがスクリーン座標のフレーム バッファより小さい時に、縮小が発生します。
アクセサ public Color.min-filter:FilterMode
opacity:0 から 1 までの値としての色の不透明度。
アクセサ public Color.opacity:FloatFraction
red:0 から 1 までの値としての rgb 赤コンポーネント。
アクセサ public Color.red:FloatFraction
saturation:0 から 1 までの値として hsv 彩度を返します。
アクセサ public Color.saturation:FloatFraction
uniform?:Color が均一かどうかを示します。
アクセサ public Color.uniform?:bool
value:0 から 1 までの値として hsv の値を返します。
アクセサ public Color.value:FloatFraction
wrap-s:s 方向 (テクスチャ座標の x 方向) に沿った WrapMode を返します。
アクセサ public Color.wrap-s:WrapMode
wrap-t:t 方向 (テクスチャ座標の y 方向) に沿った WrapMode を返します。
アクセサ public Color.wrap-t:WrapMode
yellow:0 から 1 までの値として cmy 黄色コンポーネントを返します。
アクセサ public Color.yellow:FloatFraction

クラス プロシージャ
from-string-if-exists:色の名前を表す文字列を Color オブジェクトに変換しようとします。文字列は、定義済みの色の名前、または '#' で始まる 16 進数値の色の値のどちらかである必要があります。
public {Color.from-string-if-exists
color-descriptor:StringInterface
}:(value:Color, found?:bool)
hsv-to-rgb:色相、彩度および値 (HSV) の色空間を、赤、緑および青 (RGB) の色空間に変換するユーティリティ。
public {Color.hsv-to-rgb
hue:Angle,
saturation:Fraction,
value:Fraction
}:(red:FloatFraction, green:FloatFraction, blue:FloatFraction)
interpolate:2 つの色の間を補間します。
public {Color.interpolate
a:Color,
blend-factor:Fraction,
b:Color
}:Color
rgb-to-hsv:赤、緑および青 (RGB) の色空間の色を、色相、彩度および値 (HSV) の色空間に変換するユーティリティ。
public {Color.rgb-to-hsv
red:Fraction,
green:Fraction,
blue:Fraction
}:(hue:FloatAngle, saturation:FloatFraction, value:FloatFraction)
rgb-to-hsv-float:赤、緑および青 (RGB) の色空間の色を、色相、彩度および値 (HSV) の色空間に変換するユーティリティ。
public {Color.rgb-to-hsv-float}:(hue:FloatAngle, saturation:FloatFraction, value:FloatFraction)
supported-color-names:サポートされるカラー名のリストを返します。
public {Color.supported-color-names}:StringArray

メソッド
cmy:cmy と不透明度のセットとして色を返します。
public {Color.cmy
}:(cyan:FloatFraction, magenta:FloatFraction, yellow:FloatFraction, opacity:FloatFraction)
cmyk:cmyk と不透明度のセットとして色を返します。
public {Color.cmyk
}:(cyan:FloatFraction, magenta:FloatFraction, yellow:FloatFraction, black:FloatFraction, opacity:FloatFraction)
hsv:hsv と不透明度のセットとして色を返します。
public {Color.hsv
}:(hue:FloatAngle, saturation:FloatFraction, value:FloatFraction, opacity:FloatFraction)
rgb:rgb と不透明度のセットとして色を返します。
public {Color.rgb
}:(red:FloatFraction, green:FloatFraction, blue:FloatFraction, opacity:FloatFraction)
to-Pixel:テクスチャのピクセルすべての平均値となるピクセルを返します。
public {Color.to-Pixel}:Pixel
to-Pixmap:この Color を表す Pixmap を返します。
public {Color.to-Pixmap width:int = 0, height:int = 0}:Pixmap
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (ファクトリ)
public inline {Color.default
red:Fraction,
green:Fraction,
blue:Fraction,
opacity:Fraction = 1.0
}:Color

0 から 1 までの rgb 値から Color を作成します。



from-cmy (ファクトリ)
public inline {Color.from-cmy
cyan:Fraction,
magenta:Fraction,
yellow:Fraction,
opacity:Fraction = 1.0
}:Color

0 から 1 までの cmy 値から Color を作成します。



from-cmyk (ファクトリ)
public inline {Color.from-cmyk
cyan:Fraction,
magenta:Fraction,
yellow:Fraction,
black:Fraction,
opacity:Fraction = 1.0
}:Color

0 から 1 までの cmyk 値から Color を作成します。



from-hsv (ファクトリ)
public {Color.from-hsv
hue:Angle,
saturation:Fraction,
value:Fraction,
opacity:Fraction = 1.0
}: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 は完全な不透明です。この値の解釈は、通常使用されているカラーのコンテキストに影響されることに注意してください。例えば、DrawOperationTextureMode を御覧下さい。

戻り値

入力された値で表現されるカラー。


from-pixel (ファクトリ)
public {Color.from-pixel pixel:Pixel}:Color

Pixel から Color を作成します。



from-rgb (ファクトリ)
public inline {Color.from-rgb
red:Fraction,
green:Fraction,
blue:Fraction,
opacity:Fraction = 1.0
}:Color

0 から 1 までの rgb 値から Color を作成します。



from-rgb-float (ファクトリ)
public inline {Color.from-rgb-float}:Color

0 から 1 までの rgb 値から Color を作成します。



from-rgb-uint8 (ファクトリ)
public inline {Color.from-rgb-uint8
red:int,
green:int,
blue:int,
opacity:int = 255
}:Color

0 から 255 までの rgb 値から Color を作成します。



from-string (ファクトリ)
public {Color.from-string color-descriptor:StringInterface}:Color

色の名前を表す文字列を Color オブジェクトに変換しようとします。文字列は、定義済みの色の名前、または '#' で始まる 16 進数値の色の値のどちらかである必要があります。

説明

StringInterface として渡せるフォーマットは次のとおりです。 サポートされるカラー名一覧は Color をご覧下さい。

戻り値

Color オブジェクト。文字列が変換できなかった場合、エラーがスローされます。



プロパティ詳細
blue (アクセサ)
アクセサ public Color.blue:FloatFraction

0 から 1 までの値としての rgb 青コンポーネント。



cyan (アクセサ)
アクセサ public Color.cyan:FloatFraction

0 から 1 までの値として、cmy シアンブルー コンポーネントを返します。



green (アクセサ)
アクセサ public Color.green:FloatFraction

0 から 1 までの値としての rgb 緑コンポーネント。



hue (アクセサ)
アクセサ public Color.hue:FloatAngle

hsv の彩度を 0deg から 360deg の間の角度で返します。



mag-filter (アクセサ)
アクセサ public Color.mag-filter:FilterMode

テクスチャの拡大で使用される FilterMode を返します。フレーム バッファのピクセルがテクスチャ ピクセルのサブエリアにマップする時、つまりテクスチャ マップがスクリーン座標のフレーム バッファより大きい時に、拡大が発生します。



magenta (アクセサ)
アクセサ public Color.magenta:FloatFraction

0 から 1 までの値として cmy マゼンタ色コンポーネントを返します。



min-filter (アクセサ)
アクセサ public Color.min-filter:FilterMode

テクスチャの縮小で使用される FilterMode を返します。フレーム バッファのピクセルが多くのテクスチャ ピクセルにマップする時、つまりテクスチャ マップがスクリーン座標のフレーム バッファより小さい時に、縮小が発生します。



opacity (アクセサ)
アクセサ public Color.opacity:FloatFraction

0 から 1 までの値としての色の不透明度。



red (アクセサ)
アクセサ public Color.red:FloatFraction

0 から 1 までの値としての rgb 赤コンポーネント。



saturation (アクセサ)
アクセサ public Color.saturation:FloatFraction

0 から 1 までの値として hsv 彩度を返します。



uniform? (アクセサ)
アクセサ public Color.uniform?:bool

Color が均一かどうかを示します。

戻り値

trueColor は定義により均一になります。


value (アクセサ)
アクセサ public Color.value:FloatFraction

0 から 1 までの値として hsv の値を返します。



wrap-s (アクセサ)
アクセサ public Color.wrap-s:WrapMode

s 方向 (テクスチャ座標の x 方向) に沿った WrapMode を返します。



wrap-t (アクセサ)
アクセサ public Color.wrap-t:WrapMode

t 方向 (テクスチャ座標の y 方向) に沿った WrapMode を返します。



yellow (アクセサ)
アクセサ public Color.yellow:FloatFraction

0 から 1 までの値として cmy 黄色コンポーネントを返します。





クラス プロシージャ詳細
from-string-if-exists (クラスプロシージャ)
public {Color.from-string-if-exists
color-descriptor:StringInterface
}:(value:Color, found?:bool)

色の名前を表す文字列を Color オブジェクトに変換しようとします。文字列は、定義済みの色の名前、または '#' で始まる 16 進数値の色の値のどちらかである必要があります。

説明

使用可能な入力文字列については、Color.from-string#factory の説明を参照してください。

戻り値

found? が false (文字列が変換できなかったことを意味します) でない限り、Color オブジェクトが返されます。


hsv-to-rgb (クラスプロシージャ)
public {Color.hsv-to-rgb
hue:Angle,
saturation:Fraction,
value:Fraction
}:(red:FloatFraction, green:FloatFraction, blue:FloatFraction)

色相、彩度および値 (HSV) の色空間を、赤、緑および青 (RGB) の色空間に変換するユーティリティ。



interpolate (クラスプロシージャ)
public {Color.interpolate
a:Color,
blend-factor:Fraction,
b:Color
}:Color

2 つの色の間を補間します。

説明

RGBA 空間の 2 つの色を線形に混合します。つまり、赤、緑、青、および不透明度チャネルがそれぞれ補間され、返される色を作成します。
blend-factor: 0 から 1 までの線形混合ファクター。0 の時は a が返されます。1 の時は b が返されます。


rgb-to-hsv (クラスプロシージャ)
public {Color.rgb-to-hsv
red:Fraction,
green:Fraction,
blue:Fraction
}:(hue:FloatAngle, saturation:FloatFraction, value:FloatFraction)

赤、緑および青 (RGB) の色空間の色を、色相、彩度および値 (HSV) の色空間に変換するユーティリティ。



rgb-to-hsv-float (クラスプロシージャ)
public {Color.rgb-to-hsv-float}:(hue:FloatAngle, saturation:FloatFraction, value:FloatFraction)

赤、緑および青 (RGB) の色空間の色を、色相、彩度および値 (HSV) の色空間に変換するユーティリティ。

注意事項

rgb-to-hsv-floatColor.rgb-to-hsv の違いは、rgb-to-hsv-floatFraction の代わりに FloatFraction として赤、緑および青の値をとるということだけです。


supported-color-names (クラスプロシージャ)
public {Color.supported-color-names}:StringArray

サポートされるカラー名のリストを返します。

説明

これは Color.from-string#factoryColor.from-string-if-exists によって受け入れられる事前に定義されたカラー名のリストを返します。これらの名前はまた、FillPattern.from-string#factory によってサポートされます。

注意事項

このプロシージャが呼ばれる度に、呼び出し元のみが持つ一意になる配列を返します。自由にこの配列を改変することができます。



メソッド詳細
cmy (メソッド)
public {Color.cmy
}:(cyan:FloatFraction, magenta:FloatFraction, yellow:FloatFraction, opacity:FloatFraction)

cmy と不透明度のセットとして色を返します。



cmyk (メソッド)
public {Color.cmyk
}:(cyan:FloatFraction, magenta:FloatFraction, yellow:FloatFraction, black:FloatFraction, opacity:FloatFraction)

cmyk と不透明度のセットとして色を返します。



hsv (メソッド)
public {Color.hsv
}:(hue:FloatAngle, saturation:FloatFraction, value:FloatFraction, opacity:FloatFraction)

hsv と不透明度のセットとして色を返します。



rgb (メソッド)
public {Color.rgb
}:(red:FloatFraction, green:FloatFraction, blue:FloatFraction, opacity:FloatFraction)

rgb と不透明度のセットとして色を返します。



to-Pixel (メソッド)
public {Color.to-Pixel}:Pixel

テクスチャのピクセルすべての平均値となるピクセルを返します。

説明

このメソッドは、テクスチャのピクセル値を平均し、その平均値を 1 つのピクセル値として返します。平均は 1 度しか行われないので、以降の to-Pixel への呼び出しは速くなります。


to-Pixmap (メソッド)
public {Color.to-Pixmap width:int = 0, height:int = 0}:Pixmap

この Color を表す Pixmap を返します。

説明

Color は均一な Texture であるため、返される PixmapPixel はすべて同じ値を持ちます。
width, height: 返される PixmapPixel の数での幅と高さ。

戻り値

作成された Pixmap