p5实现跨纬度蠕虫三维蠕动动画效果代码
代码语言:html
所属分类:动画
代码描述:p5实现跨纬度蠕虫三维蠕动动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> * { margin:0; padding:0; } html, body { width:100%; height:100%; overflow: hidden; background:black;} canvas { display:block; } #controls { z-index: 2; margin: 20px; position: absolute; top: 0; left: 0; color: white; } </style> </head> <body translate="no"> <div id="controls"></div> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/p5.0.10.2.js"></script> <script > let maxPoints = 2000; let addSpeed = 4; class Vec3{ constructor(x, y, z, r=10){ this.x = x; this.y = y; this.z = z; this.r = r; this.count = 0; } op(p, f){ this.x = f(this.x, p.x != undefined ? p.x : p); this.y = f(this.y, p.y != undefined ? p.y : p); this.z = f(this.z, p.z != undefined ? p.z : p); return this; } plus (p){return this.op(p, (a, b) => a + b)} minus (p){return this.op(p, (a, b) => a - b)} times (p){return this.op(p, (a, b) => a * b)} div (p){return this.op(p, (a, b) => a / b)} distTo(p){return Math.hypot(this.x-p.x, this.y-p.y, this.x-p.z)} clone (){return new Vec3(this.x, this.y, this.z, this.r)} updateRotation(){ let {x, y, z} = this.clone().minus(origin); this.screenCoord = [ (x*cx - y*sx), (y*cx + x*sx)*cy + sy*z ]; thi.........完整代码请登录后点击上方下载按钮下载查看
网友评论0