Advertisement
Blue_Kirby

HEXAGONS

Apr 28th, 2014
879
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.81 KB | None | 0 0
  1. local function generate_hexagon( x, y, r, ang )
  2.     local x, y, r = x, y, r;
  3.     local ang = ang or 0;
  4.  
  5.     local sin, cos = math.sin( math.rad( ang ) ), math.cos( math.rad( ang ) );
  6.     local sin60, cos60 = math.sin( math.rad( ang + 60 ) ), math.cos( math.rad( ang + 60 ) );
  7.     local sin120, cos120 = math.sin( math.rad( ang + 120 ) ), math.cos( math.rad( ang + 120 ) );
  8.     local sin180, cos180 = math.sin( math.rad( ang + 180 ) ), math.cos( math.rad( ang + 180 ) );
  9.     local sin240, cos240 = math.sin( math.rad( ang + 240 ) ), math.cos( math.rad( ang + 240 ) );
  10.     local sin300, cos300 = math.sin( math.rad( ang + 300 ) ), math.cos( math.rad( ang + 300 ) );
  11.    
  12.     local a, b = r*cos, r*sin;
  13.     local c, d = r*cos60, r*sin60;
  14.     local e, f = r*cos120, r*sin120;
  15.     local g, h = r*cos180, r*sin180;
  16.     local i, j = r*cos240, r*sin240;
  17.     local k, l = r*cos300, r*sin300;
  18.  
  19.     return {
  20.         { x = x + a, y = y + b },
  21.         { x = x + c, y = y + d },
  22.         { x = x + e, y = y + f },
  23.         { x = x + g, y = y + h },
  24.         { x = x + i, y = y + j },
  25.         { x = x + k, y = y + l },
  26.     };
  27. end
  28.  
  29. local function TRIANGLES()
  30.     local x, y = ScrW()*0.5, ScrH()*0.5;
  31.  
  32.     surface.SetDrawColor( 255, 0, 0, 255 );
  33.     surface.DrawPoly( generate_hexagon( x, y, 150,CurTime()*50%60 ) );
  34.    
  35.     surface.SetDrawColor( 255, 0, 0, 255 );
  36.     surface.DrawPoly( generate_hexagon( x, y, 150,-CurTime()*50%60 ) );
  37.  
  38.     surface.SetDrawColor( 255, 0, 255, 255 );
  39.     surface.DrawPoly( generate_hexagon( x, y, 140, CurTime()*100%60 ) );
  40.  
  41.     surface.SetDrawColor( 255, 150, 0, 255 );
  42.     surface.DrawPoly( generate_hexagon( x, y, 135, CurTime()*120%60 ) );
  43.  
  44.     surface.SetDrawColor( 255, 255, 0, 255 );
  45.     surface.DrawPoly( generate_hexagon( x, y, 130, -CurTime()*130%60 ) );
  46.  
  47.     surface.SetDrawColor( 0, 255, 255, 255 );
  48.     surface.DrawPoly( generate_hexagon( x, y, 125, (CurTime()+20)*140%60 ) );
  49.  
  50.     surface.SetDrawColor( 0, 255, 50, 255 );
  51.     surface.DrawPoly( generate_hexagon( x, y, 110, -(CurTime()+20)*150%60 ) );
  52.  
  53.     surface.SetDrawColor( 0, 150, 255, 255 );
  54.     surface.DrawPoly( generate_hexagon( x, y, 90, (CurTime()+20)*166%60 ) );
  55.  
  56.     surface.SetDrawColor( 0, 0, 255, 255 );
  57.     surface.DrawPoly( generate_hexagon( x, y, 70, -(CurTime()+20)*176%60 ) );
  58.  
  59.     surface.SetDrawColor( 150, 150, 250, 255 );
  60.     surface.DrawPoly( generate_hexagon( x, y, 50, -(CurTime()+20)*200%60 ) );
  61.  
  62.     surface.SetDrawColor( 150, 150, 250, 255 );
  63.     surface.DrawPoly( generate_hexagon( x, y, 50, (CurTime()+20)*220%60 ) );
  64.  
  65.     surface.SetDrawColor( 255, 255, 255, 255 );
  66.     surface.DrawPoly( generate_hexagon( x, y, 25, (CurTime()+20)*220%60 ) );
  67.  
  68.     surface.SetDrawColor( 255, 255, 255, 255 );
  69.     surface.DrawPoly( generate_hexagon( x, y, 25, -(CurTime()+20)*250%60 ) );
  70.  
  71.     surface.SetDrawColor( 255, 255, 255, 255 );
  72.     surface.DrawPoly( generate_hexagon( x, y, 25, (CurTime()+20)*260%60 ) );
  73. end
  74.  
  75. hook.Add( "HUDPaint", "Triangles", TRIANGLES ); -- Not really triangles
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement