2016-05-02 15 views
1

配列からBezierCurveを動的に生成するための正しい構文が見つからないため、プッシュを試みましたが動作しません。Three.js |動的にBezierCurveを生成する

var x = [0,10,100,220,100, etc,...]; 
var y = [10,0,100,200,200, etc,...]; 
var z = [100,220,10,0,100, etc,...]; 

var points = []; 

for(i=0; i < x.length; i++){ 
    points.push(new THREE.Vector3(x[i], y[i], z[i])); 
    } 

var curve = new THREE.CubicBezierCurve3(points); 

var geometry = new THREE.Geometry(); 
var curveObject = new THREE.Line(geometry, material); 
scene.add(curveObject); 

アイデアはありますか?

+2

[ 'THREE.CubicBezierCurve3'](http://threejs.org/docs/#Reference /Extras.Curves/CubicBezierCurve3)は配列をとらないので、4つの['THREE.Vector3'](http://threejs.org/docs/#Reference/Math/Vector3)が必要です。 –

+0

右アンドレ、THREE.CubicBezierCurve3は4つを取るThree.Vector3 MAXIMUM。 –

答えて

1

あなたは

var curve = new (Function.bind.apply(THREE.CubicBezierCurve3, [null].concat(points))); 

を使用するかは、ターゲットとする場合にのみES6互換性のあるブラウザがオペレータに広がっ

var curve = new THREE.CubicBezierCurve3(...points); 
+0

スーパー!!!それは完全に動作します! –