hs.geometry
Объект-утилита для представления точек, размеров и прямоугольников на двумерной плоскости
Объект hs.geometry может быть:
- точкой или вектором2, с полями
xиyдля координат - размером с полями
wиhдля ширины и высоты соответственно - прямоугольником, который имеет компонент точки для одного из углов и компонент размера — поэтому у него есть все 4 поля
- относительным прямоугольником, который является прямоугольником, все поля которого находятся в диапазоне от 0 до 1; он представляет «относительный» прямоугольник внутри другого (абсолютного) прямоугольника (например, относительный прямоугольник
x=0,y=0 , w=0.5,h=0.5— это четверть, ближайшая к началу координат); обратите внимание, что hs.geometry не различает внутренне обычные прямоугольники и относительные прямоугольники; вы можете преобразовывать между ними по мере необходимости с помощью соответствующих методов
Вы можете создавать эти объекты множеством способов, используя my_obj=hs.geometry.new(...) или просто my_obj=hs.geometry(...), передавая любое из следующих:
- 4 параметра
X,Y,W,Hдля соответствующих полей — W и H, или X и Y, могут бытьnil:-
hs.geometry(X,Y)создает точку -
hs.geometry(nil,nil,W,H)создает размер -
hs.geometry(X,Y,W,H)создает прямоугольник, заданный шириной и высотой относительно одного из углов
-
- таблица
{X,Y}создает точку - таблица
{X,Y,W,H}создает прямоугольник - таблица
{x=X,y=Y,w=W,h=H}создает прямоугольник, или, если вы опустите X и Y, или W и H, создает размер или точку соответственно - таблица
{x1=X1,y1=Y1,x2=X2,y2=Y2}создает прямоугольник, где X1,Y1 и X2,Y2 — координаты противоположных углов - строка:
-
"X Y"или"X,Y"создает точку -
"WxH"или"W*H"создает размер -
"X Y/WxH"или"X,Y W*H"(или их вариации) создает прямоугольник, заданный шириной и высотой относительно одного из углов -
"X1,Y1>X2,Y2"или"X1 Y1 X2 Y2"(или их вариации) создает прямоугольник, заданный двумя противоположными углами -
"[X,Y WxH]"или"[X1,Y1 X2,Y2]"или вариации (обратите внимание на квадратные скобки) создают относительный прямоугольник, где x=X/100, y=Y/100, w=W/100, h=H/100
-
- точка и размер
"X Y","WxH"или{x=X,y=Y},{w=W,h=H}создают прямоугольник
Вы можете использовать любой из этих объектов, где в Hammerspoon ожидается объект hs.geometry; для вас будет вызван конструктор.
Обзор API
- Конструкторы — вызовы API, которые возвращают объект, обычно объект, предлагающий методы API
- Поля — переменные, к которым можно получить доступ только из объекта, возвращаемого конструктором
- Методы — вызовы API, которые могут выполняться только на объекте, возвращаемом конструктором
Документация API
Конструкторы
copy
| Подпись | hs.geometry.copy(geom) -> hs.geometry object |
|---|---|
| Тип | Конструктор |
| Описание |
Создает копию объекта hs.geometry |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 151 |
new
| Подпись | hs.geometry.new(...) -> hs.geometry object |
|---|---|
| Тип | Конструктор |
| Описание |
Создает новый объект hs.geometry |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 141 |
point
| Подпись | hs.geometry.point(x, y) -> hs.geometry point |
|---|---|
| Тип | Конструктор |
| Описание |
Удобная функция для создания объекта точки |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 732 |
rect
| Подпись | hs.geometry.rect(x, y, w, h) -> hs.geometry rect |
|---|---|
| Тип | Конструктор |
| Описание |
Удобная функция для создания прямоугольника-таблицы |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 717 |
size
| Подпись | hs.geometry.size(w, h) -> hs.geometry size |
|---|---|
| Тип | Конструктор |
| Описание |
Удобная функция для создания объекта размера |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 744 |
Поля
area
| Подпись | hs.geometry.area |
|---|---|
| Тип | Поле |
| Описание |
Число, представляющее площадь этого прямоугольника или размера; изменение его приведет к масштабированию прямоугольника/размера — см. |
| Исходный код | extensions/geometry/geometry.lua строка 333 |
aspect
| Подпись | hs.geometry.aspect |
|---|---|
| Тип | Поле |
| Описание |
Число, представляющее соотношение сторон этого прямоугольника или размера; изменение его перестроит прямоугольник/размер, сохранив его площадь и центр неизменными |
| Исходный код | extensions/geometry/geometry.lua строка 352 |
bottomright
| Подпись | hs.geometry.bottomright |
|---|---|
| Тип | Поле |
| Описание |
Псевдоним для |
| Исходный код | extensions/geometry/geometry.lua строка 267 |
center
| Подпись | hs.geometry.center |
|---|---|
| Тип | Поле |
| Описание |
Точка, представляющая геометрический центр этого прямоугольника или середину этого вектора2; изменение его переместит прямоугольник/вектор соответственно |
| Исходный код | extensions/geometry/geometry.lua строка 305 |
h
| Подпись | hs.geometry.h |
|---|---|
| Тип | Поле |
| Описание |
Высота этого прямоугольника или размера; изменение его сохранит неизменным угол прямоугольника x,y |
| Исходный код | extensions/geometry/geometry.lua строка 218 |
length
| Подпись | hs.geometry.length |
|---|---|
| Тип | Поле |
| Описание |
Число, представляющее длину диагонали этого прямоугольника или длину этого вектора2; изменение его приведет к масштабированию прямоугольника/вектора — см. |
| Исходный код | extensions/geometry/geometry.lua строка 318 |
string
| Подпись | hs.geometry.string |
|---|---|
| Тип | Поле |
| Описание |
Строка |
| Источник | extensions/geometry/geometry.lua строка 281 |
table
| Подпись | hs.geometry.table |
|---|---|
| Тип | Поле |
| Описание |
Таблица |
| Источник | extensions/geometry/geometry.lua строка 275 |
topleft
| Подпись | hs.geometry.topleft |
|---|---|
| Тип | Поле |
| Описание |
Псевдоним для |
| Источник | extensions/geometry/geometry.lua строка 206 |
w
| Подпись | hs.geometry.w |
|---|---|
| Тип | Поле |
| Описание |
Ширина этого прямоугольника или размера; изменение сохранит постоянными координаты угла x,y прямоугольника |
| Источник | extensions/geometry/geometry.lua строка 214 |
wh
| Подпись | hs.geometry.wh |
|---|---|
| Тип | Поле |
| Описание |
Компонент размера для этого объекта hs.geometry; установка нового размера сохранит постоянными координаты угла x,y прямоугольника |
| Источник | extensions/geometry/geometry.lua строка 251 |
x
| Подпись | hs.geometry.x |
|---|---|
| Тип | Поле |
| Описание |
Координата x для этой точки или угла прямоугольника; изменение сместит прямоугольник, но сохранит ширину и высоту |
| Источник | extensions/geometry/geometry.lua строка 173 |
x1
| Подпись | hs.geometry.x1 |
|---|---|
| Тип | Поле |
| Описание |
Псевдоним для |
| Источник | extensions/geometry/geometry.lua строка 181 |
x2
| Подпись | hs.geometry.x2 |
|---|---|
| Тип | Поле |
| Описание |
Координата x для второго угла этого прямоугольника; изменение повлияет на ширину прямоугольника |
| Источник | extensions/geometry/geometry.lua строка 231 |
x2y2
| Подпись | hs.geometry.x2y2 |
|---|---|
| Тип | Поле |
| Описание |
Точка, обозначающая другой угол этого объекта hs.geometry; установка новой точки изменит ширину и высоту прямоугольника |
| Источник | extensions/geometry/geometry.lua строка 263 |
xy
| Подпись | hs.geometry.xy |
|---|---|
| Тип | Поле |
| Описание |
Компонент точки для этого объекта hs.geometry; установка новой точки сместит прямоугольник, но сохранит ширину и высоту |
| Источник | extensions/geometry/geometry.lua строка 202 |
y
| Подпись | hs.geometry.y |
|---|---|
| Тип | Поле |
| Описание |
Координата y для этой точки или угла прямоугольника; изменение сместит прямоугольник, но сохранит ширину и высоту |
| Источник | extensions/geometry/geometry.lua строка 177 |
y1
| Подпись | hs.geometry.y1 |
|---|---|
| Тип | Поле |
| Описание |
Псевдоним для |
| Источник | extensions/geometry/geometry.lua строка 185 |
y2
| Подпись | hs.geometry.y2 |
|---|---|
| Тип | Поле |
| Описание |
Координата y для второго угла этого прямоугольника; изменение повлияет на высоту прямоугольника |
| Источник | extensions/geometry/geometry.lua строка 235 |
Методы
angle
| Подпись | hs.geometry:angle() -> number |
|---|---|
| Тип | Метод |
| Описание |
Возвращает угол между положительной осью x и этим вектором2 |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/geometry/geometry.lua строка 516 |
angleTo
| Подпись | hs.geometry:angleTo(point) -> number |
|---|---|
| Тип | Метод |
| Описание |
Возвращает угол между положительной осью x и вектором, соединяющим эту точку или центр прямоугольника с другой точкой или центром прямоугольника |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/geometry/geometry.lua строка 529 |
distance
| Подпись | hs.geometry:distance(point) -> number |
|---|---|
| Тип | Метод |
| Описание |
Находит расстояние между этой точкой или центром прямоугольника и другой точкой или центром прямоугольника |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/geometry/geometry.lua строка 542 |
equals
| Подпись | hs.geometry:equals(other) -> boolean |
|---|---|
| Тип | Метод |
| Описание |
Проверяет, равны ли два объекта geometry |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/geometry/geometry.lua строка 390 |
fit
| Подпись | hs.geometry:fit(bounds) -> hs.geometry object |
|---|---|
| Тип | Метод |
| Описание |
Убедитесь, что этот прямоугольник полностью находится внутри |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/geometry/geometry.lua строка 448 |
floor
| Подпись | hs.geometry:floor() -> hs.geometry object |
|---|---|
| Тип | Метод |
| Описание |
Округляет все координаты в этом объекте до целых чисел |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/geometry/geometry.lua строка 483 |
fromUnitRect
| Подпись | hs.geometry:fromUnitRect(frame) -> hs.geometry rect |
|---|---|
| Тип | Метод |
| Описание |
Преобразует прямоугольник единиц в пределах заданной рамки в прямоугольник |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 672 |
inside
| Подпись | hs.geometry:inside(rect) -> boolean |
|---|---|
| Тип | Метод |
| Описание |
Проверяет, полностью ли этот объект hs.geometry находится внутри заданного прямоугольника |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 570 |
intersect
| Подпись | hs.geometry:intersect(rect) -> hs.geometry rect |
|---|---|
| Тип | Метод |
| Описание |
Возвращает прямоугольник пересечения между этим прямоугольником и другим прямоугольником |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Исходный код | extensions/geometry/geometry.lua строка 585 |
move
| Подпись | hs.geometry:move(point) -> hs.geometry object |
|---|---|
| Тип | Метод |
| Описание |
Перемещает эту точку/прямоугольник |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 403 |
normalize
| Подпись | hs.geometry:normalize() -> point |
|---|---|
| Тип | Метод |
| Описание |
Нормализует этот вектор2 |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 468 |
rotateCCW
| Подпись | hs.geometry:rotateCCW(aroundpoint, ntimes) -> hs.geometry point |
|---|---|
| Тип | Метод |
| Описание |
Поворачивает точку вокруг другой точки N раз |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 695 |
scale
| Подпись | hs.geometry:scale(size) -> hs.geometry object |
|---|---|
| Тип | Метод |
| Описание |
Масштабирует этот вектор2/размер или этот прямоугольник, сохраняя его центр постоянным |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 419 |
toUnitRect
| Подпись | hs.geometry:toUnitRect(frame) -> hs.geometry unit rect |
|---|---|
| Тип | Метод |
| Описание |
Преобразует прямоугольник в его прямоугольник единиц в пределах заданной рамки |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Исходный код | extensions/geometry/geometry.lua строка 644 |
type
| Подпись | hs.geometry:type() -> string |
|---|---|
| Тип | Метод |
| Описание |
Возвращает тип объекта hs.geometry |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 45 |
union
| Подпись | hs.geometry:union(rect) -> hs.geometry rect |
|---|---|
| Тип | Метод |
| Описание |
Возвращает наименьший прямоугольник, который охватывает как этот прямоугольник, так и другой прямоугольник |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 555 |
vector
| Подпись | hs.geometry:vector(point) -> point |
|---|---|
| Тип | Метод |
| Описание |
Возвращает вектор2 от центра этой точки или прямоугольника до центра другой точки или прямоугольника |
| Параметры |
|
| Возвращает |
|
| Исходный код | extensions/geometry/geometry.lua строка 500 |
© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.geometry.html