This reference is for Processing 2.0+. If you have a previous version, use the reference included with your software. If you see any errors or have suggestions, please let us know. If you prefer a more technical reference, visit the Processing Javadoc.

Class

PVector

Name

### sub()

Examples
```PVector v1, v2;

void setup() {
noLoop();
v1 = new PVector(40, 20, 0);
v2 = new PVector(65, 70, 0);
}

void draw() {
ellipse(v1.x, v1.y, 12, 12);
ellipse(v2.x, v2.y, 12, 12);
v2.sub(v1);
ellipse(v2.x, v2.y, 24, 24);
}
```

```PVector v;

void setup() {
noLoop();
v = new PVector(65, 70, 0);
}

void draw() {
ellipse(v.x, v.y, 12, 12);
ellipse(40, 20, 12, 12);
v.sub(40, 20, 0);
ellipse(v.x, v.y, 24, 24);
}
```

```PVector v1, v2;

void setup() {
noLoop();
v1 = new PVector(65, 70, 0);
v2 = new PVector(40, 20, 0);
}

void draw() {
ellipse(v1.x, v1.y, 12, 12);
ellipse(v2.x, v2.y, 12, 12);
PVector v3 = PVector.sub(v1, v2);
ellipse(v3.x, v3.y, 24, 24);
}
```
Description Subtracts x, y, and z components from a vector, subtracts one vector from another, or subtracts two independent vectors. The version of the method that substracts two vectors is a static method and returns a PVector, the others have no return value -- they act directly on the vector. See the examples for more context.
Syntax
```.sub(v)
.sub(x, y, z)
.sub(v1, v2)
.sub(v1, v2, target)```
Parameters
v PVector: any variable of type PVector float: the x component of the vector float: the y component of the vector float: the z component of the vector PVector: the x, y, and z components of a PVector object PVector: the x, y, and z components of a PVector object PVector: the x, y, and z components of a PVector object PVector: the x, y, and z components of a PVector object PVector: PVector in which to store the result
Returnsvoid or PVector
Updated on June 19, 2013 03:54:08pm EDT