Je ne comprends pas bien le système de coordonnées de la zone HTML5. J'ai créé une toile 500x500 et as per this answer J'ai essayé de l'orienter dans un format cartésien plus compréhensible. Cependant, je reçois un comportement inattendu avec mon carré orange.Positionnement sur un canevas HTML5
Avec une toile de 500,500, je m'attendrais à ce qu'un fillRect(-250,-250,100,100)
ait un coin en haut à gauche dans le coin supérieur gauche de la toile, mais à la place, il soit introuvable. Pour quelque raison, un fillRect(150,150,100,100)
a un coin en haut à droite dans le coin supérieur droit de la toile.
Je suis désespérément confus, quelqu'un peut-il faire la lumière sur la dynamique de la toile HTML5?
drawanimation.html:
<!DOCTYPE html>
<html>
<head>
<title>Animate Something!</title>
<link rel='stylesheet' href='drawanimation.css'></link>
<script src='drawanimation.js'></script>
</head>
<body onload = "draw();">
<canvas id="drawer" width="500" height="500"></canvas>
</body>
</html>
drawanimation.js
var width = 500;
var height = 500;
var draw = function(){
var canvas = document.getElementById('drawer');
var context = canvas.getContext('2d');
context.save();
context.clearRect(0,0,width,height);
context.translate(width/2,height/2); //cartesian attempt
//context.rotate(-Math.PI/2); //spin this thing until it's oriented right!
context.fillStyle = 'orange';
context.fillRect(150, 150 ,100,100);
context.restore();
};