Threejs创建圆环结

简介: 这篇文章讲解了如何在Three.js中创建一个圆环结(例如绳结状的几何体),包括生成圆环结几何体、应用材质以及将其渲染到场景中的过程。

上一章节实现了圆环的绘制,这节来绘制一个和圆环很相近的立体模型:圆环结,圆环结在真实数字孪生场景应用不多,但会常用于AR宣传,广告,建筑设计等领域,使得看起来更有立体和科技感,如上文一样,先要创建出基础的组件,包括场景,相机,灯光,渲染器。代码如下:

 initScene() {
      this.scene = new THREE.Scene();//创建一个Scene场景
    },
    initLight(){
      const light = new THREE.DirectionalLight(0xffffff, 1);//创建一个灯光
      this.scene.add(light)
    },
    initCamera(){
      //创建一个透视相机,视角为45度,宽高比为window窗口的宽高比,0.1为近面,10000为远面
      this.camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 10000);
      this.camera.position.set(50,50,50);//设置相机位置
      this.camera.lookAt(0,0,0);//设置相机位置
    },
 initRenderer(){//初始化渲染器
      this.renderer = new THREE.WebGLRenderer({ antialias: true });
      this.container = document.getElementById("container");//获取容器
      this.renderer.setSize(this.container.clientWidth, this.container.clientHeight);//设置渲染器的大小
      this.container.appendChild(this.renderer.domElement);//将渲染器添加到容器中
      this.renderer.setClearColor('#FFFFFF', 1.0);//设置背景颜色
    },
    initOrbitControls(){ //创建鼠标控制工具
      this.orbitControls = new OrbitControls(this.camera, this.renderer.domElement);//创建控制器
    },
    initAnimate() { //循环渲染
      requestAnimationFrame(this.initAnimate);
      this.renderer.render(this.scene, this.camera);
    },

圆环结是由多个相互交织的圆环组成的复杂 3D 结构。我们可以将其看作是多个圆环在特定的位置和角度上进行组合和缠绕而成。Three.js 中的 TorusKnotGeometry 类专门用于创建圆环结。它接受一些参数来控制圆环结的形状和大小。参数列表如下:

  • radius - 圆环的半径。默认值为1
  • tube — 管道的半径。默认值为0.4
  • tubeSegments — 默认值为64
  • radiusSegments — 默认值为8
  • p — 该值决定几何体绕其旋转对称轴旋转的次数。默认值为2
  • q — 此值决定几何体在圆环内部绕一圈的次数。默认值为3。

代码如下:

    //创建环形纽结
    initTorusKnotGeometry(){
      // 创建环形纽结,圆环的半径为10,环的半径为3,分段数100,环的分段数16
      const geometry = new THREE.TorusKnotGeometry( 10, 3, 100, 16 );
      const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
      const torusKnot = new THREE.Mesh( geometry, material );
      this.scene.add( torusKnot );
    },

最终效果显示如下:

但是因为颜色会纯色,看不出立体效果,我们将材质修改为只显示框架,只需要将材质修改为:

const material = new THREE.MeshBasicMaterial( { color: 0xffff00 ,wireframe:true} ); //材质

相关文章
如何在 Umi 中使用 Keep Alive
如何在 Umi 中使用 Keep Alive
4481 0
如何在 Umi 中使用 Keep Alive
Threejs绘制圆锥体
这篇文章讲解了如何在Three.js中创建并正确定向圆锥体,确保其在不同场景下的稳定显示,涵盖了生成圆锥体几何体、设置材质和纹理以及解决可能的倾斜显示问题等内容。
219 1
Threejs绘制圆锥体
|
开发框架 Java Linux
libgdx的完整教程
本文概述了LibGDX作为一个跨平台的2D/3D游戏开发框架,以其强兼容性、高效性及全面支持游戏开发的多个模块,成为开发者的受欢迎选择。
649 2
libgdx的完整教程
ThreeJs创建球体
这篇文章讲解了如何在Three.js中创建并添加一个球体到场景中,包括定义球体的几何形状、赋予材质以及最终渲染球体的过程。
393 1
|
开发框架
threejs做特效:实现物体的发光效果-EffectComposer详解!
【8月更文挑战第7天】实现物体的发光效果-EffectComposer详解!
2225 6
threejs做特效:实现物体的发光效果-EffectComposer详解!
|
11月前
|
前端开发 数据安全/隐私保护
全新紫色新UI数码盲盒系统源码/全开源无加密/附教程
全新紫色新UI数码盲盒系统源码/全开源无加密/附教程 前端uniapp+H5 后端FastAdmin框架 可打包成APP多端运行 亲测可用
319 13
ThreeJs绘制圆柱体
这篇文章介绍了在Three.js中绘制圆柱体的方法,包括创建圆柱体几何体、设置材质以及将其正确放置在三维场景中的技巧。
358 0
ThreeJs绘制圆柱体
ThreeJs创建圆环
这篇文章介绍了如何在Three.js中创建一个圆环(torus),包括设置圆环的几何形状、材质以及将其添加到场景中的具体步骤。
259 0
ThreeJs创建圆环
|
API
【threejs教程】threejs中的边边角角:几何体详解
【8月更文挑战第6天】threejs中的几何体详解
548 4
【threejs教程】threejs中的边边角角:几何体详解
|
JavaScript 前端开发 CDN
ThreeJs Demo 之创建星空效果
ThreeJs Demo 之创建星空效果
563 3

热门文章

最新文章