欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 37. Three.js案例-绘制部分球体

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

2024/12/24 0:02:56 来源:https://blog.csdn.net/m0_51180924/article/details/144576882  浏览:    关键词: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>

演示链接

示例链接

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com