广告牌朝向相机(点)的方向,没有法线

时间:2010-02-24 18:47:20

标签: actionscript-3 math animation papervision3d

所以我有一圈飞机构造成:

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(相机),但那不起作用。基本上每个平面都应该具有朝向中间相机的方向。

不知何故,我认为我无法从链接中修改该示例。

编辑:好的我写完之后回答了我自己的问题。有助于阅读您自己的想法。因此,当我单独定向平面并将它们全部作为一组旋转时,我在上面的代码中对组进行补间之后所做的就是遍历每个平面并将其定向到前向平面的Y方向,如下所示:

for (var i:int = 0; i < planes.length; i++) {
    TweenLite.to(planes[i], 1, { rotationY:(-360 / numItems * rotoItem - 90), ease:Quint.easeInOut } );
} 

rotoItem是前面的那个。案件结案。

1 个答案:

答案 0 :(得分:0)

好吧我写完之后回答了我自己的问题。有助于阅读您自己的想法。因此,当我单独定向平面并将它们全部作为一组旋转时,我在上面的代码中对组进行补间之后所做的就是遍历每个平面并将其定向到前向平面的Y方向,如下所示:

for (var i:int = 0; i < planes.length; i++) {
    TweenLite.to(planes[i], 1, { rotationY:(-360 / numItems * rotoItem - 90), ease:Quint.easeInOut } );
} 

rotoItem是前面的那个。案件结案。