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>