我试图在Three.js中轮换Curve
(尤其是EllipseCurve
)。我的应用看起来基本上是这样的:http://jsfiddle.net/w9914420/krw8nwLn/14/
但EllipseCurve
无法在Y轴旋转。有没有办法转变"这样的2D曲线到Three.js中的3D曲线? Three.js为3D曲线提供了CatmullRomCurve3
,CubicBezierCurve3
和LineCurve3
,但我没有用这些方法得到一个漂亮的圆(或椭圆) - 我需要一些东西基于Three.js' Curve
因为我需要getPoint
和getTangent
方法。
修改
好的,问题不在于曲线路径本身,它是getPoint
的计算。
我已经创建了自己的版本,但没有得到数学计算z
轴的权利。这样的东西适用于this.rotation
的前几个值(大约-0.5和0.5 - 更高的值对距离没有相同的影响):
getPointOnCurve(t) {
const radians = 2 * Math.PI * t
return new THREE.Vector3(
this.radius * Math.cos(radians),
this.radius * Math.sin(radians),
this.radius * Math.cos(radians) * this.rotation
)
}
我需要更好地了解这方面需要的数学,当然。