Garry's Mod Wiki

surface.DrawTexturedRectRotated

  surface.DrawTexturedRectRotated( number x, number y, number width, number height, number rotation )

Description

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

This is a rendering function that requires a 2d rendering context.

This means that it will only work in 2d Rendering Hooks.

Arguments

1 number x
The X integer co-ordinate, representing the center of the rectangle.
2 number y
The Y integer co-ordinate, representing the center of the rectangle.
3 number width
The integer width of the rectangle.
4 number height
The integer height of the rectangle.
5 number rotation
The rotation of the rectangle, in degrees.

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

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 )