當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。