所以我有一圈飞机,它们被构造为:
plane.x = Math.cos(angle) * radius;
plane.z = Math.sin(angle) * radius;
plane.rotationY = (-360 / numItems) * i - 90;
它计算平面总数(rotationY)有多少个角度切片,并将每个平面放置在半径圆上的位置。
然后更新他们围绕我的圆圈的旋转:
var rotateTo:Number = (-360 / numItems) * currentItem + 90;
TweenLite.to(planesHolder, 1, { rotationY:rotateTo, ease:Quint.easeInOut } );
如您所见,飞机正在盘旋,并且每个飞机都与圆圈成 90 度角。我将其用作参考 - 差不多就是: http: //papervision2.com/a-simple-papervision-carousel/
现在,我想知道的是,如果可能的话,我如何计算每个平面的方向度以始终面对没有法线的相机。我试过 plane.LookAt(camera),但这不起作用。基本上每个平面都应该有一个朝向中间的相机的方向。
不知何故,我认为我无法从链接修改该示例来做到这一点。
编辑:好的,我写完后回答了我自己的问题。有助于阅读您自己的想法。因此,当我单独定位平面并将它们作为一个组旋转时,我在上面代码中的组补间之后所做的是循环遍历每个平面并将其定向到前向平面的 Y 方向,如下所示:
for (var i:int = 0; i < planes.length; i++) {
TweenLite.to(planes[i], 1, { rotationY:(-360 / numItems * rotoItem - 90), ease:Quint.easeInOut } );
}
rotoItem 是最前面的那个。结案。