Spec-Zone.ru › Hammerspoon

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
    • copy
    • new
    • point
    • rect
    • size
  • Поля — переменные, к которым можно получить доступ только из объекта, возвращаемого конструктором
    • area
    • aspect
    • bottomright
    • center
    • h
    • length
    • string
    • table
    • topleft
    • w
    • wh
    • x
    • x1
    • x2
    • x2y2
    • xy
    • y
    • y1
    • y2
  • Методы — вызовы API, которые могут выполняться только на объекте, возвращаемом конструктором
    • angle
    • angleTo
    • distance
    • equals
    • fit
    • floor
    • fromUnitRect
    • inside
    • intersect
    • move
    • normalize
    • rotateCCW
    • scale
    • toUnitRect
    • type
    • union
    • vector

Документация API

Конструкторы

copy
Подпись hs.geometry.copy(geom) -> hs.geometry object
Тип Конструктор
Описание

Создает копию объекта hs.geometry

Параметры
  • geom — объект hs.geometry для копирования
Возвращает
  • новая копия объекта hs.geometry
Исходный код extensions/geometry/geometry.lua строка 151
new
Подпись hs.geometry.new(...) -> hs.geometry object
Тип Конструктор
Описание

Создает новый объект hs.geometry

Параметры
  • ... — см. описание модуля вверху
Возвращает
  • новый объект hs.geometry
Исходный код extensions/geometry/geometry.lua строка 141
point
Подпись hs.geometry.point(x, y) -> hs.geometry point
Тип Конструктор
Описание

Удобная функция для создания объекта точки

Параметры
  • x — число, содержащее горизонтальную координату точки
  • y — число, содержащее вертикальную координату точки
Возвращает
  • объект точки hs.geometry
Исходный код extensions/geometry/geometry.lua строка 732
rect
Подпись hs.geometry.rect(x, y, w, h) -> hs.geometry rect
Тип Конструктор
Описание

Удобная функция для создания прямоугольника-таблицы

Параметры
  • x — число, содержащее горизонтальную координату верхнего левого угла прямоугольника
  • y — число, содержащее вертикальную координату верхнего левого угла прямоугольника
  • w — число, содержащее ширину прямоугольника
  • h — число, содержащее высоту прямоугольника
Возвращает
  • объект прямоугольника hs.geometry
Исходный код extensions/geometry/geometry.lua строка 717
size
Подпись hs.geometry.size(w, h) -> hs.geometry size
Тип Конструктор
Описание

Удобная функция для создания объекта размера

Параметры
  • w — число, содержащее ширину
  • h — число, содержащее высоту
Возвращает
  • объект размера hs.geometry
Исходный код extensions/geometry/geometry.lua строка 744

Поля

area
Подпись hs.geometry.area
Тип Поле
Описание

Число, представляющее площадь этого прямоугольника или размера; изменение его приведет к масштабированию прямоугольника/размера — см. hs.geometry:scale()

Исходный код extensions/geometry/geometry.lua строка 333
aspect
Подпись hs.geometry.aspect
Тип Поле
Описание

Число, представляющее соотношение сторон этого прямоугольника или размера; изменение его перестроит прямоугольник/размер, сохранив его площадь и центр неизменными

Исходный код extensions/geometry/geometry.lua строка 352
bottomright
Подпись hs.geometry.bottomright
Тип Поле
Описание

Псевдоним для x2y2

Исходный код 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; изменение его приведет к масштабированию прямоугольника/вектора — см. hs.geometry:scale()

Исходный код extensions/geometry/geometry.lua строка 318
END_OF_DOCUMENT_MARKER
string
Подпись hs.geometry.string
Тип Поле
Описание

Строка "X,Y/WxH" для этого объекта hs.geometry (уменьшенная точность); полезна, например, для ведения журнала

Источник extensions/geometry/geometry.lua строка 281
table
Подпись hs.geometry.table
Тип Поле
Описание

Таблица {x=X,y=Y,w=W,h=H} для этого объекта hs.geometry; полезна, например, для сериализации/десериализации

Источник extensions/geometry/geometry.lua строка 275
topleft
Подпись hs.geometry.topleft
Тип Поле
Описание

Псевдоним для xy

Источник 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
Тип Поле
Описание

Псевдоним для x

Источник 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
Тип Поле
Описание

Псевдоним для y

Источник 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 и вектором, соединяющим эту точку или центр прямоугольника с другой точкой или центром прямоугольника

Параметры
  • point - объект hs.geometry, или таблица, строка или список параметров для его создания; если прямоугольник, используется центр прямоугольника
Возвращает
  • число, представляющее угол в радианах
Источник extensions/geometry/geometry.lua строка 529
distance
Подпись hs.geometry:distance(point) -> number
Тип Метод
Описание

Находит расстояние между этой точкой или центром прямоугольника и другой точкой или центром прямоугольника

Параметры
  • point - объект hs.geometry, или таблица, строка или список параметров для его создания; если прямоугольник, используется центр прямоугольника
Возвращает
  • число, обозначающее расстояние
Источник extensions/geometry/geometry.lua строка 542
equals
Подпись hs.geometry:equals(other) -> boolean
Тип Метод
Описание

Проверяет, равны ли два объекта geometry

Параметры
  • other - другой объект hs.geometry, или таблица, строка или список параметров для его создания
Возвращает
  • true если этот объект hs.geometry полностью перекрывает другой, false в противном случае
Источник extensions/geometry/geometry.lua строка 390
fit
Подпись hs.geometry:fit(bounds) -> hs.geometry object
Тип Метод
Описание

Убедитесь, что этот прямоугольник полностью находится внутри bounds, уменьшив его масштаб, если он больше (сохраняя его соотношение сторон), и сместив его при необходимости

Параметры
  • bounds - объект hs.geometry rect, или таблица, строка или список параметров для его создания, указывающий прямоугольник, который должен полностью содержать этот прямоугольник
Возвращает
  • этот объект hs.geometry для цепочки методов
Источник extensions/geometry/geometry.lua строка 448
floor
Подпись hs.geometry:floor() -> hs.geometry object
Тип Метод
Описание

Округляет все координаты в этом объекте до целых чисел

Параметры
  • Нет
Возвращает
  • эта точка hs.geometry для цепочки методов
Источник extensions/geometry/geometry.lua строка 483
END_OF_DOCUMENT_MARKER
fromUnitRect
Подпись hs.geometry:fromUnitRect(frame) -> hs.geometry rect
Тип Метод
Описание

Преобразует прямоугольник единиц в пределах заданной рамки в прямоугольник

Параметры
  • frame - прямоугольник hs.geometry (с w и h >0)
Возвращает
  • Объект прямоугольника hs.geometry
Исходный код extensions/geometry/geometry.lua строка 672
inside
Подпись hs.geometry:inside(rect) -> boolean
Тип Метод
Описание

Проверяет, полностью ли этот объект hs.geometry находится внутри заданного прямоугольника

Параметры
  • rect - прямоугольник hs.geometry или таблица, строка или список параметров для его создания
Возвращает
  • true если эта точка/прямоугольник полностью находится внутри заданного прямоугольника, false в противном случае
Исходный код extensions/geometry/geometry.lua строка 570
intersect
Подпись hs.geometry:intersect(rect) -> hs.geometry rect
Тип Метод
Описание

Возвращает прямоугольник пересечения между этим прямоугольником и другим прямоугольником

Параметры
  • rect - прямоугольник hs.geometry или таблица, строка или список параметров для его создания
Возвращает
  • новый прямоугольник hs.geometry
Примечания
  • Если два прямоугольника не пересекаются, результирующий прямоугольник будет «проекцией» второго прямоугольника на ближайшую грань или угол этого прямоугольника по оси x или y; поля w и/или h в результирующем прямоугольнике будут равны 0.
Исходный код extensions/geometry/geometry.lua строка 585
move
Подпись hs.geometry:move(point) -> hs.geometry object
Тип Метод
Описание

Перемещает эту точку/прямоугольник

Параметры
  • point - объект hs.geometry или таблица, строка или список параметров для его создания, указывающие смещение по x и y для применения
Возвращает
  • этот объект hs.geometry для цепочки методов
Исходный код extensions/geometry/geometry.lua строка 403
normalize
Подпись hs.geometry:normalize() -> point
Тип Метод
Описание

Нормализует этот вектор2

Параметры
  • Нет
Возвращает
  • эта точка hs.geometry для цепочки методов
Исходный код extensions/geometry/geometry.lua строка 468
rotateCCW
Подпись hs.geometry:rotateCCW(aroundpoint, ntimes) -> hs.geometry point
Тип Метод
Описание

Поворачивает точку вокруг другой точки N раз

Параметры
  • aroundpoint - точка hs.geometry, вокруг которой поворачивать эту точку
  • ntimes - количество поворотов, по умолчанию 1
Возвращает
  • Новый объект точки hs.geometry, содержащий координаты повернутой точки
Исходный код extensions/geometry/geometry.lua строка 695
scale
Подпись hs.geometry:scale(size) -> hs.geometry object
Тип Метод
Описание

Масштабирует этот вектор2/размер или этот прямоугольник, сохраняя его центр постоянным

Параметры
  • size - объект hs.geometry, или таблица, строка или список параметров для его создания, указывающие множители для масштабирования ширины и высоты этого прямоугольника; если число, то прямоугольник будет масштабироваться на одинаковый множитель по обеим осям
Возвращает
  • этот объект hs.geometry для цепочки методов
Исходный код extensions/geometry/geometry.lua строка 419
toUnitRect
Подпись hs.geometry:toUnitRect(frame) -> hs.geometry unit rect
Тип Метод
Описание

Преобразует прямоугольник в его прямоугольник единиц в пределах заданной рамки

Параметры
  • frame - прямоугольник hs.geometry (с w и h >0)
Возвращает
  • Объект прямоугольника единиц hs.geometry
Примечания
  • Полученный прямоугольник единиц всегда обрезается в пределах границ frame (через hs.geometry:intersect()); если frame не охватывает этот прямоугольник, ошибка не будет выброшена, но полученный прямоугольник единиц не будет напрямую соответствовать этому прямоугольнику (то есть вызов :fromUnitRect(frame) для него вернёт другой прямоугольник)
Исходный код extensions/geometry/geometry.lua строка 644
type
Подпись hs.geometry:type() -> string
Тип Метод
Описание

Возвращает тип объекта hs.geometry

Параметры
  • Нет
Возвращает
  • строка, описывающая тип объекта hs.geometry, например, 'point', 'size', 'rect' или 'unitrect'; nil если объект некорректен
Исходный код extensions/geometry/geometry.lua строка 45
union
Подпись hs.geometry:union(rect) -> hs.geometry rect
Тип Метод
Описание

Возвращает наименьший прямоугольник, который охватывает как этот прямоугольник, так и другой прямоугольник

Параметры
  • rect - прямоугольник hs.geometry или таблица, строка или список параметров для его создания
Возвращает
  • новый прямоугольник hs.geometry
Исходный код extensions/geometry/geometry.lua строка 555
vector
Подпись hs.geometry:vector(point) -> point
Тип Метод
Описание

Возвращает вектор2 от центра этой точки или прямоугольника до центра другой точки или прямоугольника

Параметры
  • point - объект hs.geometry или таблица, строка или список параметров для его создания; если прямоугольник, используется центр прямоугольника
Возвращает
  • точка hs.geometry
Исходный код extensions/geometry/geometry.lua строка 500

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.geometry.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API