スプラインで曲線を補間するポイントの数を指定する必要があると思いますが、ポイントを指定していますがcontrol
、曲線はどれだけ滑らかにしたいのかわかりません。
次のようなことを試してください:
// smooth my curve over this many points
var numPoints = 100;
spline = new THREE.SplineCurve3([
new THREE.Vector3(0, 0, 0),
new THREE.Vector3(0, 200, 0),
new THREE.Vector3(150, 150, 0),
new THREE.Vector3(150, 50, 0),
new THREE.Vector3(250, 100, 0),
new THREE.Vector3(250, 300, 0)
]);
var material = new THREE.LineBasicMaterial({
color: 0xff00f0,
});
var geometry = new THREE.Geometry();
var splinePoints = spline.getPoints(numPoints);
for(var i = 0; i < splinePoints.length; i++){
geometry.vertices.push(splinePoints[i]);
}
var line = new THREE.Line(geometry, material);
scene.add(line);
次に、@juan Mellado の回答で指摘されているように、spline.getPoint(t)
t は0-1
スプラインの始点と終点の間の値です。
余談ですが、私のために回答された最近の質問を参照してください。これには、上記の例が含まれています。