r2

package
v0.0.0-...-40ad1ac Latest Latest
Warning

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

Go to latest
Published: May 19, 2015 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package r2 implements types and functions for working with geometry in ℝ².

See package s2 for a more detailed overview.

  • Copyright 2005 Google Inc. *
  • Licensed under the Apache License, Version 2.0 (the "License");
  • you may not use this file except in compliance with the License.
  • You may obtain a copy of the License at *
  • http://www.apache.org/licenses/LICENSE-2.0 *
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Point

type Point struct {
	X, Y float64
}

Point represents a point in ℝ².

type Rect

type Rect struct {
	X, Y r1.Interval
}

Rect represents a closed axis-aligned rectangle in the (x,y) plane.

func EmptyRect

func EmptyRect() Rect

EmptyRect constructs the canonical empty rectangle. Use IsEmpty() to test for empty rectangles, since they have more than one representation. A Rect{} is not the same as the EmptyRect.

func RectFromCenterSize

func RectFromCenterSize(center, size Point) Rect

RectFromCenterSize constructs a rectangle with the given center and size. Both dimensions of size must be non-negative.

func RectFromPoints

func RectFromPoints(pts ...Point) Rect

RectFromPoints constructs a rect that contains the given points.

func (Rect) AddPoint

func (r Rect) AddPoint(p Point) Rect

AddPoint expands the rectangle to include the given point. The rectangle is expanded by the minimum amount possible.

func (Rect) AddRect

func (r Rect) AddRect(other Rect) Rect

AddRect expands the rectangle to include the given rectangle. This is the same as replacing the rectangle by the union of the two rectangles, but is more efficient.

func (Rect) ApproxEquals

func (r Rect) ApproxEquals(r2 Rect) bool

ApproxEquals returns true if the x- and y-intervals of the two rectangles are the same up to the given tolerance.

func (Rect) Center

func (r Rect) Center() Point

Center returns the center of the rectangle in (x,y)-space

func (Rect) ClampPoint

func (r Rect) ClampPoint(p Point) Point

ClampPoint returns the closest point in the rectangle to the given point. The rectangle must be non-empty.

func (Rect) Contains

func (r Rect) Contains(other Rect) bool

Contains reports whether the rectangle contains the given rectangle.

func (Rect) ContainsPoint

func (r Rect) ContainsPoint(p Point) bool

ContainsPoint reports whether the rectangle contains the given point. Rectangles are closed regions, i.e. they contain their boundary.

func (Rect) Expanded

func (r Rect) Expanded(margin Point) Rect

Expanded returns a rectangle that has been expanded in the x-direction by margin.X, and in y-direction by margin.Y. If either margin is empty, then shrink the interval on the corresponding sides instead. The resulting rectangle may be empty. Any expansion of an empty rectangle remains empty.

func (Rect) ExpandedByMargin

func (r Rect) ExpandedByMargin(margin float64) Rect

ExpandedByMargin returns a Rect that has been expanded by the amount on all sides.

func (Rect) InteriorContains

func (r Rect) InteriorContains(other Rect) bool

InteriorContains reports whether the interior of this rectangle contains all of the points of the given other rectangle (including its boundary).

func (Rect) InteriorContainsPoint

func (r Rect) InteriorContainsPoint(p Point) bool

InteriorContainsPoint returns true iff the given point is contained in the interior of the region (i.e. the region excluding its boundary).

func (Rect) InteriorIntersects

func (r Rect) InteriorIntersects(other Rect) bool

InteriorIntersects reports whether the interior of this rectangle intersects any point (including the boundary) of the given other rectangle.

func (Rect) Intersection

func (r Rect) Intersection(other Rect) Rect

Intersection returns the smallest rectangle containing the intersection of this rectangle and the given rectangle.

func (Rect) Intersects

func (r Rect) Intersects(other Rect) bool

Intersects reports whether this rectangle and the other rectangle have any points in common.

func (Rect) IsEmpty

func (r Rect) IsEmpty() bool

IsEmpty reports whether the rectangle is empty.

func (Rect) IsValid

func (r Rect) IsValid() bool

IsValid reports whether the rectangle is valid. This requires the width to be empty iff the height is empty.

func (Rect) Size

func (r Rect) Size() Point

Size returns the width and height of this rectangle in (x,y)-space. Empty rectangles have a negative width and height.

func (Rect) String

func (r Rect) String() string

func (Rect) Union

func (r Rect) Union(other Rect) Rect

Union returns the smallest rectangle containing the union of this rectangle and the given rectangle.

func (Rect) Vertices

func (r Rect) Vertices() [4]Point

Vertices returns all four vertices of the rectangle. Vertices are returned in CCW direction starting with the lower left corner.

type Vector

type Vector struct {
	X, Y float64
}

*

  • r2.Vector represents a vector in the two-dimensional space. It defines the
  • basic geometrical operations for 2D vectors, e.g. cross product, addition,
  • norm, comparison etc. *

func (Vector) Abs

func (v Vector) Abs() Vector

Abs returns the vector with nonnegative components.

func (Vector) Add

func (v Vector) Add(ov Vector) Vector

Add returns the standard vector sum of v and ov.

func (Vector) CompareTo

func (v Vector) CompareTo(other Vector) int

func (Vector) Cross

func (v Vector) Cross(ov Vector) float64

Cross returns the standard cross product of v and ov.

func (Vector) Div

func (v Vector) Div(m float64) Vector

Mul returns the standard scalar product of v and m.

func (Vector) Dot

func (v Vector) Dot(ov Vector) float64

Dot returns the standard dot product of v and ov.

func (Vector) Equals

func (v Vector) Equals(other Vector) bool

func (Vector) LessThan

func (v Vector) LessThan(vb Vector) bool

func (Vector) Mul

func (v Vector) Mul(m float64) Vector

Mul returns the standard scalar product of v and m.

func (Vector) Neg

func (v Vector) Neg() Vector

Neg returns the negated vector

func (Vector) Norm

func (v Vector) Norm() float64

Norm returns the vector's norm.

func (Vector) Norm2

func (v Vector) Norm2() float64

Norm2 returns the square of the norm.

func (Vector) Normalize

func (v Vector) Normalize() Vector

Normalize returns a unit vector in the same direction as v.

func (Vector) String

func (v Vector) String() string

func (Vector) Sub

func (v Vector) Sub(ov Vector) Vector

Sub returns the standard vector difference of v and ov.

Jump to

Keyboard shortcuts

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