项目地址下载
DEMO

function Initialize(opt) {var camera, scene, renderer;var clock = new THREE.Clock();var Config = {width: 400,// 长度number: 5,// 条数u_time: 0,// 时间ygap: 10,// y 间隔zgap: 5,// x 间隔speed: 1,// 速度}var lines = [];function init() {camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 10000);camera.position.set(0, 100, 300);camera.lookAt(new THREE.Vector3(0, 0, 0))scene = new THREE.Scene();renderer = new THREE.WebGLRenderer({ antialias: true });renderer.setPixelRatio(window.devicePixelRatio);renderer.setSize(window.innerWidth, window.innerHeight);document.querySelector(opt.id).appendChild(renderer.domElement);//把canvas加载到dom元素中df_canvas = renderer.domElementif (THREE.OrbitControls) {new THREE.OrbitControls(camera, renderer.domElement);}createWave()animate()}function update(dt) {let waveArr = [];for (let i = 0; i < Config.number; i++) {const arr = [];var src = new THREE.Vector3(- Config.width / 2, 0, i * 5);var dst = new THREE.Vector3(Config.width / 2, 0, i * 5);arr.push(src, dst);waveArr.push(arr);}// 计算位置waveArr.forEach((elem, i) => {let paths = _tranformPath(elem, 0.5);paths.forEach((_elem) => {_elem.y = Math.cos(_elem.x * 0.05 + i / 2 + dt) * Config.ygap - i;_elem.z = Math.sin(_elem.x * 0.05 + i / 2 + dt) * Config.zgap - i;_elem.x = _elem.x + i * 2;})let line = lines[i]let position = [];paths.forEach((elem) => {position.push(elem.x, elem.y, elem.z)})line.geometry.addAttribute("position", new THREE.Float32BufferAttribute(position, 3))})}function createWave() {for (let i = 0; i < Config.number; i++) {const arr = [];addLine(arr, i / 5)}}function addLine(vecs, op = 1) {let geometry = new THREE.BufferGeometry();let material = new THREE.LineBasicMaterial({color: 0xffffff,depthTest: false,transparent: true,opacity: op});let line = new THREE.Line(geometry, material);scene.add(line);lines.push(line);}function _tranformPath(arr, dpi = 1) {const vecs = [];for (let i = 1; i < arr.length; i++) {let src = arr[i - 1];let dst = arr[i];let s = new THREE.Vector3(src.x, src.y, src.z);let d = new THREE.Vector3(dst.x, dst.y, dst.z);let length = s.distanceTo(d) * dpi;let len = parseInt(length);for (let i = 0; i <= len; i++) {vecs.push(s.clone().lerp(d, i / len))}}return vecs;}function animate() {requestAnimationFrame(animate);var dt = clock.getDelta();if (dt > 0.2) return;if (lines) {Config.u_time += dt * Config.speed;update(Config.u_time);}renderer.render(scene, camera);}init();
}

可视化-three.js波浪线条相关推荐

  1. html5 canvas全屏变色波浪线条动画js特效

    下载地址 基于html5 canvas+js制作的全屏变色波浪线条动画特效,线条发光背景颜色变换效果. dd:

  2. CSS3 SVG波浪线条动画js特效

    下载地址 CSS3 SVG波浪线条动画特效是一款简单的线条波浪滚动,线条弯曲动画特效. dd:

  3. html5波浪线条,HTML5 svg炫酷波浪线条动画插件

    这是一款HTML5 svg炫酷波浪线条动画插件.该波浪动画插件基于tweenMax和SVG,也可以作为jQuery插件来使用,可以制作出漂亮的波浪线条动画特效. 使用方法 在页面中引入jquery和T ...

  4. R语言ggplot2可视化改变图中线条的透明度级别实战

    R语言ggplot2可视化改变图中线条的透明度级别实战 目录 R语言ggplot2可视化改变图中线条的透明度级别实战 #默认没有透明

  5. JS实现线条动态背景

    [Top] JS实现线条动态背景 线条随机运动,鼠标移动过程中,有吸附性,话不多说,直接上代码吧! !function () {let num = 100;//设置所画线的颜色let colorLin ...

  6. 惊艳!可视化的 js:动态图演示 - 事件循环 Event Loop

    原文地址:https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif 原文作者:Lydia Hallie 译者:夜尽天明 译者博客 ...

  7. d3.js放射线条生成器lineRadial

    d3.js放射线条生成器lineRadial 白色是用三角函数生成的数据. 红色是随机生成的数据. <!DOCTYPE html> <html lang="en" ...

  8. 可视化-three.js 城市 波浪特效 城市 扫光 掠过效果

    使用Obj 模型 + shader 实线 模型以及代码 csdn 模型以及代码 git 已有效果添加波浪 快速搭建工具 加载 obj 格式文件加载到 scene中: 使用 ShaderMaterial ...

  9. 知识图谱可视化vue.js + d3.js

    Github 前端 vue.js + d3.js. 需求 上部区域 展示所有的概念类别.以及画布内他们的个数 展示所有关系类别,以及画布内他们的个数 显示所有的概念场景(scenes 字段).关系场景 ...

最新文章

  1. 2022-2028年中国丁晴橡胶行业市场深度分析及投资规划分析报告
  2. 有道精品课python-115批量转存与提取sha1工具2020下载
  3. 如何用python创建一个下载网站-用Python写一个简单的网页下载
  4. 雅虎宣布关闭旗下7个数字杂志
  5. 杭电ACM刷题(1):1002,A + B Problem II
  6. 《系统集成项目管理工程师》必背100个知识点-56X理论和Y理论
  7. Python牛刀小试(五)--logging模块
  8. mysql卸载时弹框,win10卸载mysql5安装mysql8
  9. linux brctl命令,Linux中brctl命令起什么作用呢?
  10. java equ,Java equals方法详解
  11. 工作两年多的一个菜鸟感想
  12. msyql开启慢查询以及分析慢查询
  13. mysql8 win10_window10下安装多个MySQL8.0
  14. jQuery 学习-DOM篇(六):jQuery 替换 DOM 元素
  15. 程序员修炼之道 pdf_程序员修炼之道-注重实效
  16. 电脑丢失api-ms-win-core-libraryloader-|1-1-1.dll怎么办
  17. WPS2019 所有宏被禁,用启用宏要付费,如何免费使用
  18. dm连接mysql_DM数据库JDBC连接
  19. 【机器学习】Tensorflow:理解和实现快速风格化图像fast neural style
  20. java throw throwable_异常处理:throw,throws和Throwable

热门文章

  1. 手机便签里的文字不小心点了个粘贴就消失了应该怎样复原呢?
  2. Kotlin协程 - - - 协程的简单使用
  3. 无线蓝牙耳机充电仓充电_无线充电器浪费能源
  4. 文化怪杰--辜鸿铭全传!
  5. 如何给信号加噪声,matlab
  6. C++map和set
  7. VIPS:基于视觉的Web页面分页算法(转载)
  8. 普通电脑U盘安装苹果系统简易方法
  9. 附带有背景图、文字的二维码
  10. html canvas php,HTML5 canvas实现画图程序(附代码)