three实现canvas彩色圆弧绕圆球旋转动画效果代码
代码语言:html
所属分类:动画
代码描述:three实现canvas彩色圆弧绕圆球旋转动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style type="text/css"> *{margin:0;padding:0;} body{overflow-x:hidden;} </style> </head> <body> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.109.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/tween.min.js"></script> <script> // Referred to https://github.com/spite/looper/blob/master/loops/25.js var clock = new THREE.Clock(); var scene = new THREE.Scene(); scene.background = new THREE.Color(0x100A47); scene.fog = new THREE.Fog(0x100A47, 1, 10000); var objectGroup = new THREE.Group(); var sphere = void 0; var map = function map(value, beforeMin, beforeMax, afterMin, afterMax) { return afterMin + (afterMax - afterMin) * ((value - beforeMin) / (beforeMax - beforeMin)); }; var getPointByAngle = function getPointByAngle(angle) { var x = Math.cos(angle); var y = Math.sin(angle); return { x: x, y: y }; }; var createCurveGeometry = function createCurveGeometry(origin, radius, angle, length, cylinderRadius) { var p = new THREE.Vector3(); var vertices = []; var step = 0.1; for (var a = angle, len = angle + length; a < len; a += step) { var res = getPointByAngle(a); var z = Math.sin(a); p.set(radius * res.x, 1.25 * radius * res.y, z); p.add(origin); vertices.push(p.clone()); } var path = new THREE.CatmullRomCurve3(vertices); return new THREE.TubeGeometry(path, 2 * vertices.length, cylinderRadius, 18, false); }; var values = []; var curveMaterial = new THREE.MeshStandardMaterial({ wireframe: false, color: 0xffcc00, metalness: 0.1, roughness: 0.1, side: THREE.DoubleSide }); var whiteMaterial = curveMaterial.clone(.........完整代码请登录后点击上方下载按钮下载查看
网友评论0