html块中心轴旋转,html canvas 圆旋转

本文介绍了一个使用HTML5 Canvas实现的动画实例,通过控制多个球体沿圆形路径运动,并带有旋转效果,展示了如何运用JavaScript进行基本图形绘制及动画制作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

11a72131c000364c4a737d2a4acd62c4.png

b73ab68ca84076bded55e218abdd0877.png

8d87cbf801b766756be81d0311dddad2.png

3c98ce91fc9023354cb9f2c3f1316d14.png

*{

padding: 0;

margin: 0;

}

canvas{

background-color: black;

}

function clear(){

ctx.beginPath();

ctx.clearRect(0, 0, width, height);

ctx.closePath();

}

function ArcClass(x, y, a){

this.x = x;

this.y = y;

this.angle = a == undefined ? -90 : a;

}

ArcClass.prototype.draw = function(){

if(isArc){

ctx.beginPath();

ctx.arc(this.x, this.y, r, 0, Math.PI * 2);

ctx.strokeStyle = "white";

ctx.stroke();

ctx.closePath();

}

var radian = this.angle * Math.PI / 180;

var x = Math.cos(radian) * r + this.x;

var y = Math.sin(radian) * r + this.y;

ctx.beginPath();

ctx.arc(x, y, 10, 0, Math.PI * 2);

ctx.fillStyle = "red";

ctx.fill();

ctx.closePath();

this.angle += 1;

if(this.angle >= 270)

this.angle = -90;

};

var canvas = document.getElementById("canvas");

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

var width = window.innerWidth;

var height = window.innerHeight;

var cx = width / 2;

var cy = height / 2;

var list = new Array();

var r = 100;

var isArc = true;

canvas.width = width;

canvas.height = height;

arcBig();

var id = setInterval(function(){

clear();

ctx.beginPath();

ctx.fillStyle = "#000000";

ctx.fillRect(0, 0, width, height);

ctx.closePath();

list.forEach(function(ball){

ball.draw();

});

// clearInterval(id);

}, 0);

// 一共36个球

// 分为四个阶段 36 / 4 = 9

function arcBig(){

var r = 70;

ctx.beginPath();

ctx.arc(cx, cy, 200, 0, Math.PI * 2);

ctx.strokeStyle = "white";

ctx.stroke();

ctx.closePath();

var a = 90;

for(var angle = -90 ; angle <= 270 ; angle += 10 ){

var radian = angle * Math.PI / 180;

var x = Math.cos(radian) * r + cx;

var y = Math.sin(radian) * r + cy;

// add(x, y, angle); // 传入angle 一起放大一起缩小

// add(x, y, angle - 200); // 控制起始位置

add(x, y, a -= 10); // 3d 旋转

}

}

function add(x, y, a){

var c = new ArcClass(x * 1, y * 1, a);

list.push(c);

return c;

}

标签:canvas,angle,ctx,旋转,html,var,height,Math

来源: https://blog.csdn.net/qq_39237554/article/details/113702900

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值