Kyl*_*yle 5 html javascript html5-canvas
我有一个绘制到 html cavas 的图像。我希望能够将图像旋转 90 度,但我似乎无法找到有关如何旋转整个画布图像的示例,只有画布上的一个对象。
有没有人有将整个画布旋转 90 度的示例代码?
我接受了下面的 anwser 但想提供额外的示例代码:http : //jsfiddle.net/VTyNF/1/
<canvas id="myCanvas" width="578" height="200"></canvas>
<script>
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.translate(canvas.width/2,canvas.height/2)
context.rotate(90 * (Math.PI / 180));
context.beginPath();
context.rect(188 - canvas.width/2, 50 - canvas.height/2, 200, 100);
context.fillStyle = 'yellow';
context.fill();
context.lineWidth = 7;
context.strokeStyle = 'black';
context.stroke();
</script>
Run Code Online (Sandbox Code Playgroud)
在绘制画布之前,您必须应用此旋转。您无法旋转任何已绘制的内容。
所以:
要旋转画布,content.rotate()
需要一个以弧度为单位的值。首先,让我们简单地使用以下方法将度数转换为弧度:
function getRadianAngle(degreeValue) {
return degreeValue * Math.PI / 180;
}
Run Code Online (Sandbox Code Playgroud)
您可能需要在旋转之前先平移画布,以便正确设置其原点。
context.translate(context.width/2,context.height/2);
一旦我们知道我们想要什么值,我们只需在绘制任何内容之前旋转画布即可!
context.rect(
请注意,在您的示例中,您绘制的矩形也在X,Y,W,H)`的前两个参数中偏移。
我发现将宽度设置为变量更容易,然后进行简单的数学运算来自动重新定位框,注意现在它完美地位于中心,并且旋转得很好!
演示: http: //jsfiddle.net/shannonhochkins/VTyNF/6/