Rect
Rect описывает прямоугольник через позицию (x, y) и размер (width, height). Он часто используется для размещения элементов ImGui и других двумерных областей.
Зачем нужен и как обрабатывается
Заголовок раздела «Зачем нужен и как обрабатывается»Rect только хранит геометрию прямоугольной области. Он ничего не размещает и не обрезает самостоятельно. Конкретный метод, получивший Rect, решает, как трактовать координаты: например, ImGui использует его как экранную область отрисовки.
Производные поля xMin/xMax/yMin/yMax/center пересчитывают те же границы. Изменение локального прямоугольника не перемещает ранее нарисованный элемент — его нужно снова передать API отрисовки.
Быстрый пример
Заголовок раздела «Быстрый пример»local area = Rect.new(20, 30, 200, 40)
print(area.center) -- (120.00, 50.00)Создание прямоугольника
Заголовок раздела «Создание прямоугольника»Rect.new(x: number, y: number, width: number, height: number): Rect| Аргумент | Тип | Описание |
|---|---|---|
x |
number |
Позиция по оси X. |
y |
number |
Позиция по оси Y. |
width |
number |
Ширина. |
height |
number |
Высота. |
Свойства
Заголовок раздела «Свойства»Все свойства Rect доступны на чтение и запись.
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
x |
number |
get/set |
Позиция по X. |
y |
number |
get/set |
Позиция по Y. |
width |
number |
get/set |
Ширина. |
height |
number |
get/set |
Высота. |
xMin |
number |
get/set |
Минимальная координата X. |
yMin |
number |
get/set |
Минимальная координата Y. |
xMax |
number |
get/set |
Максимальная координата X. |
yMax |
number |
get/set |
Максимальная координата Y. |
center |
Vector2 |
get/set |
Центр прямоугольника. |
Для Rect.new(10, 20, 30, 40) значения выглядят так:
| Свойство | Значение |
|---|---|
x, y |
10, 20 |
width, height |
30, 40 |
xMin, yMin |
10, 20 |
xMax, yMax |
40, 60 |
center |
(25, 40) |
Изменение прямоугольника
Заголовок раздела «Изменение прямоугольника»Можно менять как позицию и размер, так и границы или центр:
local area = Rect.new(20, 20, 320, 180)
area.width = 400area.center = Vector2.new(500, 300)Связанные свойства описывают один и тот же прямоугольник. После изменения границы, центра, позиции или размера перечитайте остальные значения, если они нужны дальше в расчётах.
Использование с ImGui
Заголовок раздела «Использование с ImGui»local area = Rect.new(20, 20, 320, 180)
Scheduler:OnFrame(function() ImGui:DrawTexture(texture, area)end)Система координат определяется API, которому передаётся Rect. Сам тип только хранит прямоугольную область. Практические способы вывода описаны на странице ImGui.