打造Github首页的动态飞线效果

一、导语

Github首页的地球动态飞线,大家都比较熟悉吧
地球动态飞线

二、分析

由大量随机的3点构造出贝塞尔曲线,然后开始从起点到终点的飞行后,然后再从起点到终点的消失,就此完成整个过程

三、基础代码

createCurve(startPoint, endPoint) {
    // 创建一个贝塞尔曲线
    startPoint = new THREE.Vector3(startPoint.x, 4, startPoint.z)
    const endPoints = new THREE.Vector3(endPoint.x, 4, endPoint.z)
    const center = new THREE.Vector3()
    center.lerpVectors(startPoint, endPoints, 0.5)
    console.log('center: ', center)
    center.y += 3.0
    const curve = new THREE.QuadraticBezierCurve3(startPoint, center, endPoints)
    // 获取数组点
    this.points = curve.getPoints(100)
    this.curveGeometry = new LineGeometry()
    // 设置起始点
    this.curveGeometry.setPositions([startPoint.x, startPoint.y, this.startPoint.z])
    this.lineMaterial = new LineMaterial({
      color: new THREE.Color('#993399'),
      linewidth: 2,
      dashed: false
    })
    this.lineMaterial.resolution.set(window.innerWidth, window.innerHeight)
    this.curveObject = new Line2(this.curveGeometry, this.lineMaterial)
    this.scene.add(this.curveObject)
  }

四、动态效果

具体动态效果实现可以关注课程ThreejsWeb3D开发之可视化大数据地图,更多特效尽在里面,限时折扣哦

相关推荐

  1. CSS3 transition过渡:打造流畅动画效果全面指南

    2023-12-10 19:10:06       108 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-10 19:10:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-10 19:10:06       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-10 19:10:06       87 阅读
  4. Python语言-面向对象

    2023-12-10 19:10:06       96 阅读

热门阅读

  1. uniapp小程序分享为灰色

    2023-12-10 19:10:06       52 阅读
  2. pdb 调试 python 代码

    2023-12-10 19:10:06       70 阅读
  3. 基于TCP协议的socket通信过程

    2023-12-10 19:10:06       48 阅读
  4. Android Kotlin语言下的文件存储

    2023-12-10 19:10:06       47 阅读
  5. fetch 和 ajax 的区别

    2023-12-10 19:10:06       54 阅读
  6. <HarmonyOS第一课>保存应用数据【课后考核】

    2023-12-10 19:10:06       68 阅读
  7. P8827传智杯子串

    2023-12-10 19:10:06       55 阅读
  8. 云计算时代改变了什么?

    2023-12-10 19:10:06       60 阅读