将位于北半球的半圆形图像顶部的表盘旋转,范围可为0-180度。 在传递给执行画布转换的方法的输入中,表盘会旋转并停止在匹配的值上。以下是我基于phrogz 提供的帮助和样例进行尝试的。
将位于北半球的半圆形图像顶部的表盘旋转,范围可为0-180度。 在传递给执行画布转换的方法的输入中,表盘会旋转并停止在匹配的值上。以下是我基于phrogz 提供的帮助和样例进行尝试的。
一般来说,您需要执行以下操作:
代码实现如下:
ctx.save();
ctx.translate( canvasRotationCenterX, canvasRotationCenterY );
ctx.rotate( rotationAmountInRadians );
ctx.translate( -objectRotationCenterX, -objectRotationCenterY );
ctx.drawImage( myImageOrCanvas, 0, 0 );
ctx.restore();
这里有一个可以实际运行的示例,展示了这种方法的效果。(旋转的数学计算只是通过试验来找到适合快速草图标尺盘的振幅和偏移量的弧度。)
显而易见的是,在步骤#3中,您可以用drawImage()
调用的偏移量替代translate
调用。例如:
ctx.drawImage( myImageOrCanvas, -objectRotationCenterX, -objectRotationCenterY );
当你需要在同一位置绘制多个对象时,建议使用上下文翻译。
rotate()
,但没有先将它们转换为弧度?如果是这样,请乘以 Math.PI/180
。如果这不起作用,请编辑你的问题,展示一个简化的测试案例,包含你的实际代码,我们可以从那里开始解决。 - Phrogz