Global/HSVToColor

From Garry's Mod
(Difference between revisions)
Jump to: navigation, search
m (Fix description grammar consistency)
 
Line 9: Line 9:
 
|type=number
 
|type=number
 
|name=hue
 
|name=hue
|desc=Hue in degrees. (0 to 360)
+
|desc=The hue in degrees from 0-360.
 
}}
 
}}
 
{{Arg
 
{{Arg
 
|type=number
 
|type=number
 
|name=saturation
 
|name=saturation
|desc=The saturation, from 0 to 1.
+
|desc=The saturation from 0-1.
 
}}
 
}}
 
{{Arg
 
{{Arg
 
|type=number
 
|type=number
 
|name=value
 
|name=value
|desc=The "Value", from 0 to 1.
+
|desc=The value from 0-1.
 
}}
 
}}
 
{{Ret
 
{{Ret

Latest revision as of 09:28, 4 October 2019

 HSVToColor( )

Contents

Description

Converts a color from HSV color space into RGB color space and returns a Color structure.

BUG

The returned color will not have the color metatable.

Issue Tracker: #2407

Arguments

number hue

The hue in degrees from 0-360.

Arguments

number saturation

The saturation from 0-1.

Arguments

number value

The value from 0-1.

Returns

table

The Color structure created from the HSV color space.

Examples

Example

A helper function for drawing rainbow text.

local function DrawRainbowText( frequency, str, font, x, y )
	
	surface.SetFont( font )
	
	for i = 1, #str do
		surface.SetTextColor( HSVToColor( i * frequency % 360, 1, 1 ) )
		local w = surface.GetTextSize( string.sub( str, 1, i - 1 ) )
		surface.SetTextPos( x + w, y )
		surface.DrawText( string.sub( str, i, i ) )
	end
	
end

Output:

DrawRainbowText.png

Examples

Example

A helper function for printing rainbow text in the chat.

local function ChatPrintRainbow( frequency, str )
	
	local text = {}
	
	for i = 1, #str do
		table.insert( text, HSVToColor( i * frequency % 360, 1, 1 ) )
		table.insert( text, string.sub( str, i, i ) )
	end

	chat.AddText( unpack( text ) )
	
end

Output:

ChatPrintRainbow.png

Examples

Example

A helper function for printing rainbow text in the console.

local function ConsolePrintRainbow( frequency, str )
	
	local text = {}
	
	for i = 1, #str do
		table.insert( text, HSVToColor( i * frequency % 360, 1, 1 ) )
		table.insert( text, string.sub( str, i, i ) )
	end
	
	table.insert( text, "\n" )
	
	MsgC( unpack( text ) )
	
end

Output:

ConsolePrintRainbow.png
Personal tools
Navigation