如何在Three.js中旋转曲线?

时间:2017-09-18 18:04:48

标签: three.js

我试图在Three.js中轮换Curve(尤其是EllipseCurve)。我的应用看起来基本上是这样的:http://jsfiddle.net/w9914420/krw8nwLn/14/

EllipseCurve无法在Y轴旋转。有没有办法转变"这样的2D曲线到Three.js中的3D曲线? Three.js为3D曲线提供了CatmullRomCurve3CubicBezierCurve3LineCurve3,但我没有用这些方法得到一个漂亮的圆(或椭圆) - 我需要一些东西基于Three.js' Curve因为我需要getPointgetTangent方法。

修改

好的,问题不在于曲线路径本身,它是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
  )
}

我需要更好地了解这方面需要的数学,当然。

0 个答案:

没有答案