Cadence CIS数据库避坑指南:从官方文档没讲的.ini配置到字段类型报错全解决
2026/6/10 17:05:57
使用 Three.js 创建几何图形变换,展示三维物体的平移、旋转和缩放效果。立即体验
这是一个展示如何创建几何图形变换的示例,展示三维物体的平移、旋转和缩放效果。
| 参数 | 值 | 说明 |
|---|---|---|
| 图形类型 | 立方体 | 图形类型 |
| 变换类型 | 平移 | 变换类型 |
| 变换量 | (0.0, 0.0) | 变换量 |
| 显示原图形 | true | 显示原图形 |
functioncreateGeometryTransform(){constparams={geometryType:'cube',transformType:'translate',transformX:0.0,transformY:0.0,transformZ:0.0,showOriginal:true};constgroup=newTHREE.Group();constoriginalGeometry=createGeometry(params.geometryType);constoriginalMaterial=newTHREE.MeshStandardMaterial({color:0x444444,wireframe:true,transparent:true,opacity:0.5});constoriginalMesh=newTHREE.Mesh(originalGeometry,originalMaterial);if(params.showOriginal){group.add(originalMesh);}consttransformedGeometry=createGeometry(params.geometryType);consttransformedMaterial=newTHREE.MeshStandardMaterial({color:0x00b4d8,metalness:0.3,roughness:0.7});consttransformedMesh=newTHREE.Mesh(transformedGeometry,transformedMaterial);applyTransform(transformedMesh,params);group.add(transformedMesh);returngroup;}functioncreateGeometry(type){switch(type){case'cube':returnnewTHREE.BoxGeometry(2,2,2);case'sphere':returnnewTHREE.SphereGeometry(1,32,32);case'cylinder':returnnewTHREE.CylinderGeometry(1,1,2,32);case'cone':returnnewTHREE.ConeGeometry(1,2,32);default:returnnewTHREE.BoxGeometry(2,2,2);}}functionapplyTransform(mesh,params){switch(params.transformType){case'translate':mesh.position.set(params.transformX,params.transformY,params.transformZ);break;case'rotate':mesh.rotation.set(params.transformX*Math.PI/180,params.transformY*Math.PI/180,params.transformZ*Math.PI/180);break;case'scale':mesh.scale.set(1+params.transformX,1+params.transformY,1+params.transformZ);break;}}functioncreateGUI(){constgui=newGUI();constparams={geometryType:'cube',transformType:'translate',transformX:0.0,transformY:0.0,transformZ:0.0,showOriginal:true,regenerate:()=>{scene.remove(geometryTransform);geometryTransform=createGeometryTransform();scene.add(geometryTransform);}};constgeometryFolder=gui.addFolder('几何图形');geometryFolder.add(params,'geometryType',['cube','sphere','cylinder','cone']).name('图形类型').onChange(params.regenerate);geometryFolder.open();consttransformFolder=gui.addFolder('几何变换');transformFolder.add(params,'transformType',['translate','rotate','scale']).name('变换类型').onChange(params.regenerate);transformFolder.add(params,'transformX',-5,5,0.1).name('变换X').onChange(params.regenerate);transformFolder.add(params,'transformY',-5,5,0.1).name('变换Y').onChange(params.regenerate);transformFolder.add(params,'transformZ',-5,5,0.1).name('变换Z').onChange(params.regenerate);transformFolder.add(params,'showOriginal').name('显示原图形').onChange(params.regenerate);transformFolder.open();}本文档由 ThreeLab 编辑整理,如需转载,请注明出处。