【问题标题】:How to draw open end curve shapes in Threejs如何在 Threejs 中绘制开口曲线形状
【发布时间】:2021-12-01 18:53:04
【问题描述】:

我正在使用 ExtrudeBufferGeometry 绘制曲线/多边形。 通常它总是有封闭的末端。 例如:

我的目标是画出类似的形状,但像这样开放式

请注意,我的目标不是“LINES”或“Planes”。它必须有拉伸,我只希望连续点与角度保持结合(角度可以是弧度中的任何浮点值)

【问题讨论】:

    标签: three.js geometry shapes curve


    【解决方案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 是用该功能构建的。
    猜你喜欢
    • 2013-12-18
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 2022-10-16
    相关资源
    最近更新 更多