Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

231
Views
¿Por qué esto solo gira y no se mueve hacia la derecha?

Tengo la siguiente pagina web:

 var box_x = 30; var box_y = 30; var box_width = 30; var box_height = 30; var box_direction = 20; // Degrees clockwise function draw_box() { var c = document.getElementById("area"); var ctx = c.getContext("2d"); ctx.clearRect(0, 0, 500, 500); ctx.rotate(box_direction * Math.PI / 180); ctx.fillRect(box_x, box_y, 100, 50); box_x += 2; } setInterval(draw_box, 1000);
 <h1>Welcome</h1> <canvas id="area" width="500px" height="500px" style="border: 1px solid #0000aa" /> </canvas>

¿Por qué la caja no se mueve simplemente hacia la derecha?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

ctx.rotate gira todo el lienzo desde la esquina superior izquierda, por lo que primero debe usar ctx.translate para mover la esquina superior izquierda al pivote (que es la esquina superior izquierda del cuadro) y luego hacer lo mismo pero al revés para restablecer la rotación y traslación del lienzo

 var box_x = 30; var box_y = 30; var box_width = 30; var box_height = 30; var box_direction = 20; // Degrees clockwise function draw_box() { var c = document.getElementById("area"); var ctx = c.getContext("2d"); ctx.clearRect(0, 0, 500, 500); ctx.translate(box_x, box_y); ctx.rotate(box_direction * Math.PI / 180); ctx.fillRect(0, 0, 100, 50); ctx.rotate(-box_direction * Math.PI / 180); ctx.translate(-box_x, -box_y); box_x += 2; } setInterval(draw_box, 1000);
 <h1>Welcome</h1> <canvas id="area" width="500px" height="500px" style="border: 1px solid #0000aa" /> </canvas>

about 4 years ago · Juan Pablo Isaza Report

0

Porque tienes ctx.rotate(box_direction * Math.PI / 180); . Esto está girando con la caja.

 <html> <head> <title>Rectangles wandering around aminlessly</title> </head> <body <h1>Welcome</h1> <canvas id="area" width="500px" height="500px" style="border: 1px solid #0000aa"/> </canvas> <script lang="javascript"> var box_x = 30; var box_y = 30; var box_width = 30; var box_height = 30; var box_direction = 20; // Degrees clockwise function draw_box() { var c = document.getElementById("area"); var ctx = c.getContext("2d"); ctx.clearRect(0, 0, 500, 500); ctx.fillRect(box_x, box_y, 100, 50); box_x += 2; } setInterval(draw_box, 1000); </script> </body>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!