summaryrefslogtreecommitdiff
path: root/temp.js
diff options
context:
space:
mode:
authorYann C <yann.clarisse@epita.fr>2024-04-19 12:48:43 +0300
committerYann C <yann.clarisse@epita.fr>2024-04-19 12:48:43 +0300
commitcdb21e3e914e4aa0353827c2c3d97269932d1237 (patch)
treef0ceccfb3ae1c7895891eefae8888b95713a9f89 /temp.js
parent55045dfe27374ade8cdd55667197f42595917669 (diff)
Diffstat (limited to 'temp.js')
-rw-r--r--temp.js181
1 files changed, 0 insertions, 181 deletions
diff --git a/temp.js b/temp.js
deleted file mode 100644
index 1accb19..0000000
--- a/temp.js
+++ /dev/null
@@ -1,181 +0,0 @@
-const canvas = document.getElementById('drawing-board');
-const ctx = canvas.getContext('2d');
-const reset = document.getElementById("reset");
-
-robot = document.getElementById('robot');
-cross = document.getElementById('cross');
-
-const canvasOffsetX = canvas.offsetLeft;
-const canvasOffsetY = canvas.offsetTop;
-
-let scale = 2
-let drawings = []
-let prev = 0
-let angle = 0
-
-let speed = 200 // mm/s
-let dx = 0
-let dy = 0
-let conv = 10
-let animation = 0
-
-canvas.width = window.innerWidth - canvasOffsetX * 2;
-canvas.height = window.innerHeight - canvasOffsetY * 2;
-
-ctx.translate(canvas.width/2 + canvasOffsetX, canvas.height/2 + canvasOffsetY)
-
-reset.style.top = canvasOffsetY * 2 + "px";
-reset.style.right = canvasOffsetX * 2 + "px";
-robot.style.left = (canvas.width/2 + canvasOffsetX)/canvas.width *100 + "%"
-robot.style.top = (canvas.height/2 + canvasOffsetY)/canvas.height *100 + "%"
-
-class Wall {
- constructor(x,y,a) {
- this.x = x
- this.y = y
- this.h = 5
- this.a = a
- }
-
- draw(context) {
- context.fillRect(this.x - robot.offsetWidth/2, this.y - this.h/2,robot.offsetWidth,this.h)
- }
-}
-
-canvas.addEventListener('mousedown', (e) => {
- if (animation != 0) {
- cancelAnimationFrame(animation)
- }
- cross.style.visibility = "visible";
-
- x = e.layerX - canvas.width/2 - 2*canvasOffsetX
- y = e.layerY - canvas.height/2 - 2*canvasOffsetY
- cross.style.left = e.layerX - canvasOffsetX + "px"
- cross.style.top = e.layerY - canvasOffsetY + "px"
-
- prev = angle
- angle = Math.atan(x/Math.abs(y))
-
- sym = 1
- if (x < 0) {
- sym = -1
- }
-
- if (y > 0) {
- angle = sym*Math.PI - angle
- }
-
- robot.style.transform = 'translate(-50%, -50%) rotate('+ angle +'rad)';
- dist = Math.sqrt(x*x + y*y)
- t = (dist/speed) * 1000/conv //miss conv
- dx = x/(t)
- dy = y/(t)
- diff = angle - prev
-
- if(angle * prev < 0 ) {
- diff = (Math.abs(angle) + Math.abs(prev))
- if (angle < 0)
- diff = -diff
- }
- console.log("net angle :" + angle * 180 / Math.PI)
-
- if(diff > Math.PI) {
- diff = diff - 2*Math.PI
- }
- if (diff < -Math.PI) {
- diff = diff + 2*Math.PI
- }
- moveTo(dist,diff)
-
- moveAll()
-});
-/*
-client.on('message', function (topic, message) {
- let val = message.toString();
- if (val == 'STOP') {
- dx = 0
- dy = 0
- }
- else {
- var n = parseInt(val);
- if (!isNaN(n)){
- if (n < 150){
- wall = new Wall(n * Math.sin(angle), - n * Math.cos(angle), angle)
- drawings.push(wall)
- draw(wall)
- }
- }
- }
-});*/
-
-
-function test(wall) {
- drawings.push(wall)
- draw(wall)
-}
-
-function stop() {
- dx = 0
- dy = 0
- if (animation != 0) {
- cancelAnimationFrame(animation)
- }
-}
-
-
-function draw(wall) {
- ctx.save()
- x = wall.x
- y = wall.y
- wall.x = 0
- wall.y = 0
- ctx.translate(x,y)
- ctx.rotate(wall.a)
- wall.draw(ctx)
- wall.x = x
- wall.y = y
- ctx.restore()
-}
-
-function moveAll() {
-
- a = canvas.width/2 + canvasOffsetX
- b = canvas.height/2 + canvasOffsetY
- ctx.clearRect(-a,-b,canvas.width,canvas.height)
-
- drawings.forEach((e) => {
- e.x -= dx
- e.y -= dy
- draw(e)
- })
- animation = requestAnimationFrame(moveAll)
-}
-
-reset.onclick = () => {
- a = canvas.width/2 + canvasOffsetX
- b = canvas.height/2 + canvasOffsetY
- ctx.clearRect(-a,-b,canvas.width,canvas.height)
- cross.style.visibility = 'hidden'
- drawings = [];
- angle = 0
- prev = 0
- dx = 0
- dy = 0
- robot.style.transform = 'translate(-50%, -50%) rotate(0deg)';
-}
-
-function resizeCanvas() {
- cross.style.visibility = 'hidden'
- canvas.width = window.innerWidth - canvasOffsetX * 2
- canvas.height = window.innerHeight - canvasOffsetY *2
- reset.style.top = canvasOffsetY * 2 + "px";
- reset.style.right = canvasOffsetX * 2 + "px";
- robot.style.left = (canvas.width/2 + canvasOffsetX)/canvas.width *100 + "%"
- robot.style.top = (canvas.height/2 + canvasOffsetY)/canvas.height *10
-
- ctx.setTransform(1, 0, 0, 1, 0, 0);
- ctx.translate(canvas.width/2 + canvasOffsetX, canvas.height/2 + canvasOffsetY)
- moveAll(0,0)
-}
-
-window.onresize = resizeCanvas; \ No newline at end of file