查看: 2265|回复: 3

某型智能社区电子沙盘系统

[复制链接]

该用户从未签到

发表于 2016-3-3 21:52:41 | 显示全部楼层 |阅读模式
    采用GIS、VR等技术,通过对城市街区等目标对象的计算机三维视景仿真,融合文字、图表、音视频和矢量数据等二维信息,为用户提供实用便捷、震撼逼真、信息丰富的可视化展示与管理平台,创造出身临其境的空间三维视觉体验。
    结合“某型智能社区电子沙盘系统”实例,设计了一套利用三维场景渲染引擎OpenSceneGraph(OSG)和OSGEarth,结合osgWidget和Qt平台的电子沙盘系统开发方案。该方案主要针对于以实际的地理地形为背景、强调宏观场景展示和场景信息显示、社区信息管理的电子沙盘系统,与同类其它系统相比,该系统功能强大、内容丰富且对硬件要求较低。
    电子沙盘系统由GUI交互界面、数据库、视点动画、信息查询与显示等5大分系统组成,应用控制台Console和Qt的程序框架实现。
GUI交互界面分系统分为两部分:菜单系统和窗体系统。应用osgWidget设计实现菜单系统和简单窗体、应用Qt生成各种复杂窗体,实现Qt生成控件、三维场景和osgWidget生成控件三者间的无缝融合与交互。
    菜单分系统效果图:
未标题-1.png
该GUI系统应用菜单树分支节点、菜单分支组、菜单叶组、菜单项等概念,文件夹方式建立菜单树。
构成菜单树的相关结构体定义:
struct MENU
{
        std::vector <Element> elements;   //当前所有的项
        std::vector <MENU*>   child;      //当前每个项对应的子节点组
        std::string           group_name; //当前组的名称
};

//类型定义
enum   ModeStyle {
        SINGLE_TRUNCK,
        SINGLE_LEAF,
        PAGE_TRUNCK,
        PAGE_LEAF
};
enum   UPDOWN_MODE{
        ONLY_CAN_UP,
        ONLY_CAN_DOWN,
        BOTH_CAN,
        BOTH_NO
};
typedef std::pair<std::string, std::string> Element;
struct MENU
{
        std::vector <Element> elements;     //当前所有的项
        std::vector <MENU*>   child;        //当前每个项对应的子节点组
        std::string           group_name;   //当前组的名称  
};
struct MENU_MODE
{
        std::string top_who;
        int         level;
        ModeStyle   mode;
        MENU_MODE   *prev;
        std::vector<std::string> names;
        std::string group_name;
        std::string tree_name;
        int         pages;
        int         page;
        int         current_geode_num;
        UPDOWN_MODE up_down_mode;
};

2.png
3.png
4.png
5.png

该用户从未签到

发表于 2016-3-18 16:56:23 | 显示全部楼层
非常不错啊!

该用户从未签到

发表于 2016-6-2 15:48:23 | 显示全部楼层
&#128077;

该用户从未签到

发表于 2016-7-18 14:10:55 | 显示全部楼层
不错啊,可惜没有源码之类的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表