自訂顏色#

介紹#

color 類別用於定義和修改在 IQ(第二代)腦屏上繪製形狀和顯示文字的顏色。顏色可以使用 RGB 值、十六進位顏色代碼或預先定義的顏色常數來建立。

類別建構函數#

1 — 建立一個沒有指定顏色的 color 物件。

color();

2 — 根據十六進位或整數值建立一個 color 物件。

color( 
  int value );

3 — 根據 RGB 值建立 color 物件。

color( 
  uint8_t r, 
  uint8_t g, 
  uint8_t b );

類別析構函數#

銷毀 color 物件並釋放相關資源。

~color();

參數#

範圍

類型

描述

value

int

顏色值可以是十六進位 RGB 整數(例如, 0xFFF700),也可以是下面列出的預定義顏色常數之一。

r

uint8_t

一個介於 0 到 255 之間的整數,表示紅色分量。

g

uint8_t

一個介於 0 到 255 之間的整數,表示綠色分量。

b

uint8_t

一個介於 0 到 255 之間的整數,表示藍色分量。

筆記#

  • The following predefined color constants are supported:

    • black
    • blue
    • blue_green
    • blue_violet
    • cyan
    • green
    • orange
    • purple
    • red
    • red_orange
    • red_violet
    • transparent
    • violet
    • white
    • yellow
    • yellow_green
    • yellow_orange

例子#

// Create the color yellow using a hexadecimal value
color myYellow = color(0xFFF700);

// Create a color using RGB values
color myBlue = color(0, 100, 255);

// Create a color using a predefined constant
color myRed = color(red);

成員功能#

color 類別包含以下成員函數:

  • rgb — 使用 RGB 值更新顏色。

  • hsv — 使用 HSV 值更新顏色。

  • web — 使用 web 十六進位顏色字串更新顏色。

在呼叫任何 color 成員函數之前,必須先建立一個 color 實例,如下所示:

// Create a color using RGB values
color brainColor = color(255, 128, 0);

rgb#

使用 RGB 值更新現有 color 物件的顏色。

Available Functions

1 — 使用打包的 RGB 值更新顏色物件。

uint32_t rgb( 
  uint32_t value );

2 — 使用單獨的 RGB 值更新顏色物件。

uint32_t rgb( 
  uint8_t r, 
  uint8_t g, 
  uint8_t b );

Parameters

範圍

類型

描述

value

uint32_t

包含所有三個顏色分量的打包 RGB 值。

r

uint8_t

一個介於 0 到 255 之間的整數,表示顏色中的紅色分量。

g

uint8_t

一個介於 0 到 255 之間的整數,表示顏色中的綠色分量。

b

uint8_t

一個介於 0 到 255 之間的整數,表示顏色中的藍色分量。

Return Values

傳回一個 uint32_t ,表示更新顏色的打包 RGB 值。

Examples
// Draw a rectangle with a custom teal color
color brainColor = color(50, 200, 180);
Brain.Screen.setFillColor(brainColor);
Brain.Screen.drawRectangle(0, 0, 480, 120);

// Change the color to magenta for a second rectangle
brainColor.rgb(170, 40, 150);

Brain.Screen.setFillColor(brainColor);
Brain.Screen.drawRectangle(0, 120, 480, 120);

// Draw a rectangle with a custom teal color
color brainColor = color(50, 200, 180);
Brain.Screen.setFillColor(brainColor);
Brain.Screen.drawRectangle(0, 0, 480, 120);

// Change the color to magenta for a second rectangle
brainColor.rgb(0xAA2896);

Brain.Screen.setFillColor(brainColor);
Brain.Screen.drawRectangle(0, 120, 480, 120);

hsv#

使用色調、飽和度和亮度值更新現有 color 物件的顏色。

Available Functions
color& hsv( 
  uint32_t hue, 
  double   sat, 
  double   value );

Parameters

範圍

類型

描述

hue

uint32_t

一個介於 0 到 360 之間的整數,表示顏色的色調。

sat

double

一個介於 0.0 到 1.0 之間的雙精度浮點數,表示顏色的飽和度。

value

double

一個介於 0.0 到 1.0 之間的雙精度浮點數,表示顏色的亮度。

Return Values

傳回已更新的 color 物件的參考。

Examples
// Draw a rectangle with a custom teal color
color brainColor = color(50, 200, 180);
Brain.Screen.setFillColor(brainColor);
Brain.Screen.drawRectangle(0, 0, 480, 120);

// Change the color to magenta for a second rectangle
brainColor.hsv(300, 0.75, 0.78);

Brain.Screen.setFillColor(brainColor);
Brain.Screen.drawRectangle(0, 120, 480, 120);

web#

使用十六進位或網頁顏色值更新現有 color 物件的顏色。

Available Functions
color& web( 
  const char* color );

Parameters

範圍

類型

描述

color

const char*

定義特定顏色的十六進位或網頁顏色值(例如, “#FF0000” 表示紅色)。

Return Values

傳回已更新的 color 物件的參考。

Examples
// Draw a rectangle with a custom teal color
color brainColor = color(50, 200, 180);
Brain.Screen.setFillColor(brainColor);
Brain.Screen.drawRectangle(0, 0, 480, 120);

// Change the color to magenta for a second rectangle
brainColor.web("#AA2896");

Brain.Screen.setFillColor(brainColor);
Brain.Screen.drawRectangle(0, 120, 480, 120);