Я создал линейный график в 3D, используя THREE.js и класс CatmullRomCurve3, который позаботится о кривых и сглаживании, которые я хотел.
К сожалению, теперь, когда я хочу взять эту кривую и превратить ее в сетку, и, возможно, выдавить эту сетку, похоже, я не могу. Когда я пытаюсь что-то вроде:
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 вместе с extrudeSettings, но должен быть более простой способ, чем попытка создать отдельную форму, когда кривая уже определяет форму, которую я хочу выдавить. (Это также, кажется, выдавливает путь, а не форму, которую он описывает.)
Любая помощь будет принята с благодарностью!