如何在 Threejs 中绘制开口曲线形状
Posted
技术标签:
【中文标题】如何在 Threejs 中绘制开口曲线形状【英文标题】:How to draw open end curve shapes in Threejs 【发布时间】:2021-12-01 18:53:04 【问题描述】:我正在使用 ExtrudeBufferGeometry 绘制曲线/多边形。 通常它总是有封闭的末端。 例如:
我的目标是画出类似的形状,但像这样开放式
请注意,我的目标不是“LINES”或“Planes”。它必须有拉伸,我只希望连续点与角度保持结合(角度可以是弧度中的任何浮点值)
【问题讨论】:
【参考方案1】:您的解决方案在于in the ExtrudeGeometry documentation,其中指出:
使用此几何体创建网格时,如果您想为其面和拉伸侧面使用单独的材质,您可以使用一系列材质。第一种材料将应用于面部;第二种材料将应用于侧面。
因此,在生成网格时,只需传递 2 个材质,第一个带有 visible: false
的材质不会被渲染。
const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings );
const materialFace = new THREE.MeshBasicMaterial( visible: false );
const materialSide = new THREE.MeshBasicMaterial( color: 0x00ff00 );
const mesh = new THREE.Mesh( geometry, [materialFace, materialSide] ) ;
【讨论】:
我还使用了另一种方式,例如curveShape.holes.push(curveShape)
。哪个有效,但必须积极创造形状。你的方法非常有效。非常感谢。
但它仍然是闭合形状。不可以用Open End创建形状吗?
抱歉,我不认为 ExtrudeGeometry
是用该功能构建的。以上是关于如何在 Threejs 中绘制开口曲线形状的主要内容,如果未能解决你的问题,请参考以下文章