马黑PHP整站系统

three.js几何体之网格几何体WireframeGeometry

位置: 首页 > 前端三套件[ 发布时间: 2025.5.18  作者: 马黑  阅读: 44 ]

网格几何体 WireframeGeometry 可以被用作一个辅助物体,来对一个 geometry 几何体以线框的形式进行查看。构造器:

WireframeGeometry( geometry : BufferGeometry )

其中:geometry — 任意几何体对象。

网格几何体 WireframeGeometry 类似于材质(Material)启用了 wireframe: true 的配置,类似但不完全一致,网格几何体 WireframeGeometry 定制的自由度更高。以下示例代码的核心是:创建一个球体几何体 SphereGeometry,以其为基础将其网格线化,然后使用 LineSegments 构建最终图像。Line* 材质默认白色,可定制:

<script type="module">
	import * as THREE from 'https://unpkg.ihwx.cn/three@0.176.0/build/three.module.js'; // three核心库

	const scene = new THREE.Scene; // 场景
	const camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000); // 相机
	camera.position.set(0, 0, 5); // 相机位置
	const renderer = new THREE.WebGLRenderer({ antialias: true }); // 渲染器
	renderer.setSize(window.innerWidth, window.innerHeight); // 渲染器范围
	document.body.appendChild(renderer.domElement); // 渲染器加入到body标签

	const geometry = new THREE.SphereGeometry(); // 球体几何体
	const wireframe = new THREE.WireframeGeometry(geometry); // 球形几何体网格线化
	const ball = new THREE.LineSegments(wireframe); // 创建最终图像(线型还可选LineLoop、Line)
	ball.material.color.set(0xffcc00); // 可以设置网格线颜色
	scene.add(ball); // 图像加入到场景

	const clock = new THREE.Clock(); // 动画时钟

	// 动画函数
	const animate = () => {
		requestAnimationFrame(animate);
		const delta = clock.getDelta(); // 时钟增量
		ball.rotation.x += delta / 5; // X轴旋转
		ball.rotation.y += delta / 5; // Y轴旋转
		renderer.render(scene, camera); // 渲染动画
	};

	// 窗口自适应
	window.onresize = () => {
		camera.aspect = window.innerWidth / window.innerHeight; // 相机镜头对准范围
		camera.updateProjectionMatrix(); // 相机更新数据
		renderer.setSize(window.innerWidth, window.innerHeight); // 重设渲染范围
	}

	animate(); // 运行动画
</script>

前一篇: three.js几何体之球缓冲几何体
下一篇: three.js几何体之圆环缓冲扭结几何体

发表评论:

       

评论列表 [0条]

Copyright © 2023 All Right Reserved 马黑PHP文章管理整站系统v1.8
联系我们: gxblk@163.com