From 62ccd5f48cd1f49effaa76ef01eb45072a0a42df Mon Sep 17 00:00:00 2001 From: sanine Date: Sun, 29 May 2022 15:27:21 -0500 Subject: add basic canvas object --- src/main.js | 48 ++++++++++++++---------------------------------- 1 file changed, 14 insertions(+), 34 deletions(-) (limited to 'src/main.js') diff --git a/src/main.js b/src/main.js index ade4e27..40c3f83 100644 --- a/src/main.js +++ b/src/main.js @@ -1,42 +1,22 @@ -import Voronoi from './modules/3rdparty/rhill-voronoi-core.js'; -import Terrain from './modules/Terrain.js'; -import Mouse from './modules/Mouse.js'; +import Canvas from './Canvas.js'; const $ = id => document.getElementById(id) window.onload = () => { - let canvas = document.createElement('canvas'); - const ct = canvas.getContext('2d'); + const canvas = new Canvas('root'); - let render; - - let mouse = new Mouse(ct); - - const setCanvasSize = () => { - canvas.setAttribute('width', window.innerWidth); - canvas.setAttribute('height', window.innerHeight); - const scale = Math.max(canvas.width, canvas.height); - ct.scale(scale, scale); - render(); - }; - window.addEventListener('resize', setCanvasSize); + const pos = canvas.mousePos; + canvas.onmousemove = () => canvas.draw(); + + canvas.ondraw = ct => { + ct.fillRect(0, 0, 0.5, 0.5); - const terrain = new Terrain(); - render = () => { - ct.clearRect(0, 0, 1, 1); - terrain.renderGrid(ct); - mouse.render(ct); + ct.strokeStyle = '#fff'; + ct.lineWidth = 0.001; + ct.beginPath(); + ct.arc(pos.x, pos.y, 0.1, 0, 2*Math.PI); + ct.closePath(); + ct.stroke(); }; - mouse.onMove = () => { - terrain.applyBrush(mouse.x, mouse.y, (pt, strength) => { - const lerp = (a, b, theta) => ((theta-1)*a) + (theta*b); - pt.height = lerp(pt.height, pt.height + 10, strength); - }, 1, mouse.radius); - render(); - } - - setCanvasSize(); - - const root = $('root'); - root.appendChild(canvas); + canvas.draw(); } -- cgit v1.2.1