con*_*ile 2 html javascript html5 canvas rotation
我有一个包含图像的HTML5画布.现在我想用x度旋转这个画布.
我做的是:
function getRadianAngle(degreeValue) {
return degreeValue * Math.PI / 180;
}
var rotateCanvas = function(canvas, image, degrees) {
var context = canvas.getContext('2d');
context.rotate(getRadianAngle(degrees));
context.drawImage(image, 0, 0);
return canvas;
}
var image = new Image();
image.onload = function() {
var canvas = document.createElement("canvas");
var context = canvas.getContext('2d');
var cw = canvas.width = image.width;
var ch = canvas.height = image.height;
context.drawImage(image, 0, 0, image.width, image.height);
rotateCanvas(canvas, image, 180);
}
image.src = // some image url;
Run Code Online (Sandbox Code Playgroud)
此代码无法正常运行.
如何定义旋转功能来旋转画布?
编辑:我不想使用CSS因为我需要画布进行进一步处理.
可以使用CSS完成旋转画布,但如果画布是矩形而不是方形,则可能会弄乱页面设计.
在画布上旋转图像可能更好.
示例代码和演示:http: //jsfiddle.net/m1erickson/8uRaL/
顺便说一句,你想要的角度的弧度是:
示例代码:
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" /> <!-- reset css -->
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<style>
body{ background-color: ivory; }
canvas{border:1px solid red;}
</style>
<script>
$(function(){
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var radians=0;
var img=new Image();
img.onload=start;
img.src="https://dl.dropboxusercontent.com/u/139992952/stackoverflow/cat.png";
function start(){
animate();
}
function animate(){
requestAnimationFrame(animate);
ctx.clearRect(0,0,canvas.width,canvas.height);
ctx.save();
ctx.translate(canvas.width/2,canvas.height/2);
ctx.rotate(radians);
ctx.drawImage(img,-img.width/2,-img.height/2);
ctx.restore();
radians+=Math.PI/180;
}
}); // end $(function(){});
</script>
</head>
<body>
<canvas id="canvas" width=300 height=300></canvas>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4310 次 |
| 最近记录: |