`
sjkgxf7191
  • 浏览: 257129 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Flash3D编程技巧:物体环视浏览器(Away3D)

阅读更多

定义一些以后会用到的变量:

private var View:View3D;

// HoverCam controls
private var camera:HoverCamera3D;
private var lastMouseX:Number;
private var lastMouseY:Number;
private var lastPanAngle:Number;
private var lastTiltAngle:Number;
private var move:Boolean = false;

 

增加一个HoverCamera3D并且设置它为视图要使用的camera:

camera = new HoverCamera3D({zoom:2, focus:100, distance:250});
View = new View3D({camera:camera,x:250, y:200});

 

设置camera的一些初始属性值:

camera.targetpanangle = camera.panangle = 45;
camera.targettiltangle = camera.tiltangle = 20;
camera.mintiltangle = -90;

 

启用ENTER_FRAME侦听器:

addEventListener(Event.ENTER_FRAME, onEnterFrame);

 

启用鼠标按下、释放侦听器:

this.stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
this.stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);

 

鼠标按下的时候,需要记录下camera的一些当前参数:

private function MouseDown(event:MouseEvent):void
{
    lastPanAngle = camera.targetpanangle;
    lastTiltAngle = camera.targettiltangle;
    lastMouseX = stage.mouseX;
    lastMouseY = stage.mouseY;
    move = true;
}

 

鼠标释放的时候,需要停止渲染场景:

private function MouseUp(event:MouseEvent):void
{
    move = false;
}

 
where 'the magic' happens:重新计算新的camera位置

private function onEnterFrame(e:Event):void
{
    // rerender viewport
    var cameraSpeed:Number = 0.3; // Approximately same speed as mouse movement.
    if (move) {
        camera.targetpanangle = cameraSpeed*(stage.mouseX - lastMouseX) + lastPanAngle;
        camera.targettiltangle = cameraSpeed*(stage.mouseY - lastMouseY) + lastTiltAngle;
    }
    camera.hover();
    View.render();
}
0
0
分享到:
评论

相关推荐

    Scratch “我的世界”经典系列 3D 版:我的世界 3D 实现.sb3

    使用【WASD】移动,【Q】跑步,【鼠标移动】环视四周,【Z】切换鼠标外观,【空格】跳跃,【点击鼠标】挖掘,【E + 鼠标点击】建造土块,【1-9】选择块类型。 此后仍有作品或有趣游戏,可以进行学习与借鉴。请关注...

    环视系统 ECU_环视系统_环视系统ECU_源码

    6. **软件开发**:环视系统的源码开发涵盖了硬件驱动编程、图像处理算法实现、用户界面设计等多个方面。开发人员需要熟悉嵌入式系统、实时操作系统(RTOS)以及相关开发工具,如TI的CCS(Code Composer Studio)等。...

    Unity鸟瞰脚本:环视+拖拽平移+远近缩放+范围限制+阻尼感

    这通常通过设置相机的最小和最大位置限制来实现,以防止其穿过物体或离开预设的视图边界。在相机移动或缩放时,需要检查新的位置是否在允许的范围内,并进行相应的修正。 最后,"阻尼感"是指相机移动或旋转时的平滑...

    unity,各个视角控制 鸟瞰 环视等效果,拖拽到摄像头组件就能用

    在3D游戏开发中,我们常常需要实现不同的视角控制,如鸟瞰、环视、拖拽平移以及远近缩放等效果,以提供丰富的用户体验。这些功能通常通过编写自定义的脚本来实现,并可以便捷地拖放到Unity的摄像机组件上。 首先,...

    3D全景图_html5

    在IT领域,3D全景图是一种利用数字技术模拟真实环境,提供沉浸式视觉体验的技术。在本主题中,我们将深入探讨如何使用HTML5和JavaScript来实现3D全景图的创建,以及这一过程中涉及的关键概念和技术。 首先,HTML5是...

    教师资格证考试面试技巧:目光礼仪.docx

    【教师资格证考试面试技巧:目光礼仪】 在教师资格证面试这一关键环节中,目光礼仪是展示个人专业素养和沟通能力的重要方面。教师在教育工作中,目光常常扮演着传递信息和建立联系的角色,被称为“眼语”。面试时,...

    电信设备-结合雷达信息的自适应3D环视场景重建系统与方法.zip

    在3D环视场景重建中,雷达可以提供远距离和宽视野的物体检测,尤其是在能见度低或恶劣天气条件下,是其他传感器无法比拟的。 其次,3D环视场景重建涉及到几何建模、图像处理、计算机视觉等多个领域的技术。系统通过...

    车载环视摄像头视频文件

    5. **障碍物检测**:这些环视视频文件在车门障碍物检测中的应用,意味着系统可能包含了物体识别和追踪功能。通过计算机视觉技术,系统能分析视频帧,识别出静态或动态的障碍物,并向驾驶员发出警告,提升驾驶安全。 ...

    360度无死角:环视摄像头系统如何重塑汽车安全与驾驶体验.docx

    在这一背景下,先进驾驶辅助系统(ADAS)应运而生,而360度环视摄像头系统则是其中的一个重要组成部分。这种系统通过为驾驶员提供全方位、无盲区的实时视图,大大降低了事故发生的概率。无论是在狭窄的城市街道,...

    opencl4格环视拼接Beta-0.5配套代码文档

    《OpenCL4格环视拼接技术详解》 在当今的计算机视觉领域,环视拼接(也称为全景拼接)是一项重要的技术,它能够...通过深入理解和实践这个项目,开发者可以掌握OpenCL编程技巧,并在此基础上优化和扩展环视拼接算法。

    环视系统 ECU - 带 LVDS 的 4 摄像头环视 ECU

    环视系统ECU,全称为环绕视景电子控制单元,是一种高级驾驶辅助系统(ADAS)的重要组成部分,尤其在现代汽车安全技术中扮演着至关重要的角色。这种系统通常结合了4个或更多摄像头,旨在为驾驶员提供车辆周围的全方位...

    飞思卡尔 全景360环视 详细方案.pdf

    飞思卡尔全景360环视方案涉及多项技术要点,下面将详细阐述: 首先,全景环视系统基础是建立在几个关键软件组件之上。这包括Linux操作系统,该操作系统可以通过Yocto Linux OS项目为不同的目标SoC创建当前的映像,...

    智能驾驶环视跟踪 C++代码

    总的来说,智能驾驶环视跟踪系统是当前汽车科技的热点,它依赖于C++等编程语言实现复杂的算法,结合深度学习技术,以实现对车辆周围环境的实时理解和反应。掌握这一技术,对于推动智能交通的发展具有重要意义。

    SVAUG.zip_360 view_360环视_imx8 360环视_全景环视_环视

    360全景环视文档,恩智浦IMX8系列套件说明

    正则匹配原理之——逆序环视深入.rar

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索。...通过阅读《正则匹配原理之——逆序环视深入.pdf》这份文档,你可以更深入地了解这个主题,掌握逆序环视在实际应用中的技巧和策略。

    基于c++和python实现的360环视相机校正-去畸变-俯视变换-图像拼接-图像融合源码.zip

    基于c++和python实现的360环视相机校正-去畸变-俯视变换-图像拼接-图像融合源码.zip 【项目说明】 360环视相机校正-去畸变-俯视变换-图像拼接-图像融合 360环视相机校正-去畸变-俯视变换-图像拼接-图像融合 360环视...

    360环视全景拼接demo,c++程序

    在自动驾驶领域,360环视全景拼接技术是一项至关重要的功能,它为车辆提供了全方位的视觉感知,有助于提升行车安全。"360环视全景拼接demo,c++程序"是一个展示如何实现这一技术的代码示例,主要用于帮助开发者理解...

    360环视摄像头鱼眼四摄像头拼接算法

    标题《360环视摄像头鱼眼四摄像头拼接算法》所涉及的知识点主要包含以下几个方面: 1. 环视系统的原理和结构 全景环视系统是通过在车辆的四个方向(前、后、左、右)安装鱼眼摄像头来实时捕捉周围环境的图像。这些...

    车载360环视

    车载360环视系统的核心在于利用多个鱼眼摄像机捕获车辆四周的图像,并通过软件处理合成出一个完整的俯视图和3D环视图。因此,深入理解摄像机的成像模型对于设计算法至关重要。成像模型主要包括两种类型:线性模型...

    正则应用之——逆序环视探索.rar

    在正则表达式的世界里,逆序环视(Lookbehind)是一种高级匹配技术,它允许我们检查一个字符串是否满足特定的前置条件,但不包括这些条件在最终的匹配结果中。逆序环视分为肯定逆序环视(Positive Lookbehind)和...

Global site tag (gtag.js) - Google Analytics