v0.5.0 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2024 License: MIT, Unlicense Imports: 3 Imported by: 294



Package f32 is a float32 implementation of package image's Point and affine transformations.

The coordinate space has the origin in the top left corner with the axes extending right and down.



This section is empty.


This section is empty.


This section is empty.


type Affine2D

type Affine2D struct {
	// contains filtered or unexported fields

Affine2D represents an affine 2D transformation. The zero value of Affine2D represents the identity transform.

func NewAffine2D

func NewAffine2D(sx, hx, ox, hy, sy, oy float32) Affine2D

NewAffine2D creates a new Affine2D transform from the matrix elements in row major order. The rows are: [sx, hx, ox], [hy, sy, oy], [0, 0, 1].

func (Affine2D) Elems

func (a Affine2D) Elems() (sx, hx, ox, hy, sy, oy float32)

Elems returns the matrix elements of the transform in row-major order. The rows are: [sx, hx, ox], [hy, sy, oy], [0, 0, 1].

func (Affine2D) Invert

func (a Affine2D) Invert() Affine2D

Invert the transformation. Note that if the matrix is close to singular numerical errors may become large or infinity.

func (Affine2D) Mul

func (A Affine2D) Mul(B Affine2D) (r Affine2D)

Mul returns A*B.

func (Affine2D) Offset

func (a Affine2D) Offset(offset Point) Affine2D

Offset the transformation.

func (Affine2D) Rotate

func (a Affine2D) Rotate(origin Point, radians float32) Affine2D

Rotate the transformation by the given angle (in radians) counter clockwise around the given origin.

func (Affine2D) Scale

func (a Affine2D) Scale(origin, factor Point) Affine2D

Scale the transformation around the given origin.

func (Affine2D) Shear

func (a Affine2D) Shear(origin Point, radiansX, radiansY float32) Affine2D

Shear the transformation by the given angle (in radians) around the given origin.

func (*Affine2D) Split

func (a *Affine2D) Split() (srs Affine2D, offset Point)

Split a transform into two parts, one which is pure offset and the other representing the scaling, shearing and rotation part.

func (Affine2D) String

func (a Affine2D) String() string

func (Affine2D) Transform

func (a Affine2D) Transform(p Point) Point

Transform p by returning a*p.

type Point

type Point struct {
	X, Y float32

A Point is a two dimensional point.

func Pt

func Pt(x, y float32) Point

Pt is shorthand for Point{X: x, Y: y}.

func (Point) Add

func (p Point) Add(p2 Point) Point

Add return the point p+p2.

func (Point) Div

func (p Point) Div(s float32) Point

Div returns the vector p/s.

func (Point) Mul

func (p Point) Mul(s float32) Point

Mul returns p scaled by s.

func (Point) Round

func (p Point) Round() image.Point

Round returns the integer point closest to p.

func (Point) String

func (p Point) String() string

String return a string representation of p.

func (Point) Sub

func (p Point) Sub(p2 Point) Point

Sub returns the vector p-p2.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL