pv3d 打造三维全景图
做三维全景图,需要找到一张全景照片,利用pv3d的立方体或球体贴图即可轻松实现。这里用的是球体,图片是在网上找的,有兴趣的朋友也可以自己做。
来源:(http://blog.sina.com.cn/s/blog_652776220100gomj.html) - Flex+pv3d 打造三维全景图_niutifa_新浪博客
源码:
package {
import flash.events.Event;
import flash.events.MouseEvent;
import org.papervision3d.cameras.CameraType;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.view.BasicView;
import org.papervision3d.materials.BitmapFileMaterial;
//设置舞台宽高、背景颜色、帧频
[SWF (width="460", height="300", backgroundColor="0xffffff", frameRate="30")]
public class pv3dwholeScene extends BasicView
{
private var sphere:Sphere;
private var w:Number=460;
private var h:Number=300;
private var angleX:Number;
private var angleY:Number;
private var over:Boolean=false;
public function pv3dwholeScene()
{
super(460,300,true, false,CameraType.FREE);
init();
}
private function init():void
{
initObj();
//注册帧频侦听用于不断刷新屏幕
addEventListener(Event.ENTER_FRAME,onEnterFrame);
//当鼠标移到舞台时注册侦听
stage.addEventListener(MouseEvent.MOUSE_OVER,onOver);
//当鼠标移出舞台时注册侦听
stage.addEventListener(MouseEvent.MOUSE_OUT,onOut);
}
private function initObj():void
{
var material:BitmapFileMaterial=new BitmapFileMaterial("images/yourImage.jpg");
//PV3D默认情况下不显示背面,doubleSided属性应设为true
material.doubleSided = true;
material.smooth = true;
//实例化球体 (由周长算出半径 S=2*PI*R)
sphere=new Sphere(material,98.68,20,20);
scene.addChild(sphere);
//把摄像机移到中心位置,PV3D摄像机的默认位置是camera.z=-1000
camera.z=0;
//摄象机的缩放参数,
camera.zoom=.8;
//摄象机的焦距
camera.focus=300;
}
private function onEnterFrame(e:Event):void
{
if(over)
{
//当over是真时设置摄像机的旋转角度
var xm:Number=stage.mouseX;
var ym:Number=stage.mouseY;
angleX=(w/2-xm)*-.004;
angleY=(h/2-ym)*-.002;
}
else
{
//当over是假时设置摄像机的旋转角度为0
angleX=0;
angleY=0;
}
// 旋转摄像机
camera.yaw(angleX);
camera.pitch(angleY);
//渲染
singleRender();
}
private function onOver(event:MouseEvent):void
{
over=true;//鼠标移到场景上为真
}
private function onOut(event:MouseEvent):void
{
over=false;//鼠标移出场景为假
}
}
}
本文转自博客园知识天地的博客,原文链接:pv3d 打造三维全景图,如需转载请自行联系原博主。
pv3d 打造三维全景图相关推荐
- 智慧煤矿数字孪生打造三维可视化管理平台
如今各行业都在逐步推进信息化.数字化转型与升级,煤矿行业也不例外.现阶段煤矿企业智能化发展迅速,智能设备仪器产生数据量级大,数字孪生通过数据孪生对数据进行全面监控和管理,将报警数据.设备全生命周期数据 ...
- wxPython + PyOpenGL 打造三维数据分析的利器!| CSDN 博文精选
作者 | 天元浪子 责编 | 伍杏玲 出品 | CSDN博客 在三维显示领域,OpenGL 是神一样的存在,其地位就像编程语言里面的 C 一样.基于 OpenGL 衍生出来的分支.派系,林林总总. P ...
- wxPython+PyOpenGL打造三维数据分析的利器!| CSDN博文精选
作者 | 天元浪子 责编 | 伍杏玲 出品 | CSDN博客 在三维显示领域,OpenGL 是神一样的存在,其地位就像编程语言里面的 C 一样.基于 OpenGL 衍生出来的分支.派系,林林总总. P ...
- wxPython + pyOpenGL,打造三维数据分析的利器
文章目录 1. 前言 2. 关于 wxPython 3. 关于pyOpenGL 4. 架起沟通 wxPython 和 pyOpenGL 的桥梁 5. 场景.视区和模型 6. 三维重建的实例 7. 后记 ...
- geoserver三维_使用Geoserver和Google Earth打造三维GIS展示系统
给图层添加高度数据,需要根据实体几何类型分别处理.对于面,例如行政区界或建筑物,需要创建一个高度模板文件. 对于线(点),例如架空电缆,高程将直接从图形数据中读取. GeoServer 1.7.1及以 ...
- wxpython dataviewmodel_wxPython + PyOpenGL 打造三维数据分析的利器!|CSDN 博文精选
作者 | 天元浪子 责编 | 伍杏玲 出品 | CSDN博客 在三维显示领域,OpenGL 是神一样的存在,其地位就像编程语言里面的 C 一样.基于 OpenGL 衍生出来的分支.派系,林林总总. P ...
- DepthPano-TOG2020 学习整理(一)——有关全景图的三维场景重建
Noise-Resilient Reconstruction of Panoramas and 3D Scenes using Robot-Mounted Unsynchronized Commodi ...
- unity三维地图的经纬度如何在二维地图上表示_三维GIS与游戏引擎的跨界融合,打造数字化孪生的平行世界...
▲点击关注,收获更多GIS精彩 游戏地图在游戏中起基础和关键作用,它承载游戏中的各种资源,是游戏系统中非常重要的组成部分(图1),所以游戏通常具有明显的地理意义.因此,虽然三维GIS与游戏引擎是两个不 ...
- osg 三维gis开发_三维GIS与游戏引擎的跨界融合,打造数字化孪生的平行世界
游戏地图在游戏中起基础和关键作用,它承载游戏中的各种资源,是游戏系统中非常重要的组成部分(图1),所以游戏通常具有明显的地理意义.因此,虽然三维GIS与游戏引擎是两个不同的领域,但两者是有联系的. 游 ...
最新文章
- OpenGL实践系列之开篇: 坐标系
- 自学python还是报班-零基础学Python是应该报课还是自学?
- Centos7.x 在线安装Docker和离线安装 Docker
- 铜陵高考2021年成绩查询,滁州高考成绩查询入口2021
- java 线性的排序算法_数据结构之排序算法Java实现(9)—— 线性排序之 基数排序算法...
- 财务人员必备的5个Excel技能,学会工资高出同事3倍!
- 完整的蓝屏错误代码大全详解
- mix2线刷开发板救砖_小米小米Mix 2手机快速救砖,线刷教程分享,小白轻松救活手机...
- 浅谈易用性测试及GUI常见的测试要求
- linux打开7z文件_什么是7Z文件(以及如何打开一个文件)?
- 生活都不容易,如果你感觉生活很苦,那就说明你在吃苦,同样,如果你感觉生活有奔头,那就是在努力。
- 【华为OD机试真题JAVA】英文输入法单词联想功能
- SM4250平台typec耳机检测
- Excel if及ifs函数用法
- 计算机公共课5——演示文稿软件 PowerPoint 2010
- Androud7.0之IPC机制(多进程、及其通信)
- git merge使用(--no-ff)
- [我所知道的BIOS]-[Chipset Config] 5
- DSP28335 SPWM之斩波器PWM-Chopper (PC)与Trip-Zone (TZ)
- 前后端分离完成CRUD和SVN介绍