Autodesk Creative Platform Core Version 1.19.0 A broad and deep collection of 2D and 3D capabilities.

# Vector2D Overview

Implements Interfaces: IDebuggable

A vector in 2D Space.

Introduced in Version: 1.1.0

# Class Member Details

## • Vector2D (x, y) | Constructor

The following parameters can be specified in the constructor:
• x: Number - The X magnitude of the vector.
• y: Number - The Y magnitude of the vector.

## • Number angle (other)

Calculates the counter-clockwise angle from this vector to a specified vector. The returned value is in the range [ 0 , π ] and ( -π , 0 ).

### 1 Example:

```// Calculate the angle counter-clockwise to the specified vector
var vec1 = new Vector2D(1, 1);
var vec2 = new Vector2D(-1, 0);
var vec3 = new Vector2D(0, -1);
vec1.angle(vec2); //returns 3 * PI / 4;
vec1.angle(vec3); //returns - 3 * PI / 4;```

## • Vector2D clone()

Creates a copy of this object and returns it.

## • Number cross (other)

Calculates the cross product of this vector with another vector. Returns a new vector representing the cross product.

## • debug()

Instructs the object to present useful debugging information via a series of calls to Debug.point, Debug.line and Debug.triangles.

## • Number dot (other)

Calculates the dot product of this vector with another vector.

## • Boolean equals (other)

Returns true if the objects are equal, otherwise false.

## • Number length()

The length of the vector.

## • Vector2D normalize() | Chainable

Reduces the length of this vector to be 1.0 but maintains the X/Y ratio.

## • Vector2D rotate (angle) | Chainable

Rotates this vector by the angle specified. Right-handed system is used implying the positive angles result in counter-clockwise orientations.
• angle: Number - The angle of rotation in radians by clockwise

## • Vector2D scale (scale, [y]) | Chainable

Scales the vector magnitude.
• scale: Vector2D or Array [ Number ] or Number - A scale defined by a Vector2D, an Array with 2 values (X and Y), or a number representing the X scale (and Y scale if no additional parameter is specified.)
• y: Number - An option Y scale to use if an X scale was specified as the first argument. If this argument is not specified then uniform scaling is assumed. | Optional

### 4 Examples:

```// Scale the vector by given one scale number uniformly
vector.scale(0.5);```
```// Scale the vector by given X and Y scale numbers
vector.scale(0.5, 0.75);```
```// Scale the vector by given a Vector2D object
var vec = new Vector2D(0.5, 0.75);
vector.scale(vec);```
```// Scale the vector by given a 2-element array with X and Y scale numbers
vector.scale([0.5, 0.75]);```

## • Vector2D transform (matrix) | Chainable

Transforms this vector by a transformation matrix. Only the rotation and scaling from the matrix are applied.

### 2 Examples:

```// Transform the vector by given a 9-element array
tm = [a, b, 0, c, d, 0, e, f, 1] representing following matrix, only rotation and scaling part applied
[a b 0]
[c d 0]
[0 0 1]
new vector would be (a*x + c*y, b*x + d*y)

vector.transform(tm);```
```// Transform the vector by given a Matrix2D object
vector.transform(tm);```

## • Number x

The X magnitude of the vector.

## • Number y

The Y magnitude of the vector.