From e7d470e954d0a17ab1b2fe0065f46f78475272f9 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 8 Apr 2020 17:10:29 -0400 Subject: Add chickade 0.5.0 stuff. --- manuals/chickadee/Colors.html | 377 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 377 insertions(+) create mode 100644 manuals/chickadee/Colors.html (limited to 'manuals/chickadee/Colors.html') diff --git a/manuals/chickadee/Colors.html b/manuals/chickadee/Colors.html new file mode 100644 index 0000000..3c62439 --- /dev/null +++ b/manuals/chickadee/Colors.html @@ -0,0 +1,377 @@ + + + + + + +Colors (The Chickadee Game Toolkit) + + + + + + + + + + + + + + + + + + + +
+

+Next: , Up: Graphics   [Contents][Index]

+
+
+

2.3.1 Colors

+ +

Merriam-Webster defines color as “a phenomenon of light (such as red, +brown, pink, or gray) or visual perception that enables one to +differentiate otherwise identical objects.” In this essay, I +will… +

+

Okay, okay. We all know what colors are. Chickadee provides a data +type to represent color and some convenient procedures to work with +them in the (chickadee render color) module. Colors are made +up of four components, or channels: red, green, blue, and alpha +(transparency.) Each of these values is expressed as a uniform +floating point value in the range [0, 1]. 0 means that color channel +is unrepresented in the resulting color, whereas 1 means that color +channel is at full intensity. +

+

Making a color object is easy, and there’s a few ways to do it +depending on what’s most convenient. The first is make-color, +where you specify each channel exactly as described above. This is +fully opaque magenta: +

+
+
(make-color 1.0 0.0 1.0 1.0)
+
+ +

Many people are used to representing colors as 6 or 8 digit +hexadecimal numbers, so Chickadee also allows that. Here’s magenta, +again: +

+
+
(rgba #xFF00FFFF)
+(rgb #xFF00FF) ; equivalent to the above
+
+ +
+
Procedure: make-color r g b a
+

Return a new color object with a red value of r, a green value +of g, a blue value of b, and an alpha (transparency) value +of a. All values are clamped to the range [0, 1]. +

+ +
+
Procedure: rgba color-code
+

Return a new color object using the values of the first 32 bits of +color-code. Each channel occupies 8 bits. Starting from the +most significant bit, red is first, followed by green, then blue, then +alpha. Color codes are often represented as 6 or 8 digit hexadecimal +numbers in various other programs. +

+ +
+
Procedure: rgb color-code
+

Like rgba, but color-code is a 24 bit code with no alpha +channel. +

+ +
+
Procedure: color? obj
+

Return #t if obj is a color object. +

+ +
+
Procedure: color-r color
+

Return the red channel of color. +

+ +
+
Procedure: color-g color
+

Return the green channel of color. +

+ +
+
Procedure: color-b color
+

Return the blue channel of color. +

+ +
+
Procedure: color-a color
+

Return the alpha channel of color. +

+ +
+
Procedure: transparency alpha
+

Return a new color that is white (RGB channels set to 1) with an alpha +channel value of alpha. This can be useful for creating a color +that can be multiplied against another color to make it more +transparent. +

+ +
+
Procedure: string->color s
+

Convert the hexadecimal color code in the string s to a color +object. The following string formats are supported: +

+
+
(string->color "#FF00FFFF")
+(string->color "FF00FFFF")
+(string->color "#FF00FF")
+(string->color "FF00FF")
+
+ +
+ +
+
Procedure: color* a b
+

Multiply the color a with the color or number b and return +a new color with the result. +

+ +
+
Procedure: color+ a b
+

Add the color a to the color b and return a new color with +the result. +

+ +
+
Procedure: color- a b
+

Subtract the color b from the color a and return a new +color with the result. +

+ +
+
Procedure: color-inverse color
+

Invert the red, green, and blue channels of color and return a +new color with the result. +

+ +
+
Procedure: color-lerp start end alpha
+

Linearly interpolate the colors start and end using the +factor alpha, a number in the range [0, 1]. +

+ +

2.3.1.1 Stock Colors

+ +

For convenience, Chickadee comes with some basic colors predefined: +

+
+
Variable: white
+
+ +
+
Variable: black
+
+ +
+
Variable: red
+
+ +
+
Variable: green
+
+ +
+
Variable: blue
+
+ +
+
Variable: yellow
+
+ +
+
Variable: magenta
+
+ +
+
Variable: cyan
+
+ +

For fun, there are also predefined colors for the classic +Tango color palette. +

+
+
Variable: tango-light-butter
+
+ +
+
Variable: tango-butter
+
+ +
+
Variable: tango-dark-butter
+
+ +
+
Variable: tango-light-orange
+
+ +
+
Variable: tango-orange
+
+ +
+
Variable: tango-dark-orange
+
+ +
+
Variable: tango-light-chocolate
+
+ +
+
Variable: tango-chocolate
+
+ +
+
Variable: tango-dark-chocolate
+
+ +
+
Variable: tango-light-chameleon
+
+ +
+
Variable: tango-chameleon
+
+ +
+
Variable: tango-dark-chameleon
+
+ +
+
Variable: tango-light-sky-blue
+
+ +
+
Variable: tango-sky-blue
+
+ +
+
Variable: tango-dark-sky-blue
+
+ +
+
Variable: tango-light-plum
+
+ +
+
Variable: tango-plum
+
+ +
+
Variable: tango-dark-plum
+
+ +
+
Variable: tango-light-scarlet-red
+
+ +
+
Variable: tango-scarlet-red
+
+ +
+
Variable: tango-dark-scarlet-red
+
+ +
+
Variable: tango-aluminium-1
+
+ +
+
Variable: tango-aluminium-2
+
+ +
+
Variable: tango-aluminium-3
+
+ +
+
Variable: tango-aluminium-4
+
+ +
+
Variable: tango-aluminium-5
+
+ +
+
Variable: tango-aluminium-6
+
+ +
+
+

+Next: , Up: Graphics   [Contents][Index]

+
+ + + + + -- cgit v1.2.3