Revision Difference
Global.HSVToColor#514925
<function name="HSVToColor" parent="Global" type="libraryfunc">⤶
<description>⤶
Converts a color from [HSV color space](https://en.wikipedia.org/wiki/HSL_and_HSV) into RGB color space and returns a <page>Color</page>.⤶
⤶
<bug issue="2407">The returned color will not have the color metatable.</bug>⤶
</description>⤶
<realm>Shared and Menu</realm>⤶
<args>⤶
<arg name="hue" type="number">The hue in degrees from 0-360.</arg>⤶
<arg name="saturation" type="number">The saturation from 0-1.</arg>⤶
<arg name="value" type="number">The value from 0-1.</arg>⤶
</args>⤶
<rets>⤶
<ret name="" type="table">The <page>Color</page> created from the HSV color space.</ret>⤶
</rets>⤶
</function>⤶
⤶
<example>⤶
<description>A helper function for drawing rainbow text.</description>⤶
<code>⤶
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⤶
</code>⤶
<output></output>⤶
⤶
</example>⤶
⤶
⤶
<example>⤶
<description>A helper function for printing rainbow text in the chat.</description>⤶
<code>⤶
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⤶
</code>⤶
<output></output>⤶
⤶
</example>⤶
⤶
⤶
<example>⤶
<description>A helper function for printing rainbow text in the console.</description>⤶
<code>⤶
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⤶
</code>⤶
<output></output>⤶
⤶
</example>