Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
html,body{ margin:0px; width:100%; height:100vh; overflow:hidden; background:#000'' } #canvas{ width:100%; height:100%; }
JavaScript
function project3D(x,y,z,vars){ var p,d; x-=vars.camX; y-=vars.camY; z-=vars.camZ; p=Math.atan2(x,z); d=Math.sqrt(x*x+z*z); x=Math.sin(p-vars.yaw)*d; z=Math.cos(p-vars.yaw)*d; p=Math.atan2(y,z); d=Math.sqrt(y*y+z*z); y=Math.sin(p-vars.pitch)*d; z=Math.cos(p-vars.pitch)*d; p=Math.atan2(x,y); d=Math.sqrt(x*x+y*y); x=Math.sin(p-vars.roll)*d; y=Math.cos(p-vars.roll)*d; return {x:vars.cx+x/z*vars.scale,y:vars.cy+y/z*vars.scale,d:z>0?Math.sqrt(x*x+y*y+z*z):-1} } function rgb(col){ col += 0.000001; var r = parseInt((0.5+Math.sin(col)*0.5)*16); var g = parseInt((0.5+Math.cos(col)*0.5)*16); var b = parseInt((0.5-Math.sin(col)*0.5)*16); return "#"+r.toString(16)+g.toString(16)+b.toString(16); } function process(vars){ vars.scale-=Math.cos(vars.frameNo/40)*8; vars.shipSpeed+=Math.cos(vars.frameNo/40)/30; vars.yaw+=Math.cos(vars.frameNo/100)/80; vars.pitch+=Math.sin(vars.frameNo/70)/40; vars.roll-=Math.cos(vars.frameNo/130)/40; vars.shipVX=Math.sin(vars.yaw)*Math.cos(vars.pitch)*vars.shipSpeed; vars.shipVZ=Math.cos(vars.yaw)*Math.cos(vars.pitch)*vars.shipSpeed; vars.shipVY=Math.sin(vars.pitch)*vars.shipSpeed; vars.camX+=vars.shipVX; vars.camY+=vars.shipVY; vars.camZ+=vars.shipVZ; for(var i=0;i
vars.fieldRadius)vars.shapes[i].x-=vars.fieldRadius*2; if(vars.shapes[i].x-vars.camX<-vars.fieldRadius)vars.shapes[i].x+=vars.fieldRadius*2; if(vars.shapes[i].y-vars.camY>vars.fieldRadius)vars.shapes[i].y-=vars.fieldRadius*2; if(vars.shapes[i].y-vars.camY<-vars.fieldRadius)vars.shapes[i].y+=vars.fieldRadius*2; if(vars.shapes[i].z-vars.camZ>vars.fieldRadius)vars.shapes[i].z-=vars.fieldRadius*2; if(vars.shapes[i].z-vars.camZ<-vars.fieldRadius)vars.shapes[i].z+=vars.fieldRadius*2; } } function sortFunction(a,b){ return b.dist-a.dist; } function draw(vars){ vars.ctx.globalAlpha=1; vars.ctx.fillStyle="rgba(0,0,0,.65)"; vars.ctx.fillRect(0, 0, canvas.width, canvas.height); var x,y,z,point,pta,ptb,a; for(i=vars.shapes.length;i--;){ x=vars.shapes[i].x; y=vars.shapes[i].y; z=vars.shapes[i].z; point=project3D(x,y,z,vars); a=1-Math.pow(point.d/vars.fieldRadius,10); vars.ctx.globalAlpha=a<0?0:a; vars.ctx.strokeStyle=rgb(vars.frameNo/16+(i/800)*(1/vars.scale*200)); vars.ctx.lineWidth=40/(1+point.d); vars.ctx.beginPath(); for(j=12;j--;){ pta=project3D(x+vars.shapes[i].s[j].a.x,y+vars.shapes[i].s[j].a.y,z+vars.shapes[i].s[j].a.z,vars); ptb=project3D(x+vars.shapes[i].s[j].b.x,y+vars.shapes[i].s[j].b.y,z+vars.shapes[i].s[j].b.z,vars); if(pta.d!=-1&&ptb.d!=-1){ vars.ctx.moveTo(pta.x,pta.y); vars.ctx.lineTo(ptb.x,ptb.y); } } vars.ctx.stroke(); } } function rotateShape(shape, yaw, pitch, roll){ var x,y,z,p,d; for(var i=0;i
Math.random()*Math.PI*2; function loadScene(vars){ vars.shapes=[]; for(var i=0;i
{ vars.mx=e.clientX/vars.canvas.clientWidth*vars.canvas.width vars.my=e.clientY/vars.canvas.clientHeight*vars.canvas.height }); vars.camX = 0; vars.camY = 0; vars.camZ = 0; vars.pitch = 0; vars.yaw = 0; vars.roll = 0; vars.cx=vars.canvas.width/2; vars.cy=vars.canvas.height/2; vars.scale=400; vars.shipSpeed=1.5; vars.shipVX=vars.shipVY=vars.shipVZ=0; vars.fieldRadius=150; vars.cubeNo=1500; loadScene(vars); } vars.frameNo++; requestAnimationFrame(function() { frame(vars); }); process(vars); draw(vars); } frame();
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>立方体域-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号