Advertisement
Pirnogion

OC/Rectangle

Sep 6th, 2015
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.92 KB | None | 0 0
  1. local rectangleAPI = {}
  2.  
  3. --Создание прямоугольника по координатам его верхней левой точки основываясь на ширине и высоте.
  4. function rectangleAPI.CreateRectXYWH(name, x, y, width, height)
  5.     local _rectangle = {
  6.         ["name"] = name,
  7.         ["sx"] = x,
  8.         ["sy"] = y,
  9.         ["ex"] = x+width,
  10.         ["ey"] = y+height,
  11.         ["width"] = width,
  12.         ["height"] = height,
  13.         ["area"] = width * height
  14.     }
  15.  
  16.     return _rectangle
  17. end
  18.  
  19. --Создание прямоугольника по координатам его верхней левой точки и нижней правой.
  20. function rectangleAPI.CreateRectXYXY(name, sx, sy, ex, ey)
  21.     local _w, _h = math.abs(ex-sx), math.abs(ey-sy)
  22.  
  23.     local _rectangle = {
  24.         ["name"] = name,
  25.         ["sx"] = sx,
  26.         ["sy"] = sy,
  27.         ["ex"] = ex,
  28.         ["ey"] = ey,
  29.         ["width"] = _w,
  30.         ["height"] = _h,
  31.         ["area"] = _w * _h
  32.     }
  33.  
  34.     return _rectangle
  35. end
  36.  
  37. --Описание структуры прямоугольника - пустой прямоугольник.
  38. function rectangleAPI.CreateVoidRect(name)
  39.     local _rectangle = {
  40.         ["name"] = name,
  41.         ["sx"] = 0,
  42.         ["sy"] = 0,
  43.         ["ex"] = 0,
  44.         ["ey"] = 0,
  45.         ["width"] = 0,
  46.         ["height"] = 0,
  47.         ["area"] = 0
  48.     }
  49.  
  50.     return _rectangle
  51. end
  52.  
  53. --Находится ли заданная точка внутри прямоугольника.
  54. function rectangleAPI.PointInRectFree(x, y, sx, sy, ex, ey)
  55.         if (x >= sx) and (x <= ex) and (y >= sy) and (y <= ey) then return true end    
  56.         return false
  57. end
  58.  
  59. --Находится ли заданная точка внутри прямоугольника. С использованием структуры "прямоугольник".
  60. function rectangleAPI.PointInRect(x, y, rect)
  61.         if (x >= rect.sx) and (x <= rect.ex) and (y >= rect.sy) and (y <= rect.ey) then return true end    
  62.         return false
  63. end
  64.  
  65. return rectangleAPI
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement