首页 > 编程 > HTML > 正文

HTML5 Canvas旋转动画的2个代码例子

2020-03-24 15:56:03
字体:
来源:转载
供稿:网友

效果图:

HTML5 Canvas旋转动画的2个代码例子

方法一:



代码如下:<!DOCTYPE HTML>

<html>

<body>

<canvas id="myCanvas" width="500" height="500">your browser does not support the canvas tag</canvas>

<script type="text/javascript">

var deg = 0;

var r = 30;

var rl = 100;

function drawTaiji() {

var canvas = document.getElementById('myCanvas');

var context = canvas.getContext('2d');

var colorA = "rgb(0, 0, 0)";

var colorB = "red";



var px =Math.sin(deg)*r;

var py =Math.cos(deg)*r;

context.clearRect(0, 0, 300, 300);

context.beginPath();

context.fillStyle = colorA;

context.arc(rl, rl, 60, 0.5 * Math.PI +deg, 1.5 * Math.PI +deg, true);

context.closePath();

context.fill();

context.fillStyle = colorB;

context.beginPath();

context.arc(rl, rl, 60, 1.5* Math.PI +deg, 0.5 * Math.PI +deg, true);

context.closePath();

context.fill();

context.fillStyle = colorB;

context.beginPath();

context.arc(rl+px, rl-py, 30, 0.5 * Math.PI + deg, 1.5 * Math.PI + deg, true);

context.closePath();

context.fill();

context.fillStyle = colorA;

context.beginPath();

context.arc(rl-px, rl+py, 30, 1.5 * Math.PI + deg, 0.5 * Math.PI + deg, true);

context.closePath();

context.fill();

context.fillStyle = colorA;

context.beginPath();

context.arc(rl+px, rl-py, 8, 0, 2 * Math.PI, true);

context.closePath();

context.fill();

context.fillStyle = colorB;

context.beginPath();

context.arc(rl-px, rl+py, 8, 0, 2 * Math.PI, true);

context.closePath();

context.fill();

deg +=0.1;

}

setInterval(drawTaiji, 100);

</script> </p> <p></body>

</html>

方法二:



代码如下:

<!DOCTYPE HTML>

<html>

<body>

<canvas id="myCanvas" width="500" height="500" >your browser does not support the canvas tag </canvas>

<script type="text/javascript">

var canvas = document.getElementById('myCanvas');

var ctx = canvas.getContext("2d");

var angle = 0;

var count = 360;

var clrA = '#000';

var clrB = 'red';



function taiji(x, y, radius, angle, wise) {

angleangle = angle || 0;

wisewise = wise ? 1 : -1;

ctx.save();

ctx.translate(x, y);

ctx.rotate(angle);

ctx.fillStyle = clrA;

ctx.beginPath();

ctx.arc(0, 0, radius, 0, Math.PI, true);

ctx.fill();

ctx.beginPath();

ctx.fillStyle = clrB;

ctx.arc(0, 0, radius, 0, Math.PI, false);

ctx.fill();

ctx.fillStyle = clrB;

ctx.beginPath();

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表