0
我有一个图像在我的画布,并试图以一种不寻常的方式旋转它。我有我的形象旋转,但在错误的原点。画布旋转图像描绘了一个有角度的椭圆
我想旋转图像,使椭圆显示为从原点旋转而不是旋转图像。最终,椭圆将在画布中静止并简单地旋转。
这是我当前的代码:
var canvas = document.getElementById('canvas'),
ctx = canvas.getContext('2d');
var angle;
var toRads = Math.PI/180;
var start = new Date().getTime();
var rotation = 15;
function draw(){
var x = canvas.width/2 - img.width/2;
var y = canvas.height/2 - img.height/2;
var deltaTime = new Date().getTime() - start;
start = new Date().getTime();
angle = (angle || 0) + (deltaTime/1000 * rotation);
if(angle > 360){angle = 0;}
ctx.clearRect(0,0,canvas.width,canvas.height);
ctx.save();
ctx.translate(x,y);
ctx.rotate(angle * toRads);
ctx.drawImage(img,20,20);
ctx.restore();
setTimeout(draw,1);
}
我想知道这是否可以在2D完成或仅是人们可以通过三维如WebGL的东西吗?
我创造了什么,我到目前为止得到了的jsfiddle: http://jsfiddle.net/hc0p5e06/
中心是指图像还是圆圈? – Sir
你可以将中心放在任何你想要的地方。 drawImage的第6和第7个参数应该是要旋转的图像上(或关闭)位置的负值。 – Blindman67
但问题是,椭圆不是一个完美的圆形,所以如果我只想旋转它,原点就会不同。如果你想象椭圆只是一个角度的圆,而且你希望它像轮子一样旋转,那么我不完全知道如何做。 – Sir