# Class: Geom::Point2d

Inherits:
Object
• Object
show all

## Overview

The Vector2d class allows you to work with a point in 2D space. Point2d is basically just a series of values representing x and y coordinates.

The values are specified as [x, y]. For example [1, 1]. To create a point call Geom::Point2d.new, where the creation method can take a variety of arguments:

Examples:

``````# No arguments, creates a point at the origin [0, 0]
pt1 = Geom::Point2d.new

# Creates a point at x of 1, y of 2.
pt2 = Geom::Point2d.new(1, 2)

# You can also create a point directly by simply assigning the x, and y
# values to a variable as an array:
pt3 = [1, 2]``````

Version:

• LayOut 2018

## Instance Method Summary #collapse

• The #+ operator is a simple way to add to the current x and y values of the Point2d, or to set the values of the Point2d by adding a Vector2d to the Point2d.

• The #- operator is a simple way to subtract from the current x and y values of the Point2d.

• The #== method compares two points for equality.

• The #[] method returns the value of the Point2d at the specified index.

• The #[]= method sets the x or y value of the Point2d based on the specific index of the value.

• The #clone method creates another point identical to the Point2d being cloned.

• The #distance method computes the distance from the Point2d to another Point2d.

• constructor

The new method creates a new Point2d.

• The #inspect method formats the Point2d as a string.

• The #offset method offsets the Point2d by a Vector2d and returns a new Point2d.

• The #offset! method offsets the Point2d by a Vector2d.

• The #set! method sets the values of the Point2d.

• The #to_a method converts the Point2d to an array of 2 numbers.

• The #to_s method returns a string representation of the Point2d.

• The #transform method applies a transformation to a point, returning a new point.

• The #transform! method applies a transformation to a point.

• The #vector_to method returns the vector between points.

• The #x method returns the x value of the Point2d.

• The #x= method sets the x value of the Point2d.

• The #y method returns the y value of the Point2d.

• The #y= method sets the y value of the Point2d.

## Constructor Details

### ↑#initialize ⇒ Geom::Point2d #initialize(x, y) ⇒ Geom::Point2d #initialize(point) ⇒ Geom::Point2d

The new method creates a new Geom::Point2d.

Examples:

``````# No arguments, creates a point at the origin [0, 0]
pt1 = Geom::Point2d.new

# Creates a point at x of 1 and y of 2.
pt2 = Geom::Point2d.new(1, 2)

# You can also create a point directly by simply assigning the x and y
# values to a variable as an array:
pt3 = [1, 2]``````

Version:

• LayOut 2018

## Instance Method Details

### ↑ #+(vector) ⇒ Geom::Point2d

The #+ operator is a simple way to add to the current x and y values of the Geom::Point2d, or to set the values of the Geom::Point2d by adding a Vector2d to the Geom::Point2d.

Examples:

``````pt = [1, 1]
# the result is a Point2d(2, 3)
pt2 = pt + [1, 2]``````

Parameters:

• vector

Returns:

Version:

• LayOut 2018

### ↑#-(vector) ⇒ Geom::Point2d #-(point) ⇒ Geom::Vector2d

The #- operator is a simple way to subtract from the current x and y values of the Geom::Point2d.

Examples:

``````vec = Geom::Vector2d.new(1, 2)
# result is a Point2d(3, 0)
pt = [4, 2] - vec
# result is a Vector2d(1, 2)
vec2 = [4, 2] - pt``````

• #-(vector) ⇒ Geom::Point2d

Parameters:

• vector

Returns:

• #-(point) ⇒ Geom::Vector2d

Returns a vector indicating the difference between the two points

Parameters:

• point2d

Returns:

• a vector indicating the difference between the two points

Version:

• LayOut 2018

### ↑ #==(point) ⇒ Boolean

The #== method compares two points for equality. This uses the standard SketchUp tolerance to determine if two points are the same.

Examples:

``````point1 = Geom::Point2d.new(1, 1)
point2 = Geom::Point2d.new(0, 1)
status = point1 == point2``````

Parameters:

• point

Returns:

• (Boolean)

Version:

• LayOut 2018

### ↑ #[](index) ⇒ Length

The #[] method returns the value of the Geom::Point2d at the specified index.

Examples:

``````point = Geom::Point2d.new(1, 2)

# returns the y value of 2
yvalue = point[1]``````

Parameters:

• index (Integer)

The index for a specific x or y value in the Geom::Point2d

Returns:

• (Length)

The new x or y value if successful

Version:

• LayOut 2018

### ↑ #[]=(index, value) ⇒ Numeric

The #[]= method sets the x or y value of the Geom::Point2d based on the specific index of the value.

Examples:

``````point = Geom::Point2d.new(1,2)
point[1] = 4``````

Parameters:

• index (Integer)

The index for a specific x or y value in the Geom::Point2d to set

• value (Numeric)

The value to set for x or y

Returns:

• (Numeric)

The new x or y value if successful

Version:

• LayOut 2018

### ↑ #clone ⇒ Geom::Point2d

The #clone method creates another point identical to the Geom::Point2d being cloned.

Examples:

``````point = Geom::Point2d.new(1, 2)
newpoint = point.clone``````

Returns:

Version:

• LayOut 2018

### ↑ #distance(point) ⇒ Numeric

The #distance method computes the distance from the Geom::Point2d to another Geom::Point2d.

Examples:

``````point1 = Geom::Point2d.new(1, 1)
point2 = Geom::Point2d.new(1, 4)
# result is a value of 3
distance = point1.distance(point2)``````

Parameters:

• point

Returns:

• (Numeric)

the distance between the points in the current units

Version:

• LayOut 2018

### ↑ #inspect ⇒ String

The #inspect method formats the Geom::Point2d as a string.

Examples:

``````point = Geom::Point2d.new(1, 2)
string = point.inspect``````

Returns:

Version:

• LayOut 2018

### ↑#offset(vector) ⇒ Geom::Point2d #offset(vector, distance) ⇒ Geom::Point2d

The #offset method offsets the Geom::Point2d by a Vector2d and returns a new Geom::Point2d. If distance is provided, it must be non-zero.

Examples:

``````point = Geom::Point2d.new
vector = Geom::Vector2d.new(0, 2)
# result is a Point2d(0, 1)
point2 = point1.offset(vector, 1)``````

• #offset(vector) ⇒ Geom::Point2d

Parameters:

• vector

Returns:

• #offset(vector, distance) ⇒ Geom::Point2d

Parameters:

• vector
• distance (Numeric)

The how far along the vector to offset

Returns:

Version:

• LayOut 2018

### ↑#offset!(vector) ⇒ Geom::Point2d #offset!(vector, distance) ⇒ Geom::Point2d

The #offset! method offsets the Geom::Point2d by a Vector2d. The Geom::Point2d itself is modified. The length of the vector must not be zero.

Examples:

``````point = Geom::Point2d.new
vector = Geom::Vector2d.new(0, 2)
# result is a Point2d(0, 1)
point1.offset!(vector, 1)``````

• #offset!(vector) ⇒ Geom::Point2d

Parameters:

• vector

Returns:

• #offset!(vector, distance) ⇒ Geom::Point2d

Parameters:

• vector
• distance (Numeric)

The distance along the vector to offset

Returns:

Version:

• LayOut 2018

### ↑#set!(point) ⇒ Geom::Point2d #set!(x, y) ⇒ Geom::Point2d

The #set! method sets the values of the Geom::Point2d.

Examples:

``````point = Geom::Point2d.new(1, 2)
point = point.set!([4, 5])``````

Version:

• LayOut 2018

### ↑ #to_a ⇒ Array(Numeric, Numeric)

The #to_a method converts the Geom::Point2d to an array of 2 numbers.

Examples:

``````point = Geom::Point2d.new(1, 2)
array = point.to_a``````

Returns:

Version:

• LayOut 2018

### ↑ #to_s ⇒ String

The #to_s method returns a string representation of the Geom::Point2d.

Examples:

``````point = Geom::Point2d.new(1, 2)
str = point.to_s``````

Returns:

Version:

• LayOut 2018

### ↑ #transform(transform) ⇒ Geom::Point2d

The #transform method applies a transformation to a point, returning a new point. The original point is unchanged by this method.

Examples:

``````point = Geom::Point2d.new(4, 5)
transformation = Geom::Transformation2d.new([1, 0, 0, 1, 2, 3])
# pt will be (6, 8)
pt = point.transform(transformation)``````

Parameters:

• transform

A Transformation object to apply to the point.

Returns:

• the transformed point

Version:

• LayOut 2019

### ↑ #transform!(transform) ⇒ Geom::Point2d

The #transform! method applies a transformation to a point. The point itself is modified.

Examples:

``````point = Geom::Point2d.new(4, 5)
transformation = Geom::Transformation2d.new([1, 0, 0, 1, 2, 3])
# point will be (6, 8)
point.transform!(transformation)``````

Parameters:

• transform

A Transformation object to apply to the point.

Returns:

• the transformed point

Version:

• LayOut 2019

### ↑ #vector_to(point) ⇒ Geom::Vector2d

The #vector_to method returns the vector between points.

Examples:

``````pt1 = Geom::Point2d.new(1, 1)
pt2 = Geom::Point2d.new(3, 1)

# result is a Vector2d(2, 0)
vec = pt1.vector_to(pt2) # is equivalent to (pt2 - pt1)``````

Parameters:

• point

Returns:

Version:

• LayOut 2018

### ↑ #x ⇒ Length

The #x method returns the x value of the Geom::Point2d.

Examples:

``````point = Geom::Point2d.new(1, 2)
x = point.x``````

Returns:

Version:

• LayOut 2018

### ↑ #x=(x) ⇒ Numeric

The #x= method sets the x value of the Geom::Point2d.

Examples:

``````point = Geom::Point2d.new(1, 2)
point.x = 7``````

Parameters:

Returns:

Version:

• LayOut 2018

### ↑ #y ⇒ Length

The #y method returns the y value of the Geom::Point2d.

Examples:

``````point = Geom::Point2d.new(1, 2)
y = point.y``````

Returns:

Version:

• LayOut 2018

### ↑ #y=(y) ⇒ Numeric

The #y= method sets the y value of the Geom::Point2d.

Examples:

``````point = Geom::Point2d.new(1, 2)
point.y = 7``````

Parameters:

Returns:

Version:

• LayOut 2018