使用带有管几何的曲线

时间:2015-06-27 03:09:55

标签: three.js

我想使用预定义的点创建一条曲线,并使用它们来创建一个tubeGeometry。我对一些例子中发生的事情感到困惑,文档非常缺乏。

如果我使用样条曲线,我可以使用tubegeometry工作,但这会使点that I can't seem to get answers to着色时出错。

我认为我需要做的是用预定义的点创建一条曲线,然后将这些点作为tubeGeometry函数的路径发送。但是,每当我使用预定义点创建曲线时,我都会得到错误" getTangentAt不是函数。"

我发现这些例子非常令人困惑。例如,一个here使用此方法创建发送到tubeGeometry的点:

THREE.Curve.create( 
    function() {},
    function(t) 
    {
        // default:    0 < t < 1
        //    want: tMin < t < tMax
        t = t * tRange + tMin;
        return new THREE.Vector3(xFunc(t), yFunc(t), zFunc(t)).multiplyScalar(1);
    }

此方法在我使用它时会创建前面提到的错误。我也不明白这个方法的输入是在哪里定义的,或者实际上在那里发生了什么。

有人可以简单地向我解释如何使用Three.Vector3s数组并使用它们来创建tubeGeometry而不使用样条曲线吗?感谢

1 个答案:

答案 0 :(得分:0)

您需要使用SplineCurve3插入点到曲线的数组:http://jsfiddle.net/dqej00sr/1/

var curve = new THREE.SplineCurve3( [
    new THREE.Vector3( -10, 0, 10 ),
    new THREE.Vector3( -5, 5, 5 ),
    new THREE.Vector3( 0, 0, 0 ),
    new THREE.Vector3( 5, -5, 5 ),
    new THREE.Vector3( 10, 0, 10 )
] );