surface/DrawTexturedRectRotated

From Garry's Mod
(Difference between revisions)
Jump to: navigation, search
m (Also menu state)
Line 1: Line 1:
 
{{Func
 
{{Func
 
|Description=Draw a textured rotated rectangle with the given position and dimensions and angle on the screen, using the current active texture.
 
|Description=Draw a textured rotated rectangle with the given position and dimensions and angle on the screen, using the current active texture.
 +
 +
{{RenderingContext|Function|2D}}
 
|Realm=Client and Menu
 
|Realm=Client and Menu
 
|IsClass=No
 
|IsClass=No
|Name=DrawTexturedRectRotated
 
|Parent=surface
 
 
}}
 
}}
 
{{Arg
 
{{Arg

Revision as of 17:23, 29 August 2016

 surface.DrawTexturedRectRotated( )

Contents

Description

Draw a textured rotated rectangle with the given position and dimensions and angle on the screen, using the current active texture.

NOTE

This is a rendering function that requires a 2D rendering context.
This means that it will only work in hooks with a 2D rendering context.

Arguments

number x

The X co-ordinate, representing the center of the rectangle.

Arguments

number y

The Y co-ordinate, representing the center of the rectangle.

Arguments

number width

The width of the rectangle.

Arguments

number height

The height of the rectangle.

Arguments

number rotation

The rotation of the rectangle, in degrees.

Examples

Example

A function that allows you to override the origin of rotation.

x0 and y0 are relative to the center of the rectangle.

function surface.DrawTexturedRectRotatedPoint( x, y, w, h, rot, x0, y0 )
	
	local c = math.cos( math.rad( rot ) )
	local s = math.sin( math.rad( rot ) )
	
	local newx = y0 * s - x0 * c
	local newy = y0 * c + x0 * s
	
	surface.DrawTexturedRectRotated( x + newx, y + newy, w, h, rot )
	
end


Examples

Example

Draws a simple red forever rotating box.

function draw.RotatedBox( x, y, w, h, ang, color )
	draw.NoTexture()
	surface.SetDrawColor( color or color_white )
	surface.DrawTexturedRectRotated( x, y, w, h, ang )
end

hook.Add( "HUDPaint", "my_rotated_box", function()
	draw.RotatedBox( 100, 100, 100, 100, CurTime() % 360, Color( 255, 0, 0) )
end )


Personal tools
Navigation