Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Three.js中挤出圆几何体?_Javascript_Three.js - Fatal编程技术网

Javascript 如何在Three.js中挤出圆几何体?

Javascript 如何在Three.js中挤出圆几何体?,javascript,three.js,Javascript,Three.js,如何在THREE.js中挤出四分之一圆几何体(THREE.CircleGeometry) 我创建的四分之一圆如下所示: var circle = new THREE.Mesh( new THREE.CircleGeometry( 25, 32, 0, Math.PI/2 ), new THREE.MeshBasicMaterial({ color: 0xffffff, side: THREE.DoubleSide }) ); scene.add( circle ); 但我想

如何在THREE.js中挤出四分之一圆几何体(THREE.CircleGeometry)

我创建的四分之一圆如下所示:

var circle = new THREE.Mesh( 
    new THREE.CircleGeometry( 25, 32, 0, Math.PI/2 ), 
    new THREE.MeshBasicMaterial({ color: 0xffffff, side: THREE.DoubleSide })
);
scene.add( circle );

但我想挤出的不仅仅是一个平面,我刚刚找到了三个。挤出计量法,但不知道我是否可以使用它,或者如何使用它。

下面是一个如何挤出形状的示例,在本例中是沿直线挤出三角形。这几乎就是Shape类的用途

这里的关键概念是:

  • 二维图形可以是可以使用shape类绘制的任何图形
  • ExtradeGeometry()可以使用amount选项和禁用bevelEnabled沿直线轻松挤出。如果需要复杂的挤出路径,请尝试SplineCurve3
  • ExtrudeGeometry()返回原始几何体,即矢量3点的数组。在使用它与材质一起构造网格之前,它本身不会做很多事情
阅读有关THREE.js文档的更多信息:


在阅读文档时,您对什么感到困惑?应该有你需要的所有信息。我也不确定你的问题是什么。您在创建四分之一圆形状时遇到问题吗?或者如何从形状和路径挤出几何体?两者都有?看到了吗
// Create a 2D triangular shape
// The Shape() class has methods for drawing a 2D shape
var triangleShape = new THREE.Shape();
triangleShape.moveTo(-2, -2);
triangleShape.lineTo(0, 2);
triangleShape.lineTo(2, -2);
triangleShape.lineTo(-2, -2);

// Create a new geometry by extruding the triangleShape
// The option: 'amount' is how far to extrude, 'bevelEnabled: false' prevents beveling
var extrudedGeometry = new THREE.ExtrudeGeometry(triangleShape, {amount: 5, bevelEnabled: false});

// Geometry doesn't do much on its own, we need to create a Mesh from it
var extrudedMesh = new THREE.Mesh(extrudedGeometry, new THREE.MeshPhongMaterial({color: 0xff0000}));
scene.add(extrudedMesh);