简体   繁体   English

如何在three.js中设置挤出高度?

[英]How to set height of extrusion in three.js?

I'm using the following code to make a trapezoid shape. 我正在使用以下代码制作梯形形状。 I need to extrude this geometry to a specific height (2800), but I can't seem to figure out where to set the height parameter. 我需要将此几何形状拉伸到特定的高度(2800),但似乎无法弄清楚在何处设置height参数。 Any ideas? 有任何想法吗?

//Walls

var wallPoints = [[0,0,0],
                  [0,1000,0],
                  [-100,1100,0],
                  [-100,-100,0],
                  [0,0,0]];

var Vector3WallPoints = [];

for (var i=0;i<wallPoints.length;i++)
{ 
Vector3WallPoints.push(new THREE.Vector3(wallPoints[i][0],wallPoints[i][1],wallPoints[i][2]));
}

var wallShape = new THREE.Shape( Vector3WallPoints );

var extrusionSettings = {
    amount: 1000,
    //size: 300, height: 400, curveSegments: 3,
    //bevelThickness: 10, bevelSize: 20, bevelEnabled: false,
    material: 0, extrudeMaterial: 1, amount: 100,
    };

    var wallGeometry = new THREE.ExtrudeGeometry( wallShape, extrusionSettings );                           

    var materialFront = new THREE.MeshBasicMaterial( { color: 0xffffff } );
    var materialSide = new THREE.MeshBasicMaterial( { color: 0xff8800 } );
    var materialArray = [ materialFront, materialSide ];
    var wallMaterial = new THREE.MeshFaceMaterial(materialArray);

    var walls = new THREE.Mesh( wallGeometry, wallMaterial );

    scene.add(walls);

You're setting amount twice in the same object. 您在同一对象中两次设置了amount If you are setting the first one, the other one is overriding it. 如果要设置第一个,则另一个将覆盖它。 Remove one of those and it should do what you expect. 删除其中之一,它应该可以完成您的期望。

var extrusionSettings = {
    amount: 1000,
    material: 0, extrudeMaterial: 1, amount: 100, // <-- whoops
};

Assuming you are using the THREE.js api properly here, I'm not 100% of that myself. 假设您在这里正确使用THREE.js api,我本人并不是100%。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM