html5隧道效果,HTML5/Canvas三角形扭曲隧道

JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

var c = document.getElementById('canv');

var $ = c.getContext('2d');

var w = c.width = window.innerWidth;

var h = c.height = window.innerHeight / 1.2;

var cnt = 5;

var draw = function() {

var i, b, arr, _arr, rz, x, y, px, py;

var pts = Math.cos(Math.PI * 2);

$.globalCompositeOperation = "source-over";

$.fillRect(0, 0, w, h);

$.globalCompositeOperation = "xor";

var dims = 0.89 + Math.sin(cnt / 45) / 45;

var rot = Math.sin(cnt / -45);

var _w = w;

var u = 0;

for (b = 0; b < 95; b++) {

rz = cnt / 95 + b / 20 * rot;

px = Math.cos(rz / 7) * (b / 7) + 100;

py = Math.sin(rz / 7) * (b / 7) + 100;

$.beginPath();

arr = [];

for (i = 0; i < 5; i++) {

x = Math.sin(rz) * _w + c.width / 2;

y = Math.cos(rz) * _w + c.height / 2;

rz += Math.PI * 2 / 3;

if (i) $.lineTo(x, y);

else $.moveTo(x, y);

arr[i] = [x, y];

}

$.fillStyle = 'hsla(' + b * i + u + ',70%, 50%,1)';

$.closePath();

$.fill();

if (b)

for (i = 0; i < 5; i++) {

$.beginPath();

$.moveTo(arr[i][0], arr[i][1]);

$.lineTo(_arr[i][0], _arr[i][1]);

$.fill();

}

_arr = [];

rz += (Math.PI * 5) / (3 / 4);

for (i = 0; i < 5; i++) {

_arr[i] = [x, y];

rz += (Math.PI * 5) / (3 / 4);

}

_w *= dims;

}

cnt++;

u -= .2;

window.requestAnimationFrame(draw);

}

draw();

/*_________________________________*/

window.addEventListener('resize', function() {

c.width = w = window.innerWidth;

c.height = h = window.innerHeight / 1.2;

}, false);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值