Custom Colors#

Introduction#

The VEX AIR Drone supports the use of custom colors for drawing and printing text. Custom colors can be created using RGB values or hex codes. Custom Colors also include methods for both updating color objects during a project.

Below is a list of available constructors:

Constructors – Create a new Color object.

  • Color(value) – Creates a color using a hex string (e.g. "#FFF700") or hex integer (e.g. 0xFFF700).

  • Color(r, g, b) – Creates a color using red, green, and blue values.

Mutators – Update an existing Color object.

  • rgb – Sets a created color object to a new color using RGB values.

  • hsv – Sets a created color object to a new color using hue, saturation, and brightness values.

  • web – Sets a created color object to a new color using a web hex color string (e.g. "#32C8B6").

Getters – Return a color object’s hue or saturation value.

  • saturation – Returns the saturation value for a custom color.

  • hue – Returns the hue value for a custom color.

Creating a Custom Color#

To use a custom color, you must first create a Color object using one of the following constructors:

Hexadecimal String#

Creates a color using a web color string (hex code).

Usage:
Color(value)

Parameter

Description

value

A six-digit hexidecimal code as a string (e.g., “#FF700” for yellow).

# Construct a yellow Color "yellow" using a
# hexadecimal string
yellow = Color("#FFF700")

controller.screen.set_pen_color(yellow)
controller.screen.print("My Yellow")

Hexadecimal Integer#

Creates a color using a six-digit hexadecimal integer.

Usage:
Color(value)

Parameter

Description

value

A six-digit integer in hexadecimal format (e.g., 0xFFF700 for yellow).

# Construct a yellow Color "yellow" using a
# hexadecimal integer
yellow = Color(0xFFF700)

controller.screen.set_pen_color(yellow)
controller.screen.print("My Yellow")

RGB#

Creates a color using separate red, green, and blue values.

Usage:
Color(r, g, b)

Parameter

Description

r

An integer from 0 to 255 representing the red component.

g

An integer from 0 to 255 representing the green component.

b

An integer from 0 to 255 representing the blue component.

# Construct a yellow Color "yellow" using
# RGB values
yellow = Color(255, 247, 0)

controller.screen.set_pen_color(yellow)
controller.screen.print("My Yellow")

Mutators#

These methods allow you to modify a Color object after it has been created during a project.

rgb#

rgb updates the color of an existing Color object using RGB values.

Usage:
rgb(r, g, b)

Parameters

Description

r

An integer from 0 to 255 representing the red component of the color.

g

An integer from 0 to 255 representing the green component of the color.

b

An integer from 0 to 255 representing the blue component of the color.

# Create a custom teal color
my_fill_color = Color(50, 200, 180)

# Draw a teal rectangle
controller.screen.draw_rectangle(x=30, y=70, width=80, height=50, color=my_fill_color)

# Draw a magenta rectangle
my_fill_color.rgb(170, 40, 150)
controller.screen.draw_rectangle(x=130, y=70, width=80, height=50, color=my_fill_color)

hsv#

hsv updates the color of an existing Color object using HSV values.

Note: hsv can only be used to change a Color object that has already been created. It cannot be used to create a new Color Object.

Usage:
hsv(h, s, v)

Parameters

Description

h

An integer from 0 to 360 representing the hue of the color.

s

A float from 0.0 to 1.0 representing the saturation of the color.

v

A float from 0.0 to 1.0 representing the brightness of the color.

# Create a custom teal color
my_fill_color = Color(50, 200, 180)

# Draw a teal rectangle
controller.screen.draw_rectangle(x=30, y=70, width=80, height=50, color=my_fill_color)

# Draw a magenta rectangle
my_fill_color.hsv(300, 0.75, 0.78)
controller.screen.draw_rectangle(x=130, y=70, width=80, height=50, color=my_fill_color)

web#

web updates the color of an existing Color object using a web color (hex code).

Usage:
web(value)

Parameters

Description

value

A web color (hex code) as a string used to update the existing color instance.

# Create a custom teal color
my_fill_color = Color("#32C8B6")

# Draw a teal rectangle
controller.screen.draw_rectangle(x=30, y=70, width=80, height=50, color=my_fill_color)

# Draw a magenta rectangle
my_fill_color.web("#AA2896")
controller.screen.draw_rectangle(x=130, y=70, width=80, height=50, color=my_fill_color)

Getters#

saturation#

saturation returns the saturation value for a custom color as a float from 0 to 1.

Usage:
my_color.saturation()

Replace my_color with the name of the custom color object.

Parameters

Description

This method has no parameters.

# Create a custom teal color
color_teal = Color(50, 200, 180)

# Display the saturation value of teal
controller.screen.print(color_teal.saturation())

hue#

hue returns the hue value for a custom color as a float from 0 to 359.

Usage:
my_color.hue()

Replace my_color with the name of the custom color object.

Parameters

Description

This method has no parameters.

# Create a custom teal color
color_teal = Color(50, 200, 180)

# Display the hue value of teal
controller.screen.print(color_teal.hue())