当前位置: 首页 > news >正文

Threejs绘制圆锥体

    上一章节实现了胶囊体的绘制,这节来绘制圆锥体,圆锥体就是三角形旋转获得的,如上文一样,先要创建出基础的组件,包括场景,相机,灯光,渲染器。代码如下:

 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);},

ConeGeometry(圆锥几何体)用于创建圆锥形状的三维几何体。

ConeGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength)

  • radius:圆锥底面半径,决定圆锥底部的大小。默认值为 1。
  • height:圆锥的高度,从底面到顶点的距离。默认值为 1。
  • radialSegments:圆锥侧面圆周方向的分段数,决定圆锥侧面的平滑程度。默认值为 8。
  • heightSegments:圆锥高度方向的分段数,影响圆锥在高度上的平滑度。默认值为 1。
  • openEnded:一个布尔值,决定圆锥的底面是否开放。如果为true,则圆锥底面没有面,只有侧面;如果为false,则圆锥是封闭的,既有侧面也有底面。默认值为false
  • thetaStart:圆锥侧面起始角度,以弧度表示。默认值为 0。
  • thetaLength:圆锥侧面的角度范围,以弧度表示。默认值为 2π,即完整的圆周。、

代码如下:

 //创建圆锥体
initConeGeometry(){ const geometry = new THREE.ConeGeometry(1, 2, 32);const material = new THREE.MeshBasicMaterial( {color: '#CCCCCC'} ); //创建材质,颜色为白色#CCCCCCconst cone = new THREE.Mesh( geometry, material ); //通过geometry和材质创建网格模型this.scene.add( cone ); //将网格模型添加到场景中},

效果如下:

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

      const material = new THREE.MeshBasicMaterial( {color: '#CCCCCC',wireframe:true} ); //创建材质,颜色为白色#CCCCCC

http://www.lryc.cn/news/446004.html

相关文章:

  • 速通LLaMA3:《The Llama 3 Herd of Models》全文解读
  • Python网络爬虫获取Wallhaven壁纸图片(源码)
  • 智能化引领等保测评新时代:AI与大数据的深度融合
  • 深入解析:HTTP 和 HTTPS 的区别
  • 《动手学深度学习》笔记1.11——实战Kaggle比赛:预测房价+详细代码讲解
  • 数据结构:单链表实现信息管理
  • 【Linux】解锁文件描述符奥秘,高效缓存区的实战技巧
  • EmguCV学习笔记 VB.Net 11.9 姿势识别 OpenPose
  • 2024.9.26 Spark学习
  • 我与Linux的爱恋:进程地址空间
  • C++的哲学思想
  • IO(输入输出流)
  • python爬虫:从12306网站获取火车站信息
  • Android个性名片界面的设计——约束布局的应用
  • Python 课程18-SQLAlchemy
  • Module did not self-register: ‘drivelist.node‘报错解决
  • zabbix基本概念与组件
  • Linux常用网络工具及示例
  • Go容器化微服务系统实战
  • 研究生三年概括
  • MongoDB在Linux系统中的安装与配置指南
  • Linux下如何实现不用加路径调用启动脚本
  • 编程练习2 数据单元的变量替换
  • mysql的查询操作
  • 0基础学前端 day2
  • Invalid Executable The executable contains bitcode
  • 音视频入门基础:FLV专题(4)——使用flvAnalyser工具分析FLV文件
  • Java服务端开发中的网络安全:防护DDoS与数据泄露的策略
  • CodeMeter 8.20AxProtector 11.50版本更新
  • C语言在嵌入式系统中的应用有哪些?