p5.vector-arguments v1.0.3
p5.vector-arguments
p5.vector-arguments is a p5.js library that enables the use of p5.js Vectors with the p5.js Shape functions.
It enables usage such as this:
function setup() {
createCanvas(windowWidth, windowHeight);
enableVectorArguments();
}
function draw() {
let pt = createVector(mouseX, mouseY);
circle(pt, 100);
pt.add(100, 200);
circle(pt, 50);
}Any p5.js function that accepts a pair of coordinates x and y, can instead accept an instance of p5.Vector.
You can mix and match numbers and vectors. For example, given pt1 =
createVector(100, 200) and pt2 = createVector(50, 20), all of the following
are equivalent:
rect(100, 200, 50, 20);
rect(pt1, 50, 20);
rect(100, 200, pt2);
rect(pt1, pt2);Installation
Download p5.vector-arguments.min from this repository. Include it in your HTML
document by adding this line, after the line that includes p5.js or
p5.min.js:
<script src="p5.vector-arguments.min.js"></script>Or, use the online version by adding the following line to your HTML document:
<script src="https://unpkg.com/p5.vector-arguments"></script>Examples
You can find a collection of examples in the examples folder in this repository.
Performance Notes
Run tests/perf to see the effect of the performance plugin on performance. Look in JavaScript Developer Console.
There are two questions about performance:
- What is the effect of calling
enableVectorArguments()on calls that do not use the features that it provide? On my computer,circle(50, 50, 10)is about the same speed.square(10, 10, 50, 50)is about 2-5% (0.03–0.09µ/call) slower. - Once
enableVectorArguments()has been called, what is the performance of using a Vector to a function, instead of two (or three) numbers? In my tests, replacing two numbers by a Vector leavescircle()about the same speed (sometimes it is faster, sometimes slower) andrect()about 45% (0.45µ/call) slower.
License
MIT