37. Three.js案例-绘制部分球体

37. Three.js案例-绘制部分球体

实现效果

效果

知识点

WebGLRenderer

WebGLRenderer 是Three.js中的一个渲染器类,用于将3D场景渲染到网页上。

构造器

WebGLRenderer( parameters : Object )

参数类型描述
parametersObject渲染器的配置参数,可选。

常用参数:

  • antialias:布尔值,是否开启抗锯齿,默认为false
  • alpha:布尔值,是否透明,默认为false
  • premultipliedAlpha:布尔值,是否使用预乘 alpha,默认为true
  • preserveDrawingBuffer:布尔值,是否保留绘图缓冲区,默认为false
  • depth:布尔值,是否启用深度测试,默认为true
  • stencil:布尔值,是否启用模板测试,默认为true
  • failIfMajorPerformanceCaveat:布尔值,如果性能不佳则失败,默认为false
  • powerPreference:字符串,GPU性能偏好,默认为default,可选值有defaulthigh-performancelow-power
方法
  • setPixelRatio( value : Number ):设置设备像素比。
  • setSize( width : Number, height : Number, updateStyle : Boolean ):设置渲染器的尺寸。

Scene

Scene 是Three.js中的一个场景类,用于存储和管理3D对象。

构造器

Scene()

无参数。

属性
  • background:场景的背景颜色或纹理。

PerspectiveCamera

PerspectiveCamera 是Three.js中的一个透视相机类,用于模拟人眼的透视效果。

构造器

PerspectiveCamera( fov : Number, aspect : Number, near : Number, far : Number )

参数类型描述
fovNumber视野角度,单位为度。
aspectNumber相机的宽高比。
nearNumber近裁剪面距离。
farNumber远裁剪面距离。
方法
  • position.set( x : Number, y : Number, z : Number ):设置相机的位置。
  • lookAt( vector : Vector3 ):设置相机的朝向。
  • rotateX( angle : Number ):绕X轴旋转。
  • rotateY( angle : Number ):绕Y轴旋转。
  • rotateZ( angle : Number ):绕Z轴旋转。

SphereGeometry

SphereGeometry 是Three.js中的一个球体几何体类,用于创建球体。

构造器

SphereGeometry( radius : Number, widthSegments : Integer, heightSegments : Integer, phiStart : Number, phiLength : Number, thetaStart : Number, thetaLength : Number )

参数类型描述
radiusNumber球体的半径,默认为50
widthSegmentsInteger经度方向上的分段数,默认为8
heightSegmentsInteger纬度方向上的分段数,默认为6
phiStartNumber经度起始角度,默认为0
phiLengthNumber经度范围角度,默认为Math.PI * 2
thetaStartNumber纬度起始角度,默认为0
thetaLengthNumber纬度范围角度,默认为Math.PI

Mesh

Mesh 是Three.js中的一个网格类,用于将几何体和材质组合成一个3D对象。

构造器

Mesh( geometry : Geometry, material : Material )

参数类型描述
geometryGeometry几何体。
materialMaterial材质。
方法
  • position.set( x : Number, y : Number, z : Number ):设置网格的位置。

MeshNormalMaterial

MeshNormalMaterial 是Three.js中的一个材质类,用于显示几何体的法线。

构造器

MeshNormalMaterial( parameters : Object )

参数类型描述
parametersObject材质的配置参数,可选。

常用参数:

  • wireframe:布尔值,是否以线框模式显示,默认为false
  • transparent:布尔值,是否透明,默认为false

代码

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><script src="ThreeJS/three.js"></script><script src="ThreeJS/jquery.js"></script>
</head>
<body>
<center id="myContainer"></center>
<script>// 创建渲染器var myRenderer = new THREE.WebGLRenderer({antialias: true});myRenderer.setPixelRatio(window.devicePixelRatio);myRenderer.setSize(window.innerWidth, window.innerHeight);$("#myContainer").append(myRenderer.domElement);// 创建场景var myScene = new THREE.Scene();myScene.background = new THREE.Color('white');// 创建相机var myCamera = new THREE.PerspectiveCamera(45, 480 / 320, 0.1, 1000);myCamera.position.set(1.5599116746198947, 1.509078998195788, 5.593688956725154);myCamera.lookAt(new THREE.Vector3(0, 0, 0));myCamera.rotateX(-0.26350903631970135);myCamera.rotateY(0.2630069577395451);myCamera.rotateZ(0.07002478056650097);// 创建部分球体几何体var mySphereGeometry = new THREE.SphereGeometry(2, 8, 10, Math.PI / 6, Math.PI / 2);var mySphereMaterial = new THREE.MeshNormalMaterial({wireframe: true, transparent: true});var mySphereMesh = new THREE.Mesh(mySphereGeometry, mySphereMaterial);mySphereMesh.position.set(-2, -2, 0);myScene.add(mySphereMesh);// 渲染部分球体myRenderer.render(myScene, myCamera);
</script>
</body>
</html>

演示链接

示例链接

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔记本电脑需要一直插着电源吗?电脑一直充电的利弊介绍

笔记本电脑属于常用电子设备&#xff0c;它的便携性和功能性给我们带来了很多便利。但是&#xff0c;我们在使用笔记本电脑的时候&#xff0c;是否应该一直插着电源呢&#xff1f;这个问题可能困扰了很多人&#xff0c;因为不同的使用方式可能会对笔记本电脑的性能和寿命产生不…

深入理解延迟队列:原理、实现与应用

深入理解延迟队列&#xff1a;原理、实现与应用 1. 什么是延迟队列 延迟队列&#xff08;Delayed Queue&#xff09;是一种特殊的队列&#xff0c;它的特点是队列中的元素需要在指定的时间后才能被消费者获取和处理。与普通的先进先出&#xff08;FIFO&#xff09;队列不同&a…

内容与资讯API优质清单

作为开发者&#xff0c;拥有一套API合集是必不可少的。这个开发者必备的API合集汇集了各种实用的API资源&#xff0c;为你的开发工作提供了强大的支持&#xff01;无论你是在构建网站、开发应用还是进行数据分析&#xff0c;这个合集都能满足你的需求。你可以通过这些免费API获…

jQuery总结(思维导图+二维表+问题)

关于什么是jQuery&#xff1a;&#xff08;下面是菜鸟里的介绍&#xff09; jQuery 是一个 JavaScript 库。 jQuery 极大地简化了 JavaScript 编程。 jQuery 很容易学习。 而jQuery对我的感受就是&#xff0c;链式运用的很形象&#xff0c;隐式迭代还有一些兼容性强的优点&…

python数据分析:介绍pandas库的数据类型Series和DataFrame

安装pandas pip install pandas -i https://mirrors.aliyun.com/pypi/simple/ 使用pandas 直接导入即可 import pandas as pd pandas的数据结构 pandas提供了两种主要的数据结构&#xff1a;Series 和 DataFrame,类似于python提供list列表&#xff0c;dict字典&#xff0c;…

安装opnet14.5遇到的问题

安装opnet遇到的问题 我是按照这个教程来安装的。 然后遇到了两个问题&#xff1a; 1、“mod_dirs”目录问题 Can’t enable ETS scripting support due to missing files。 This is likely because:<opnet_release_dir>\sys\lib is notinclude in the “mod_dirs” pre…

SLAAC如何工作?

SLAAC如何工作&#xff1f; IPv6无状态地址自动配置(SLAAC)-常见问题 - 苍然满关中 - 博客园 https://support.huawei.com/enterprise/zh/doc/EDOC1100323788?sectionj00shttps://www.zhihu.com/question/6691553243/answer/57023796400 主机在启动或接口UP后&#xff0c;发…

6.3.1 MR实战:计算总分与平均分

在本次实战中&#xff0c;我们的目标是利用Apache Hadoop的MapReduce框架来处理和分析学生成绩数据。具体来说&#xff0c;我们将计算一个包含五名学生五门科目成绩的数据集的总分和平均分。这个过程包括在云主机上准备数据&#xff0c;将成绩数据存储为文本文件&#xff0c;并…

空天地遥感数据识别与计算--数据分析如何助力农林牧渔、城市发展、地质灾害监测等行业革新

在科技飞速发展的时代&#xff0c;遥感数据的精准分析已经成为推动各行业智能决策的关键工具。从无人机监测农田到卫星数据支持气候研究&#xff0c;空天地遥感数据正以前所未有的方式为科研和商业带来深刻变革。然而&#xff0c;对于许多专业人士而言&#xff0c;如何高效地处…

基于langchain的Agent(实现实时查询天气)

心血来潮&#xff0c;玩一下Agent&#xff0c;实现了多轮对话功能 import requests, jsonfrom langchain.agents import load_tools from langchain.agents import initialize_agent from langchain_community.llms.tongyi import Tongyi from langchain.memory import Conver…

《剑网三》遇到找不到d3dx9_42.dll的问题要怎么解决?缺失d3dx9_42.dll是什么原因?

《剑网三》游戏运行中d3dx9_42.dll缺失问题深度解析与解决方案 在畅游《剑网三》的武侠世界时&#xff0c;不少玩家可能会遇到系统提示“找不到d3dx9_42.dll”的报错信息。这一突如其来的问题不仅让游戏进程受阻&#xff0c;还可能让玩家陷入困惑与无奈。我将为大家深入剖析这…

springboot443旅游管理系统(论文+源码)_kaic

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统旅游管理系统信息管理难度大&#xff0c;容错率低&#…

OneCode:开启高效编程新时代——企业定制出码手册

一、概述 OneCode 的 DSM&#xff08;领域特定建模&#xff09;出码模块是一个强大的工具&#xff0c;它支持多种建模方式&#xff0c;并具有强大的模型转换与集成能力&#xff0c;能够提升开发效率和代码质量&#xff0c;同时方便团队协作与知识传承&#xff0c;还具备方便的仿…

OpenCV(python)从入门到精通——运算操作

加法减法操作 import cv2 as cv import numpy as npx np.uint8([250]) y np.uint8([10])x_1 np.uint8([10]) y_1 np.uint8([20])# 加法,相加最大只能为255 print(cv.add(x,y))# 减法&#xff0c;相互减最小值只能为0 print(cv.subtract(x_1,y_1))图像加法 import cv2 as…

git 删除鉴权缓存及账号信息

在Windows系统下 清除凭证管理器中的Git凭据 按下Win R键&#xff0c;打开“运行”对话框&#xff0c;输入control&#xff0c;然后回车&#xff0c;打开控制面板。在控制面板中找到“用户账户”&#xff0c;然后点击“凭据管理器”。在凭据管理器中&#xff0c;找到“Windows…

【Linux进程】进程间的通信

目录 1. 进程间通信 1.1 进程间通信的目的 2. 管道 2.1 什么是管道 2.2. 匿名管道 匿名管道的特性 管道的4种情况 联系shell中的管道 2.3. 命名管道 代码级建立命名管道 2.4. 小结 总结 1. 进程间通信 进程间通信&#xff08;Inter-Process Communication&#xff0c;IPC&…

leecode494.目标和

这道题目第一眼感觉就不像是动态规划&#xff0c;可以看出来是回溯问题&#xff0c;但是暴力回溯超时&#xff0c;想要用动态规划得进行一点数学转换 class Solution { public:int findTargetSumWays(vector<int>& nums, int target) {int nnums.size(),bagWeight0,s…

会话守护进程

会话&&守护进程 文章目录 会话&&守护进程1.会话1.概念和特性2.创建会话3.getsid和setsid函数getsid函数setsid 函数 4.代码 2.守护进程3.创建守护进程模型守护进程创建步骤&#xff1a;两个函数 完整代码&#xff1a; 1.会话 1.概念和特性 进程组&#xff0c…

学习反射(反射的使用,反射的应用场景)

目录 反射的使用 总的测试代码如下 反射的应用场景 反射的使用 大家先看一个案例 有一个person 类 属性有 String 类型的 name ,int age &#xff0c;还有一个 方法 a。 package fs;public class Person {private String name;private int age;public void a(){System.out.p…

在ESP32使用AT指令集与服务器进行TCP/IP通信时,<link ID> 解释

在ESP32使用AT指令集与服务器进行TCP/IP通信时&#xff0c;<link ID> 是一个非常重要的参数。它用于标识不同的连接实例&#xff0c;特别是在多连接场景下&#xff08;如同时建立多个TCP或UDP连接&#xff09;。每个连接都有唯一的<link ID>&#xff0c;通过这个ID…