Documentation ¶
Overview ¶
Пакет tochka предоставляет инструменты для работы с двухмерными точками и аффинными преобразованиями в двумерной системе координат. Пакет подходит для выполнения операций сдвига, масштабирования, вращения и наклона, что делает его полезным для манипуляции 2М-геометрией в графических приложениях.
Тип Point ¶
Тип Point представляет собой точку в двумерной системе координат с координатами X и Y (тип float32). Этот тип включает основные арифметические операции и вспомогательные методы для работы с точками.
Основные методы:
- NewPoint(x, y float32) Point: Создает точку с заданными координатами.
- String() string: Возвращает строковое представление точки в формате "(X, Y)".
- Add(other Point) Point: Складывает текущую точку с другой.
- Sub(other Point) Point: Вычитает другую точку из текущей.
- Mul(scale float32) Point: Умножает координаты точки на коэффициент.
- Div(scale float32) (Point, error): Делит координаты точки на коэффициент, возвращая ошибку при делении на 0.
- Distance(other Point) float32: Возвращает расстояние между текущей точкой и другой.
- Round() image.Point: Округляет координаты до ближайших целых и возвращает объект image.Point.
Тип Affine2D ¶
Тип Affine2D представляет аффинное преобразование, описанное матрицей 3x3, которая поддерживает операции трансформации в двумерном пространстве, включая сдвиг, масштабирование, вращение и наклон.
Основные методы:
- NewAffine2D(sx, hx, ox, hy, sy, oy float32) Affine2D: Создает преобразование из элементов матрицы.
- Offset(offset Point) Affine2D: Выполняет сдвиг матрицы на указанный вектор.
- Scale(origin, factor Point) Affine2D: Масштабирует относительно заданной точки.
- Rotate(origin Point, radians float32) Affine2D: Вращает вокруг заданной точки на угол в радианах.
- Shear(origin Point, radiansX, radiansY float32) Affine2D: Применяет наклон матрицы под заданными углами.
- Mul(other Affine2D) Affine2D: Умножает текущее преобразование на другое.
- Invert() Affine2D: Вычисляет обратное преобразование, если это возможно.
- Transform(p Point) Point: Применяет преобразование к точке и возвращает новую точку.
- Elems() (sx, hx, ox, hy, sy, oy float32): Возвращает элементы матрицы преобразования.
- Split() (Affine2D, Point): Разделяет преобразование на матрицу без сдвига и вектор сдвига.
- String() string: Возвращает строковое представление матрицы преобразования в формате "[[sx hx ox] [hy sy oy]]".
Пакет разработан для интеграции в графические приложения и обработки 2D-геометрии. Он полезен как для учебных, так и для производственных проектов, где требуется работа с точками и аффинными преобразованиями в двумерном пространстве.
Index ¶
- type Affine2D
- func (a Affine2D) Elems() (sx, hx, ox, hy, sy, oy float32)
- func (a Affine2D) Invert() Affine2D
- func (A Affine2D) Mul(B Affine2D) (r Affine2D)
- func (a Affine2D) Offset(offset Point) Affine2D
- func (a Affine2D) Rotate(origin Point, radians float32) Affine2D
- func (a Affine2D) Scale(origin, factor Point) Affine2D
- func (a Affine2D) Shear(origin Point, radiansX, radiansY float32) Affine2D
- func (a Affine2D) Split() (src Affine2D, offset Point)
- func (a Affine2D) String() string
- func (a Affine2D) Transform(p Point) Point
- type Point
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Affine2D ¶
type Affine2D struct {
// contains filtered or unexported fields
}
Affine2D представляет аффинное преобразование в двумерной системе координат. Содержит элементы матрицы преобразования, которые позволяют выполнять операции сдвига, масштабирования, вращения и наклона.
func NewAffine2D ¶
NewAffine2D создаёт новое аффинное преобразование. sx, hx, ox — элементы первой строки матрицы (масштаб по X, наклон по X, перенос по X). hy, sy, oy — элементы второй строки матрицы (наклон по Y, масштаб по Y, перенос по Y).
func (Affine2D) Invert ¶
Invert вычисляет обратное преобразование для текущей матрицы. Если матрица близка к сингулярной, результаты могут быть неточными.
func (Affine2D) Mul ¶
Mul выполняет умножение текущей матрицы на другую матрицу. B — другая матрица преобразования. Возвращает результат умножения.
func (Affine2D) Offset ¶
Offset выполняет сдвиг матрицы преобразования на заданный вектор. offset определяет величину сдвига по X и Y.
func (Affine2D) Rotate ¶
Rotate выполняет вращение матрицы вокруг заданной точки на указанный угол. origin задаёт точку, вокруг которой выполняется вращение. radians задаёт угол вращения в радианах. Возвращает новую матрицу преобразования с учетом вращения.
func (Affine2D) Scale ¶
Scale выполняет масштабирование матрицы относительно заданной точки. origin задаёт точку, вокруг которой выполняется масштабирование. factor задаёт коэффициенты масштабирования по X и Y. Возвращает новую матрицу преобразования с учетом масштабирования.
func (Affine2D) Shear ¶
Shear выполняет наклон матрицы под заданными углами относительно указанной точки. origin задаёт точку, относительно которой выполняется наклон. radiansX и radiansY задают углы наклона по осям X и Y соответственно. Возвращает новую матрицу преобразования с учетом наклона.
func (Affine2D) Split ¶
Split разделяет преобразование на матрицу без сдвига и вектор сдвига. Возвращает новую матрицу и вектор сдвига.
type Point ¶
type Point struct {
X, Y float32
}
Point представляет точку в двумерной системе координат с координатами X и Y.
func (Point) Div ¶
Div возвращает новую точку с координатами, разделенными на заданный коэффициент s.
func (Point) Round ¶
Round округляет координаты точки до ближайших целых значений и возвращает объект image.Point.