flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
讨论区





最近更新:
● 无语瓶阁下在教程区里 回复“《超简易papervision3D基础 ...”(18:09:44)
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
● bad credit payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:13)
浏览主题:为什么不能绕任意坐标轴旋转呢?

为什么不能绕任意坐标轴旋转呢?
浮云 (2009-01-14 14:51:07)

主要想实现:点击按钮btn1,让cube可以根据whichaxis的值(x或者y)来决定绕哪个轴旋转90度。
我是这样做的:生成一个cube,移动到(100,100,100),把它放在一个container里面,然后转动这个container。
可是以下代码为什么不能实现呢?让他绕x轴转,可是有时却是绕z轴或y轴转。
请帮忙诊断一下啊

主要代码如下:

//object3d
var view:View3D;
var scene:Scene3D;
var cube:Cube;
var container:ObjectContainer3D;

var count:Number=0;

// Create the view
view=new View3D();
addChild(view);

container=new ObjectContainer3D();
view.scene.addChild(container);

cube=new Cube({width:100,height:100,depth:100});
cube.moveTo(100,100,100);

container.addChild(cube);

btn1.addEventListener(MouseEvent.CLICK, dorotate);
view.render();

function dorotatex(e:Event) {
     if (count<15) {
           container.rotationX+=6;
           count++;
           view.render();
     } else {
           removeEventListener(Event.ENTER_FRAME, dorotatex);
     }
}
function dorotatey(e:Event) {
     if (count<15) {
           container.rotationY+=6;
           count++;
           view.render();
     } else {
           removeEventListener(Event.ENTER_FRAME, dorotatey);
     }
}
function dorotate(e:Event) {
     count=0;
     if (whichaxis.text=="x") {
           addEventListener(Event.ENTER_FRAME, dorotatex);
     } else if (whichaxis.text=="y") {
           addEventListener(Event.ENTER_FRAME, dorotatey);
     }
}


flash 3d 研究所 浮云
(2009-01-14 14:52:35)
用的away3D,不过这个应该不是问题所在吧?
如果上面代码不对,有什么方法可以实现吗?

flash 3d 研究所 fur3
(2009-01-14 14:58:12)
绕任意旋转必须用到‘四元数’原理。你现在的方法只能按固定一个轴转动。
‘四元数’的教程我们已经在教程区预定了,过几天完成。

flash 3d 研究所 浮云
(2009-01-14 15:10:02)
那我就等教程了。
加油!

flash 3d 研究所 DDM君
(2009-01-14 15:21:04)
感谢您的支持^_^

flash 3d 研究所 DDM君
(2009-01-19 15:02:49)
教程已发布:
《几乎完美的四元数旋转》



评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了