canvas宇宙网连接动画效果
代码语言:html
所属分类:动画
代码描述:canvas宇宙网连接动画效果
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> html, body { margin: 0; } body { overflow: hidden; } canvas { position: absolute; } </style> </head> <body translate="no"> <canvas id="canvas-bottom"></canvas> <canvas id="canvas-top"></canvas> <script > // Provides a simple 3D vector class. Vector operations can be done using member functions, which return new vectors, or static functions, which reuse existing vectors to avoid generating garbage. // original code by https://evanw.github.io/lightgl.js/docs/vector.html (function() { function Vector(x, y, z) { this.x = x || 0; this.y = y || 0; this.z = z || 0; } Vector.prototype = { negative: function() { return new Vector(-this.x, -this.y, -this.z); }, add: function(v) { if (v instanceof Vector) return new Vector(this.x + v.x, this.y + v.y, this.z + v.z); else return new Vector(this.x + v, this.y + v, this.z + v); }, subtract: function(v) { if (v instanceof Vector) return new Vector(this.x - v.x, this.y - v.y, this.z - v.z); else return new Vector(this.x - v, this.y - v, this.z - v); }, multiply: function(v) { if (v instanceof Vector) return new Vector(this.x * v.x, this.y * v.y, this.z * v.z); else return new Vector(this.x * v, this.y * v, this.z * v); }, divide: function(v) { if (v instanceof Vector) return new Vector(this.x / v.x, this.y / v.y, this.z / v.z); else return new Vector(this.x / v, this.y / v, this.z / v); }, equals: function(v) { return this.x == v.x && this.y == v.y && this.z == v.z; }, dot: function(v) { return this.x * v.x + this.y * v.y + this.z * v.z; }, cross: function(v) { return new Vector( this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x ); }, length: function() { return Math.sqrt(this.dot(this)); }, unit: function() { return this.divide(this.length()); .........完整代码请登录后点击上方下载按钮下载查看
网友评论0