当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Processing colorMode()用法及代码示例


Processing, colorMode()用法介绍。

用法

  • colorMode(mode)
  • colorMode(mode, max)
  • colorMode(mode, max1, max2, max3)
  • colorMode(mode, max1, max2, max3, maxA)

参数

  • mode (int) RGB 或 HSB,分别对应红/绿/蓝和色相/饱和度/亮度
  • max (float) 所有颜色元素的范围
  • max1 (float) 红色或色调的范围取决于当前的颜色模式
  • max2 (float) 取决于当前颜色模式的绿色或饱和度范围
  • max3 (float) 蓝色或亮度范围取决于当前颜色模式
  • maxA (float) alpha 的范围

返回

  • void

说明

更改处理解释颜色数据的方式。默认情况下,fill()stroke()background()color() 的参数使用 RGB 颜色模型由 0 到 255 之间的值定义。 colorMode() 函数用于更改用于指定颜色的数值范围和切换颜色系统。例如,调用 colorMode(RGB, 1.0) 将指定在 0 和 1 之间指定的值。通过设置参数 maxmax1max2max3maxA 来更改定义颜色的限制。



在使用 colorMode(HSB, 360, 100, 100) 之类的代码更改颜色值的范围后,这些范围将一直使用,直到再次显式更改。例如,在运行 colorMode(HSB, 360, 100, 100) 然后再改回 colorMode(RGB) 后,R 的范围将为 0 到 360,G 和 B 的范围为 0 到 100。为避免这种情况,请在更改时明确说明范围颜色模式。例如,不要写 colorMode(RGB) ,而是写 colorMode(RGB, 255, 255, 255)

例子

size(400,400);
noStroke();
colorMode(RGB, 400);
for (int i = 0; i < 400; i++) {
  for (int j = 0; j < 400; j++) {
    stroke(i, j, 0);
    point(i, j);
  }
}
Image output for example 1
noStroke();
colorMode(HSB, 400);
for (int i = 0; i < 400; i++) {
  for (int j = 0; j < 400; j++) {
    stroke(i, j, 400);
    point(i, j);
  }
}
Image output for example 2
// If the color is defined here, it won't be 
// affected by the colorMode() in setup(). 
// Instead, just declare the variable here and 
// assign the value after the colorMode() in setup()
//color bg = color(180, 50, 50);  // No
color bg;  // Yes, but assign it in setup()

void setup() {
  size(400, 400);
  colorMode(HSB, 360, 100, 100);
  bg = color(180, 50, 50);
}

void draw() {
  background(bg);	
}
Image output for example 3

相关用法


注:本文由纯净天空筛选整理自processing.org大神的英文原创作品 colorMode()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。