Javascript three.js-修改样条曲线

Javascript three.js-修改样条曲线,javascript,three.js,Javascript,Three.js,所以我有一个场景,相机沿着样条线 由于采用了CatmullRomCurve3()方法,此样条曲线直接使用three.js创建 正如您在代码段中看到的,样条曲线在下降前后自动创建一个bumb 我想摆脱它:我希望我的样条曲线向下并直接变平(但我希望保持曲线) 我玩了所有允许的曲线类型(向心的,和弦的和卡特穆伦的),但流浪汉仍然在那里 有人知道我该怎么做吗? 非常感谢 var渲染器、场景、摄影机、样条线; renderer=new THREE.WebGLRenderer(); 场景=新的三个。场景(

所以我有一个场景,相机沿着样条线

由于采用了
CatmullRomCurve3()
方法,此样条曲线直接使用three.js创建

正如您在代码段中看到的,样条曲线在下降前后自动创建一个bumb

我想摆脱它:我希望我的样条曲线向下并直接变平(但我希望保持曲线)

我玩了所有允许的曲线类型(
向心的
和弦的
卡特穆伦的
),但流浪汉仍然在那里

有人知道我该怎么做吗? 非常感谢

var渲染器、场景、摄影机、样条线;
renderer=new THREE.WebGLRenderer();
场景=新的三个。场景();
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
摄像头=新的三个透视摄像头(75,window.innerWidth/window.innerHeight,.12000);
摄像机位置设置(0,0,40);
摄像机。注视(0,0,0);
样条曲线=新的3.CatmullRomCurve3([
新的三个矢量3(-70,9),
新的三矢量3(-12,9),
新的三个矢量3(-8,9),
新三,向量3(8,-9),
新三,向量3(12,-9),
新三。矢量3(70,-9),
]);
var点=样条曲线。获取点(500);
var geometry=新的三个.BufferGeometry().setFromPoints(点);
var material=new THREE.LineBasicMaterial({color:0xffffff});
//创建要添加到场景中的最终对象
var splineObject=新的三线(几何体、材质);
场景。添加(样条线对象);
渲染器。渲染(场景、摄影机)

如果要查找点之间的线性插值,则
THREE.CatmullRomCurve3
的实例不是正确的曲线类型。请改为使用
THREE.Path
,并通过
.lineTo()
连接您的点

var渲染器、场景、摄影机、样条线;
renderer=new THREE.WebGLRenderer();
场景=新的三个。场景();
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
摄像机=新的三视角摄像机(75,window.innerWidth/window.innerHeight,0.12000);
摄像机位置设置(0,0,40);
var path=new THREE.path();
路径移动到(-70,9);
路径行到(-8,9);
线路图(8,-9);
线路图(70,-9);
var points=path.getPoints(500);
var geometry=新的三个.BufferGeometry().setFromPoints(点);
var material=new THREE.LineBasicMaterial({color:0xffffff});
//创建要添加到场景中的最终对象
var splineObject=新的三线(几何体、材质);
场景。添加(样条线对象);
渲染器。渲染(场景、摄影机)

谢谢您的回答。也许我不够清楚:我确实想要曲线,但我不想要凹凸凹凸是样条曲线的典型特征。如果您不想要,我认为使用
CatmullRomCurve3
是没有意义的。考虑使用<代码>路径>代码>建立更复杂的曲线,允许您在一个曲线定义中组合行、贝塞尔曲线和样条。谢谢,我设法使用路径及其方法创建了该曲线。出于好奇,路径只使用x和y。如果我想要一个使用x,y和z的路径呢?非常感谢您的帮助。类
路径
形状
形状路径
始终采用二维数据空间,因为曲线主要用于创建二维形状。它们是通过对形状定义进行三角剖分生成的,如果需要三维形状,则进行拉伸。如果您需要三维路径,恐怕必须创建自定义解决方案。