我想使用预定义的点创建一条曲线,并使用它们来创建一个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而不使用样条曲线吗?感谢
答案 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 )
] );