diff --git a/demos/draggable-line-demo.js b/demos/draggable-line-demo.js new file mode 100644 index 0000000..8c355c3 --- /dev/null +++ b/demos/draggable-line-demo.js @@ -0,0 +1,31 @@ +let w; //graph window +let myLine; +let draggable; + +function setup() { + createCanvas(400, 400); + + const xOrigin = width / 2; + const yOrigin = height / 2; + const xScale = 10; //px per unit + const yScale = 10; //px per unit + w = createGraphWindow(xOrigin, yOrigin, xScale, yScale); + + myLine = w.createLine(-1, -2, 3, 4); + myLine.setIsDraggable(true) + + draggable = w.createDraggable(); + draggable.mouseDragged(object => { + const mouse = createVector(mouseX, mouseY); + const midpoint = object.getCenterInCanvas() + const diff = p5.Vector.sub(mouse, midpoint) + object.translate(diff) + }); + draggable.mouseDropped(() => {}) +} + +function draw() { + background(240, 240, 240); + myLine.takeInput(draggable) + w.line(myLine); +} diff --git a/index.html b/index.html index e4b3a16..1f3ccc4 100644 --- a/index.html +++ b/index.html @@ -14,7 +14,7 @@
- +