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

胶囊形状由一个圆柱体和两个半球组成。它在三维空间中呈现出一种流畅且具有一定实用性的形状。

  • 圆柱体部分提供了主体的长度和粗细,可以通过参数调整其高度和半径。
  • 两端的半球使得整体形状更加平滑,减少了尖锐的边角。

CapsuleGeometry的构造函数参数如下:

  1. radius:胶囊圆柱体部分的半径。决定了胶囊的粗细程度。
  2. height:胶囊的总高度,包括圆柱体部分的高度和两个半球的直径之和。这个参数可以控制胶囊的整体长度。

代码如下:

 //胶囊模型
initCapsuleGeometry(){ const geometry = new THREE.CapsuleGeometry( 1, 1, 4, 8 );const material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );const capsule = new THREE.Mesh( geometry, material );this.scene.add( capsule );
},

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

const material = new THREE.MeshBasicMaterial( {color: 0x00ff00, wireframe:true} );

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1545156.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

聆思CSK6大模型开发板上手参考

前面发了很多大模型语音交互相关的技术文章,这篇给大家介绍一下大模型语音交互示例的硬件和上手概况。 硬件概况 聆思CSK6大模型开发板长宽尺寸是99.1x72.1mm, 集成了摄像头、麦克风、扬声器、屏幕、无线模块、TF卡等,可以直接用于大模型语音…

洛谷P2571.传送带

洛谷P2571.传送带 三分模板题 用于单峰函数求极值 一定可以将答案路径分成三段即AE - EF - FD (E和A可能重复,F和D可能重合) E在线段AB上,F在线段CD上 因为有两个不定点EF,因此假设E为参数,三分求F的位置再外层三分求E的位置 …

【JVM】一篇文章彻底理解JVM的组成,各组件的底层实现逻辑

文章目录 JVM 的主要组成部分类加载器(Class Loader)1. 加载(Loading)2. 链接(Linking)3. 初始化(Initialization) Execution Engine(执行引擎)1. 解释器&…

基于SpringBoot+Vue+MySQL的美食点餐管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 在数字化快速发展的今天,餐饮行业也迎来了转型升级的重要机遇。传统餐饮管理方式面临效率低下、顾客体验不佳等问题。为此,开发一款基于SpringBootVueMySQL架构的美食点餐管理系统显得尤为重要。该系统旨…

详解机器学习经典模型(原理及应用)——岭回归

一、什么是岭回归 岭回归(Ridge Regression),也称为Tikhonov正则化(Tikhonov Regularization),是一种专门用于处理多重共线性(特征之间高度相关)问题的线性回归改进算法,…

Go Mail设置指南:如何提升发送邮件效率?

Go Mail使用技巧与配置教程?如何用Go Mail实现发信? 随着工作负载的增加,如何高效地发送和管理邮件成为了许多职场人士面临的挑战。AokSend将为您提供一份详细的Go Mail设置指南,帮助您提升发送邮件的效率,让您的邮件…

Java网络编程、正则表达式、单例设计模式与Lombok

目录 Java网络编程、正则表达式、单例设计模式与Lombok Java网络编程 软件结构 网络基础知识 相关概念 IP地址 TCP协议和UDP协议介绍 TCP协议的三次握手和四次挥手 UDP协议编程 创建客户端 创建服务端 运行 TCP协议编程 创建客户端 创建服务端 运行 文件上传案例 创建客户端 创…

风力发电机叶片表面缺陷识别检测数据集yolo数据集 共7000张

风力发电机叶片表面缺陷识别检测数据集yolo数据集 共7000张 风力发电机叶片表面缺陷识别数据集(Wind Turbine Blade Defects Recognition Dataset, WTBDRD) 摘要 WTBDRD 是一个专门为风力发电机叶片表面缺陷识别而设计的数据集,旨在为相关领…

OpenAPI鉴权(二)jwt鉴权

一、思路 前端调用后端可以使用jwt鉴权;调用三方接口也可以使用jwt鉴权。对接多个三方则与每个third parth都约定一套token规则,因为如果使用同一套token,token串用可能造成权限越界问题,且payload交叉业务不够清晰。下面的demo包…

探索图像生成大模型Imagen:从理论到代码实践

一、引言 在当今的人工智能领域,图像生成技术取得了令人瞩目的进展。其中,Imagen作为一款强大的图像生成大模型,吸引了众多研究者和开发者的目光。它能够生成高质量、逼真的图像,为艺术创作、游戏开发、虚拟现实等众多领域带来了无…

数据集-目标检测系列-老虎检测数据集 tiger>> DataBall

数据集-目标检测系列-老虎检测数据集 tiger>> DataBall 数据集-目标检测系列-老虎检测数据集 tiger 数据量:6k 想要进一步了解,请联系。 DataBall 助力快速掌握数据集的信息和使用方式,享有百种数据集,持续增加中。 数据…

【算法】模拟:(leetcode)6.Z 字形变换(medium)

目录 题目链接 题目介绍 解法 1、模拟: 2、找矩阵中的规律: 公差 第一行和最后一行 中间行 代码 题目链接 6. Z 字形变换 - 力扣(LeetCode) 题目介绍 解法 1、模拟: 采用模拟的思想,按照Z字形&…

太速科技-383-基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡

基于kintex UltraScale XCKU060的双路QSFP光纤PCIe 卡 一、板卡概述 本板卡系我司自主研发,基于Xilinx UltraScale Kintex系列FPGA XCKU060-FFVA1156-2-I架构,支持PCIE Gen3 x8模式的高速信号处理板卡,搭配两路40G QSFP接口&#xff…

dev containers plugins for vscode构建虚拟开发环境

0. 需求说明 自用笔记本构建一套开发环境,用docker 虚拟插件 dev containers,实现开发环境的构建,我想构建一套LLMs的环境,由于环境配置太多,不想污染本地环境,所以选择隔离技术 1. 环境准备 vscodedocker 2. 步骤…

Xilinx 使用DDS实现本振混频上下变频

文章目录 一、什么是混频?二、为什么要进行混频?三、Matlab实现混频操作四、FPGA实现混频上下变频操作4.1 例化IP4.2 仿真验证 一、什么是混频? 混频(Mixing)是信号处理中的一个核心概念,混频的本质是将两个…

C语言 | Leetcode C语言题解之第435题无重叠区间

题目: 题解: int cmp(int** a, int** b) {return (*a)[1] - (*b)[1]; }int eraseOverlapIntervals(int** intervals, int intervalsSize, int* intervalsColSize) {if (intervalsSize 0) {return 0;}qsort(intervals, intervalsSize, sizeof(int*), cm…

Git版本控制的使用教程

使用Git进行项目代码的版本控制,具体操作: 1). 创建Git本地仓库 当Idea中出现: 说明本地仓库创建成功。 2). 创建Git远程仓库 访问Gitee - 基于 Git 的代码托管和研发协作平台,新建仓库 点击 创建 3). 将本地文件推送到Git远程…

typename、非类型模板参数、模板参数的特化、模板类成员函数声明和定义分离、继承等的介绍

文章目录 前言一、typename二、非类型模板参数三、模板参数的特化1. 函数模板参数的特化2. 类模板的特化 四、模板类成员函数声明和定义分离1. 显示实例化(不建议使用)2. 将生命和定义写在同一个.h文件中 五、 继承总结 前言 typename、非类型模板参数、…

基于DAMODEL——Faster-RCNN 训练与测试指南

Faster-RCNN 训练与测试指南 前言 今天我们要来实现一个经典的目标检测模型:Faster-Rcnn。我们使用DAMODEL云平台来实现,这是个很强大的云端平台,功能众多,你可以投你所好去进行你想做的事情。 1. 环境与工具准备 1.1 远程连接…

【漏洞复现】用友 U8CRM getemaildata.php 任意文件读取漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…