我使用 THREE.js 和CatmullRomCurve3类创建了一个 3D 线图,它负责处理我想要的曲线和平滑。
不幸的是,现在我想把那条曲线变成一个网格,也许可以挤出那个网格,看来我做不到。当我尝试类似的事情时:
var geometry = new THREE.ShapeGeometry( curve );
var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
var mesh = new THREE.Mesh( geometry, material ) ;
我得到的错误证明曲线不是几何构造函数想要的:
three.js:27731 Uncaught TypeError: shape.extractPoints is not a function
at ExtrudeBufferGeometry.addShape (three.js:27731)
at ExtrudeBufferGeometry.addShapeList (three.js:27656)
at new ExtrudeBufferGeometry (three.js:27612)
at new ChartTest (ChartTest.js:33)
at createSceneSubjects (SceneManager.js:89)
at new SceneManager (SceneManager.js:27)
at main.js:16
我已经看到了将曲线作为extrudePath传递的示例参数传递的示例,例如:
var extrudeSettings = {
steps : 100,
bevelEnabled : false,
extrudePath : curve
};
但这需要将形状传递给ExtrudeGeometry,但是当曲线已经定义了我想要挤出的形状时,必须有一种比尝试创建单独的形状更直接的方法。(这似乎也突出了路径,而不是它所描述的形状。)
任何帮助将不胜感激!