1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>颜色([name])</h1>
<p class="desc">
表示一个颜色。
</p>
<h2>示例(Examples)</h2>
颜色可以用以下任意一种方式初始化。
<code>
//empty constructor - will default white
var color = new THREE.Color();
//Hexadecimal color (recommended)
var color = new THREE.Color( 0xff0000 );
//RGB string
var color = new THREE.Color("rgb(255, 0, 0)");
var color = new THREE.Color("rgb(100%, 0%, 0%)");
//X11 color name - all 140 color names are supported.
//Note the lack of CamelCase in the name
var color = new THREE.Color( 'skyblue' );
//HSL string
var color = new THREE.Color("hsl(0, 100%, 50%)");
//Separate RGB values between 0 and 1
var color = new THREE.Color( 1, 0, 0 );
</code>
<h2>构造器(Constructor)</h2>
<h3>[name]( [param:Color_Hex_or_String r], [param:Float g], [param:Float b] )</h3>
<p>
[page:Color_Hex_or_String r] - (可选参数) 如果参数g和b被定义,则r表示颜色中的红色分量。
如果未被定义,r可以是一个十六进制 [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet hexadecimal triplet] 颜色值或CSS样式的字符串或一个Color实例。<br />
[page:Float g] - (可选参数) 如果被定义,表示颜色中的绿色分量。<br />
[page:Float b] - (可选参数) 如果被定义,表示颜色中的蓝色分量。<br /><br />
注意使用十六进制 [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet hexadecimal triplet] 定义一个颜色在three.js中是标准的方法,而且其余
文档也将会使用这个方法。<br /><br />
当所有参数被定义时,r是红色分量,g是绿色分量,b是蓝色分量。<br />
当只有 [page:Color_Hex_or_String r] 被定义时:<br />
<ul>
<li>它可用一个十六进制 [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet hexadecimal triplet] 值表示颜色(推荐)。</li>
<li>它可以是一个另一个颜色实例。</li>
<li>它可以是另外一个CSS样式。例如:
<ul>
<li>'rgb(250, 0,0)'</li>
<li>'rgb(100%,0%,0%)'</li>
<li>'hsl(0, 100%, 50%)'</li>
<li>'#ff0000'</li>
<li>'#f00'</li>
<li>'red'</li>
</ul>
</li>
</ul>
</p>
<h2>属性(Properties)</h2>
<h3>[property:Boolean isColor]</h3>
<p>
用来检测此类或者派生类是否为颜色。默认值是 *true*。<br /><br />
不应该去改变这个值,因为它在内部用于优化。
</p>
<h3>[property:Float r]</h3>
<p>
红色通道的值在0到1之间。默认值为1。
</p>
<h3>[property:Float g]</h3>
<p>
绿色通道的值在0到1之间。默认值为1。
</p>
<h3>[property:Float b]</h3>
<p>
蓝色通道的值在0到1之间。默认值为1。
</p>
<h2>方法(Methods)</h2>
<h3>[method:Color add]( [param:Color color] ) </h3>
<p>将给定颜色的RGB值添加到此颜色的RGB值。</p>
<h3>[method:Color addColors]( [param:Color color1], [param:Color color2] ) </h3>
<p>将此颜色的RGB值设置为 [page:Color color1] 和 [page:Color color2] 的RGB值之和。</p>
<h3>[method:Color addScalar]( [param:Number s] ) </h3>
<p>给现有的RGB值都加上 [page:Number s] 。</p>
<h3>[method:Color clone]() </h3>
<p>返回一个与当前颜色的 [page:.r r], [page:.g g] 和 [page:.b b] 相同的颜色。</p>
<h3>[method:Color copy]( [param:Color color] ) </h3>
<p>
从 [page:Color color] 中拷贝 [page:.r r], [page:.g g] 和 [page:.b b] 值到当前的颜色。
</p>
<h3>[method:Color convertGammaToLinear]( [param:Float gammaFactor] ) </h3>
<p>
[page:Float gammaFactor] - (可选参数). 默认值 *2.0*.<br /><br />
通过取颜色 [page:.r r], [page:.g g] and [page:.b b] 的 [page:Float gammaFactor] 次方将颜色从伽马空间转换成线性空间。
</p>
<h3>[method:Color convertLinearToGamma]( [param:Float gammaFactor] ) </h3>
<p>
[page:Float gammaFactor] - (可选参数). 默认值 *2.0*.<br /><br />
通过取颜色 [page:.r r], [page:.g g] and [page:.b b] 的 1/[page:Float gammaFactor] 次方将颜色从线性空间转换成伽马空间。
</p>
<h3>[method:Color convertLinearToSRGB]() </h3>
<p>
将此颜色从线性空间转换成sRGB空间。
</p>
<h3>[method:Color convertSRGBToLinear]() </h3>
<p>
将此颜色从sRGB空间转换成线性空间。
</p>
<h3>[method:Color copyGammaToLinear]( [param:Color color], [param:Float gammaFactor] ) </h3>
<p>
[page:Color color] — 需要拷贝的颜色。<br />
[page:Float gammaFactor] - (可选参数). 默认值为 *2.0*.<br /><br />
将传入的 [param:Color color] 从伽马空间转换到线性空间然后复制给当前颜色。
</p>
<h3>[method:Color copyLinearToGamma]( [param:Color color], [param:Float gammaFactor] ) </h3>
<p>
[page:Color color] — 需要拷贝的颜色。<br />
[page:Float gammaFactor] - (可选参数). 默认值为 *2.0*.<br /><br />
将传入的 [param:Color color] 从线性空间转换到伽马空间然后复制给当前颜色。
</p>
<h3>[method:Color copyLinearToSRGB]( [param:Color color]] ) </h3>
<p>
[page:Color color] — 需要拷贝的颜色。<br />
将传入的 [param:Color color] 拷贝给当前颜色,然后将当前颜色从线性空间转换到sRGB空间。
</p>
<h3>[method:Color copySRGBToLinear]( [param:Color color] ) </h3>
<p>
[page:Color color] — 需要拷贝的颜色。<br />
将传入的 [param:Color color] 拷贝给当前颜色,然后将当前颜色从sRGB空间转换到线性空间。
</p>
<h3>[method:Boolean equals]( [param:Color color] ) </h3>
<p>将 [param:Color color] 的RGB值与该对象的RGB值进行比较。如果它们都是相同的,返回true,否则返回false。</p>
<h3>[method:Color fromArray]( [param:Array array], [param:Integer offset] ) </h3>
<p>
[page:Array array] - 格式为 [ [page:Float r], [page:Float g], [page:Float b] ] 的数组 [page:Array]。<br />
[page:Integer offset] - 数组中可选偏移量<br /><br />
从格式为[ [page:Float r], [page:Float g], [page:Float b] ]的数组数据中来创建Color对象。
</p>
<h3>[method:Integer getHex]()</h3>
<p>返回此颜色的十六进制值。</p>
<h3>[method:String getHexString]()</h3>
<p>将此颜色的十六进制值作为字符串返回 (例如, 'FFFFFF')。</p>
<h3>[method:Object getHSL]( [param:Object target] )</h3>
<p>
[page:Object target] — 结果将复制到这个对象中。向对象添加h、s和l键(如果不存在)。<br /><br />
将此颜色的 [page:.r r], [page:.g g] 和 [page:.b b] 值转换为 [link:https://en.wikipedia.org/wiki/HSL_and_HSV HSL]格式,然后返回一个格式如下的对象:
<code>
{ h: 0, s: 0, l: 0 }
</code>
</p>
<h3>[method:String getStyle]()</h3>
<p>以CSS样式字符串的形式返回该颜色的值。例如:“rgb(255,0,0)”。</p>
<h3>[method:Color lerp]( [param:Color color], [param:Float alpha] ) </h3>
<p>
[page:Color color] - 用于收敛的颜色。<br />
[page:Float alpha] - 介于0到1的数字。<br /><br />
将该颜色的RGB值线性插值到传入参数的RGB值。alpha参数可以被认为是两种颜色之间的比例值,其中0是当前颜色和1.0是第一个参数的颜色。
</p>
<h3>[method:Color lerpHSL]( [param:Color color], [param:Float alpha] ) </h3>
<p>
[page:Color color] - 用于收敛的颜色。<br />
[page:Float alpha] - 介于0到1的数字。<br /><br />
将该颜色的HSL值线性插值到传递参数的HSL值。它不同于上诉的[page:lerp]。通过不直接从一种颜色插入到另一种颜色,
而是通过插值这两种颜色之间的所有色相(H)、亮度(L)、饱和度(S)。alpha参数可以被认为是两种颜色之间的比例值,
其中0是当前颜色和1.0是第一个参数的颜色。
</p>
<h3>[method:Color multiply]( [param:Color color] ) </h3>
<p>将此颜色的RGB值乘以给定的[page: color color]的RGB值。</p>
<h3>[method:Color multiplyScalar]( [param:Number s] ) </h3>
<p>将此颜色的RGB值乘以给定的[page:Number s]的值。</p>
<h3>[method:Color offsetHSL]( [param:Float h], [param:Float s], [param:Float l] ) </h3>
<p>
将给定的 [page:Float h], [page:Float s], 和 [page:Float l]值加到当前颜色值。
内部的机制为:先将该颜色的 [page:.r r], [page:.g g] 和 [page:.b b] 值转换为HSL,然后与传入的[page:Float h], [page:Float s], 和 [page:Float l]
相加,最后再将结果转成RGB值。
</p>
<h3>[method:Color set]( [param:Color_Hex_or_String value] ) </h3>
<p>
[page:Color_Hex_or_String value] - 用于设置该颜色的值。<br /><br />
有关 [page:Color_Hex_or_String value] 的详细信息,请参阅上面的构造函数。
根据输入类型,将会委托给 [page:.copy], [page:.setStyle], 或者 [page:.setHex] 函数处理。
</p>
<h3>[method:Color setHex]( [param:Integer hex] ) </h3>
<p>
[page:Integer hex] — [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet hexadecimal triplet] 格式。<br /><br />
采用十六进制值设置此颜色。
</p>
<h3>[method:Color setHSL]( [param:Float h], [param:Float s], [param:Float l] ) </h3>
<p>
[page:Float h] — 色相值处于0到1之间。hue value between 0.0 and 1.0 <br />
[page:Float s] — 饱和度值处于0到1之间。<br />
[page:Float l] — 亮度值处于0到1之间。<br /><br />
采用HLS值设置此颜色。
</p>
<h3>[method:Color setRGB]( [param:Float r], [param:Float g], [param:Float b] ) </h3>
<p>
[page:Float r] — 红色通道的值在0到1之间。<br />
[page:Float g] — 绿色通道的值在0到1之间。<br />
[page:Float b] — 蓝色通道的值在0到1之间。<br /><br />
采用RGB值设置此颜色。
</p>
<h3>[method:Color setScalar]( [param:Float scalar] ) </h3>
<p>
[page:Float scalar] — 处于0到1之间的值<br /><br />
将颜色的RGB值都设为该 [page:Float scalar] 的值。
</p>
<h3>[method:Color setStyle]( [param:String style] ) </h3>
<p>
[page:String style] — 颜色css样式的字符串<br /><br />
采用ccs样式的字符串设置此颜色。例如,
"rgb(250, 0,0)",
"rgb(100%, 0%, 0%)",
"hsl(0, 100%, 50%)",
"#ff0000",
"#f00", 或者
"red" ( 或者任何 [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart X11 color name]
- 所有140种颜色名称都支持 ).<br />
半透明颜色例如 "rgba(255, 0, 0, 0.5)" and "hsla(0, 100%, 50%, 0.5)" 也能支持,
但是alpha通道的值将会被丢弃。<br /><br />
注意,对于X11颜色名称,多个单词(如暗橙色)变成字符串“darkorange”(全部是小写字母)。
</p>
<h3>[method:Color setColorName]( [param:String style] ) </h3>
<p>
[page:String style] — color name ( from [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart X11 color names] ).<br /><br />
Sets this color from a color name. Faster than [page:.setStyle] method if you don't need the other CSS-style formats.<br/><br/>
For convenience, the list of names is exposed in Color.NAMES as a hash: <code>Color.NAMES.aliceblue // returns 0xF0F8FF</code>
</p>
<h3>[method:Color sub]( [param:Color color] ) </h3>
<p>
从该颜色的RGB分量中减去传入颜色的RGB分量。如果分量结果是负,则该分量为零。
</p>
<h3>[method:Array toArray]( [param:Array array], [param:Integer offset] ) </h3>
<p>
[page:Array array] - 存储颜色的可选数组 <br />
[page:Integer offset] - 数组的可选偏移量<br /><br />
返回一个格式为[ r, g, b ] 数组。
</p>
<h2>源码(Source)</h2>
<p>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</p>
</body>
</html>
|