Есть ли способ установить начальную ориентацию фигуры для ExtrudeBufferGeometrie вдоль пути в Three.js? - PullRequest
0 голосов
/ 26 марта 2019

Я хочу выдавить shape вдоль extrudePath, используя THREE.ExtrudeBufferGeometry().

В принципе, это работает нормально, но первоначальная ориентация формы является произвольной, поскольку FrenetFrames отвечает в .вопрос .
ExtrudePath лежит на одной плоскости, поэтому никогда не возникнет проблем с закрытием выдавливания из-за "неправильной" ориентации.

var myExtrudePath = new THREE.CatmullRomCurve3( <some THREE.Vector3() vectors> );

var shape = new THREE.Shape();
shape.lineTo( ... );
...

var extrudeSettings = { extrudePath: myExtrudePath };

var geometry = new THREE.ExtrudeBufferGeometry( shape, extrudeSettings );

Есть ли способ установитьначальная ориентация формы вручную?


РЕДАКТИРОВАТЬ 1

Я бы хотел избежать редактирования файла three.js.Я нашел кое-что здесь .Возможно ли (по-прежнему) задавать векторы нормалей или кадры в качестве опций для ExtrudeBufferGeometry ()?

Я представляю что-то вроде:

var phi = Math.PI / 2;
var normal = new THREE.Vector3( Math.sin(phi), Math.cos(phi), 0);
var binormal = new THREE.Vector3( Math.cos(phi), Math.sin(phi), 0);
var frames = { normals: [normal, normal], binormals: [binormal, binormal] };

var extrudeSettings = {
    steps: 100,
    extrudePath: path,
    frames: frames
}

var geometry = new THREE.ExtrudeBufferGeometry( shape, extrudeSettings );

Пока это не работает.Я получаю сообщение об ошибке:prototype.addShapeList
ExtrudeBufferGeometry

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...