颜色(Color)

代表一个颜色。

例子

var color = new THREE.Color();var color = new THREE.Color( 0xff0000 );var color = new THREE.Color("rgb(255, 0, 0)");var color = new THREE.Color("rgb(100%, 0%, 0%)");var color = new THREE.Color("hsl(0, 100%, 50%)");var color = new THREE.Color( 1, 0, 0 );

构造器(Constructor)

Color( r, g, b )

r - 如果参数g和b被定义,则r表示颜色中的红色分量。如果未被定义,r可以是一个十六进制颜色值或CSS样式的字符串或一个Color实例。
g - 如果被定义,则表示颜色中的绿色分量。
b - 如果被定义,则表示颜色中的蓝色分量。

所有参数都是可选的。默认颜色为白色。
当所有的参数都被定义,那么r是红色分量,g是绿色分量,b是蓝色分量。
当只有r被定义时:

  • 它可以是一个十六进制的颜色。
  • 它可以是一个另一个颜色实例。
  • 它可以是另外一个CSS样式。例如:
    • rgb(250, 0,0)
    • rgb(100%,0%,0%)
    • hsl(0, 100%, 50%)
    • #ff0000
    • #f00
    • red

属性(Properties)

#.r

红色通道值在1和0之间。默认为1。

#.g

绿色通道值在1和0之间。默认为1。

#.b

蓝色通道值在1和0之间。默认为1。

方法(Methods)

#.set ( value ) this

value -- 或者是一个 Color 实例,一个 hexadecimal 值,或者一个css样式 string

根据输入类型把调用委托给.copy, .setStyle, 或 .setHex方法。

#.copy ( color ) this

color — 要拷贝的颜色。

拷贝给定的颜色。

#.fromArray ( array, offset ) this

array -- Array [r, g, b] 
offset -- Integer 数组中的一个可选偏移量。

从格式为[r, g, b]的数组数据中来创建Color对象。

#.copyGammaToLinear ( color ) this

color — 要拷贝的颜色。

拷贝给定颜色完成从伽玛到线性空间的转换。

#.copyLinearToGamma ( color ) this

color — 要拷贝的颜色。

拷贝给定颜色完成从线性到伽玛空间的转换。

#.convertGammaToLinear () this

将此颜色从伽玛转换为线性空间。

#.convertLinearToGamma () this

将此颜色转换为线性到伽玛空间。

#.setRGB ( r, g, b ) this

r — 红色通道值在1和0之间。
g — 绿色通道值在1和0之间。
b — 蓝色通道值在1和0之间。

设置颜色的RGB值。

#.getHex ()

返回该颜色的十六进制值。

#.getHexString ()

返回字符串格式的十六进制值颜色。

#.setHex ( hex ) this

hex — 颜色的十六进制。

以一个十六进制值设置颜色。

#.setStyle ( style ) this

style — 代表颜色的CSS样式字符串。

以一个CSS样式字符串来设置颜色。比如:"rgb(250, 0,0)", "rgb(100%, 0%, 0%)", "hsl(0, 100%, 50%)", "#ff0000", "#f00", 或者 "red"。也可以使用透明色如 "rgba(255, 0, 0, 0.5)" and "hsla(0, 100%, 50%, 0.5)",但是alpha通道会被忽略。

#.getStyle ()

返回一个CSS样式字符串格式的颜色值。比如:rgb(255,0,0)。

#.setHSL ( h, s, l ) this

h — 色调值在0.0和1.0之间 
s — 饱和值在0.0和1.0之间 
l — 亮度值在0.0和1.0之间。

使用HSL设置颜色。

#.getHSL () hsl

返回一个属性为h、s和l的对象。

#.offsetHSL ( h, s, l ) this

添加给定的HSL到这个颜色的现有的HSL值。

#.add ( color ) this

添加给定的RGB到这个颜色的现有的RGB值。

#.addColors ( color1, color2 ) this

设置颜色为color1和color2之和。

#.addScalar ( s ) this

给现有的rgb颜色加上数值s。

#.multiply ( color ) this

两个rbg颜色相乘。

#.multiplyScalar ( s ) this

把现有的rgb颜色乘以数值s。

#.lerp ( color, alpha ) this

alpha -- 一个介于0到1之间的数字。

第一个参数rgb值和该Color的rgb值之间的线性插值。我们可以把alpha参数看作是一个位于两个Color之间的百分比值,0表示该Color,而1表示第一个参数Color。

#.equals ( c ) this

将此颜色和c进行比较,如果它们是相同的,则返回为真,否则为假。

#.clone () this

克隆这种颜色。

#.toArray ( array, offset ) this

array -- 把Color对象转换为一个数组数据。 
offset -- 数组中的一个可选偏移量。

返回一个 [r,g,b] 数组。

源代码

src/math/Color.js

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐