Garry's Mod Wiki

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>