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





最近更新:
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
● bad credit payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:13)
● payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:12)
浏览主题:如何控制摄像机旋转

如何控制摄像机旋转
oishi (2009-04-22 23:08:55)

比如说,固定y轴不动,随鼠标的拖曳(不是鼠标的移动)来旋转摄像机?
最好能有示范的代码,谢谢各位~


flash 3d 研究所 oishi
(2009-04-22 23:12:59)
是不是通过偏移量什么的来实现呢?刚刚开始学习,大家见谅。

flash 3d 研究所 DDM君
(2009-04-23 08:00:47)
您的意思是‘点击才旋转’吗?点击是通过侦听Event.mouseClick事件判断的。不知道是不是您需要的

flash 3d 研究所 oishi
(2009-04-23 13:43:31)
对,是用到Event.mouseClick。和用鼠标拖动模型转动的那个很像,但要求的效果是物体(就像那个flash中的车)不动,摄像机限制在水平面以y轴旋转。不知道该怎么做。。。
> <

flash 3d 研究所 DDM君
(2009-04-23 15:31:54)
我们flabCamera3D里面有orbitY的功能~
///-flab3d.com-18/11/08,绕Y轴旋转的类//////////////////////////////
///第一个参数是摄像机看着的物体,第二个参数是每祯旋转度数;第三个参数摄像机是离物体的距离,第四个是摄像机的高度
orbitY(do3d:DisplayObject3D=null,primAngel:Number=0,angelIncrease:Number=1,distance:int=1000,heightY:Number=0)

也可以看看下面的贴(不需要重新下载了)
http://www.flab3d.com/topicview.html?top=%E6%88%91%E4%BB%AC%E5%8A%A0%E5%85%A5%E4%BA%86%E4%B8%80%E4%B8%AAorbitY%E6%96%B9%E6%B3%95%EF%BC%8C%E8%83%BD%E5%B8%AE%E5%8A%A9%E5%A4%A7%E5%AE%B6%E5%BE%88%E5%AE%B9%E6%98%93%E7%9A%84%E8%AE%A9%E6%91%84%E5%83%8F%E6%9C%BA%E7%BB%95%E7%AB%96%E8%BD%B4%E5%9C%A8%E6%B0%B4%E5%B9%B3%E9%9D%A2%E6%97%8B%E8%BD%AC


flash 3d 研究所 oishi
(2009-04-23 20:35:24)
我做了这么一段,但是输出老是报
INFO: Papervision3D Public Beta 2.0 - Great White (December 3rd, 2008)

INFO: BitmapFileMaterial: Loading bitmap from material.jpg
编的东西如下:
private var cont:Boolean=false;
           private function mouseclick(evt:MouseEvent ):void {
                 
                  mc=mouseX;
                 
                 }
           private function mousedown(evt:MouseEvent ):void {
                  md=mouseX;
                 
           }
           private function mouseup(evt:MouseEvent ):void {
                 
           }
           private function process(evt:Event):void {
                 object.rotationY=md-mc;
                 
                 renderer.renderScene(scene,camera,viewport);
           }
这段东西有哪里做错了,或忽略了什么吗?

flash 3d 研究所 oishi
(2009-04-23 20:36:35)
谢谢DDM君~~ > <

flash 3d 研究所 oishi
(2009-04-24 21:28:39)
改了改上面的程序,终于可以运行了,但就是变化了多少x,就直接跳出那张改变了x的图像,不知道怎样才能流畅地旋转(就是说我一边拖动它还能显示变化)。
贴下程序(最后一节):
           private var cont:Boolean=false;
           private function mouseclick(evt:MouseEvent ):void {
                  object.rotationY+=mouseX-md;
                 }
           private function mousedown(evt:MouseEvent ):void {
                  md=mouseX;
           }
           private function mouseup(evt:MouseEvent ):void {
                 mu=mouseX;
           }
           
           private function process(evt:Event):void {
                 renderer.renderScene(scene,camera,viewport);
           }
感谢大家帮忙~

flash 3d 研究所 DDM君
(2009-04-24 22:02:42)
看不出来什么地方有问题呢,呵呵^^

flash 3d 研究所 oishi
(2009-04-24 22:06:03)
那我自己再琢磨琢磨去~谢谢DDM君~

flash 3d 研究所 oishi
(2009-04-26 17:55:46)
其实定义在mousemove里就行,不用mouseup了 = =

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

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

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

(目前需登陆方可发表)


不想添加了