math

package
v1.0.0-beta.28 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2021 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Div

func Div(a, b int) int

func Mod

func Mod(a, b int) int

func Rint

func Rint(f float64) int

Types

type Delta

type Delta struct {
	DX, DY int
}

Delta represents a move between two pixel positions.

func East

func East() Delta

func North

func North() Delta

func South

func South() Delta

func West

func West() Delta

func (Delta) Add

func (d Delta) Add(d2 Delta) Delta

func (Delta) Div

func (d Delta) Div(m int) Delta

func (Delta) Dot

func (d Delta) Dot(d2 Delta) int

func (Delta) IsZero

func (d Delta) IsZero() bool

func (Delta) Length

func (d Delta) Length() float64

func (Delta) Length2

func (d Delta) Length2() int

func (Delta) Mul

func (d Delta) Mul(n int) Delta

func (Delta) Mul2

func (d Delta) Mul2(mx, my int) Delta

func (Delta) MulFloat

func (d Delta) MulFloat(f float64) Delta

func (Delta) Norm0

func (d Delta) Norm0() int

func (Delta) Norm1

func (d Delta) Norm1() int

func (Delta) Sub

func (d Delta) Sub(d2 Delta) Delta

func (Delta) WithLength

func (d Delta) WithLength(f float64) Delta

func (Delta) WithMaxLength

func (d Delta) WithMaxLength(f float64) Delta

type Orientation

type Orientation struct {
	Right Delta
	Down  Delta
}

Orientation represents a transformation matrix, written as a right and a down vector.

func FlipD

func FlipD() Orientation

FlipD yields an orientation where X/Y are swapped.

func FlipX

func FlipX() Orientation

FlipX yields an orientation where X is flipped.

func FlipY

func FlipY() Orientation

FlipY yields an orientation where Y is flipped.

func Identity

func Identity() Orientation

Identity yields the default orientation.

func Left

func Left() Orientation

Left yields an orientation that turns left.

func ParseOrientation

func ParseOrientation(s string) (Orientation, error)

ParseOrientation parses an orientation from a string. It is given by the right and down directions in that order.

func Right() Orientation

Right yields an orientation that turns right.

func TurnAround

func TurnAround() Orientation

Left yields an orientation that turns left.

func (Orientation) Apply

func (o Orientation) Apply(d Delta) Delta

Apply rotates a delta by an orientation.

func (Orientation) ApplyToRect2

func (o Orientation) ApplyToRect2(pivot2 Pos, r Rect) Rect

ApplyToRect2 rotates a rectangle by the given orientation, mapping the pivot to itself. The pivot is given in doubled coordinates to support half-pixel pivots. Note: odd numbers are pixel centers, even numbers are pixel corners!

func (Orientation) Concat

func (o Orientation) Concat(o2 Orientation) Orientation

Concat returns the orientation o * o2 so that o.Concat(o2).Apply(d) == o.Apply(o2.Apply(d)).

func (Orientation) Determinant

func (o Orientation) Determinant() int

func (Orientation) Inverse

func (o Orientation) Inverse() Orientation

Inverse returns an orientation so that o.Concat(o.Invert()) == Identity().

type Pos

type Pos struct {
	X, Y int
}

Pos represents a pixel position, where X points right and Y points down.

func (Pos) Add

func (p Pos) Add(d Delta) Pos

Add applies a delta to a position.

func (Pos) Delta

func (p Pos) Delta(p2 Pos) Delta

func (Pos) Div

func (d Pos) Div(m int) Pos

func (Pos) FromRectToRect

func (d Pos) FromRectToRect(a Rect, b Rect) Pos

func (Pos) Mul

func (d Pos) Mul(n int) Pos

func (Pos) Sub

func (p Pos) Sub(d Delta) Pos

type Rect

type Rect struct {
	// Origin is the origin of the rectangle, typically the top left corner.
	Origin Pos
	// Size is the size of the rectangle, typically positive.
	Size Delta
}

Rect represents a rectangle.

func RectFromPoints

func RectFromPoints(a, b Pos) Rect

func (Rect) Center

func (r Rect) Center() Pos

Center returns the coordinate in the middle of the rectangle.

func (Rect) Delta

func (r Rect) Delta(other Rect) Delta

Delta returns the vector between the closest points of two rectangles.

func (Rect) DeltaPos

func (r Rect) DeltaPos(other Pos) Delta

DeltaPos returns the vector between the closest points of a rectangle and a point.

func (Rect) Foot

func (r Rect) Foot() Pos

Foot returns the coordinate in the bottom middle of the rectangle.

func (Rect) Normalized

func (r Rect) Normalized() Rect

Normalized returns a rectangle such that its size is nonnegative.

func (Rect) OppositeCorner

func (r Rect) OppositeCorner() Pos

OppositeCorner returns the coordinate of the opposite corner of the rectangle. Only correct on normalized rectangles.

Jump to

Keyboard shortcuts

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