电子沙盘数字沙盘地理信息开发教程第17课

news2024/11/26 17:36:11

M3DGIS电子沙盘数字沙盘地理信息开发教程第17课新增加属性在MTGIS3d控件

  public bool ShowFLGrid;//是否显 示方里网格。

        public bool Atmosphere;//是否显示大气圈。(因为WPF不支持shader功能,所以效果嘛。。。)

在SDK中提供底层的模型访问接口,利用好了可以实现模型的移动动画。材质替换动画等等。下面介绍一下具体的操作方法:

这部 分需要懂一点3dmax如果不懂可以找懂的美工配合一下,这里只起一个抛砖引玉的做用。能够实现的很多,就要看大家的想法了。

先在3dmax中建如 下模型:

注意看一下结构图:

这里我 简单建了几个box。放了一个茶壶它属于box003下面的子物体。相当于我们用box来模仿楼层,茶壶相当于楼层中的物体。,下面为了方便好看,我们给它们弄上半透明的颜色材质,这 里有一点需要注 意,因为我们用的是3ds格式,所以是不支持光影材质和3dmax扩展材质(意思就是只只支持贴图或者纯色了):

然后我们导出为3ds格式。进入平台后如下图:

可以看到我们导入系统后可以得到和3dmax中一模一样的结构列表。这个列表怎么用呢。。我们可以干什么呢。。比如我们可以把有茶壶的那一层拿出来单独研究研究看一看:上代码:

 GisObjectFor3DSFile va = (GisObjectFor3DSFile)IniRead.IniReadWrite.BiaoManage.BiaoList[0];//从当前场景中找到模型标号
            var aa = va.FindNode("Box002__Group");//从模型标号中找到二楼
            TranslateTransform3D p1 = new TranslateTransform3D();
            p1.OffsetX = aa.Value.Transform.Value.OffsetX + aa.Value.Bounds.SizeX;
            p1.OffsetY = aa.Value.Transform.Value.OffsetY;
            p1.OffsetZ = aa.Value.Transform.Value.OffsetZ;
            //利用wpf中自带的移动器把它移出来,这里也可以加上动画
 
            aa.Value.Transform = p1;
出来的效果如下:

当然你还可以替换材质,复杂一点的可以实现沿路运动,比如导弹发射等复杂效果。在   GisObjectFor3DSFile 类中有点击事件

如下:

  GisObjectFor3DSFile va = (GisObjectFor3DSFile)IniRead.IniReadWrite.BiaoManage.BiaoList[0];//从当前场景中找到模型标号
            va.ShowBiaoInfo += Va_ShowBiaoInfo;
 
  private void Va_ShowBiaoInfo(NewGisBiao.Base.BaseInfo value, MouseEventArgs Mouseevent, RayMeshGeometry3DHitTestResult TouchObject = null)
        {
            throw new NotImplementedException();
        }
 
可以在在事件中得到点击的模型哪个一部件,这样就可以与你的模型交互了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1160865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

美观且可以很方便自定义的MATLAB绘图颜色

函数介绍 主函数是draw_test,用于测试函数。 draw_h是函数,用于给Matlab提供美观且可以很方便自定义的绘图颜色。 draw_h函数介绍 这是一个带输入输出的函数,输入1/2/3,输出下面三种颜色库的配色,每种库均有五种颜色…

开发板挂载 Ubuntu 的 NFS 目录

前言 使用的开发板为韦东山老师的 IMX6ULL 目录 什么是 NFS 协议? 为什么要挂载 Ubuntu 的 nfs 目录? 开发板挂载 Ubuntu 的 NFS 目录 步骤 1. 确定 ubuntu 的桥接网卡 IP 2. 判断是否开权限了 3. 判断是否安装并启动 NFS 服务 4. 在开发板上执…

C语言从入门到精通之【第一个程序hello world】

编程步骤 通常,我们按照以下步骤进行 确立目标设计程序编写代码编译程序运行程序测试&调试修改维护 输出hello world 每个学编程的人都会从最经典的【输出hello world】开始。 https://lightly.teamcode.com/ 我们可以使用这个在线IDE学习C语言。 代码很简…

1. PPT高效初始化设置

1. PPT高效初始化设置 软件安装:Office 2019 主题和颜色 颜色可以在白天与黑夜切换,护眼 切换成了黑色 撤回次数 撤回次数太少,只有20次怎么办 自动保存 有时忘记保存就突然关闭,很需要一个自动保存功能 图片压缩 图…

Android Studio打包AAR

注意 依赖的Android Studio版本为4.2.2 更高的Android Studio版本使用方法可能有所不同,gradle的版本和gradle plugins的版本都会影响使用方式。 基于此,本文只能作为参考,而不能作为唯一答案,如果要完全依赖本文,则…

Python接口自动化测试 —— Requests库学习

安装&#xff1a; pip install requests 例子&#xff1a; import requests r requests.get(http://www.baidu.com) print r.status_code print type(r) print r.cookies运行程序&#xff0c;得到结果&#xff1a; 运行程序&#xff0c;得到结果&#xff1a; 200 <cla…

sort的第三个参数与priority_queue的第三个模板参数

sort 在C的标准库中&#xff0c;std::sort是一个用于对容器的元素进行排序的算法。它接受三个参数&#xff1a; 1、需要排序的容器的起始迭代器&#xff08;包含&#xff09;。 2、需要排序的容器的结束迭代器&#xff08;不包含&#xff09;。 3、可选参数&#xff0c;用于指…

webgl入门-基础三角形绘制

背景 最近工作上频繁接触webgl&#xff0c;因为不熟悉每每看到shader中的语法总感觉脑袋大&#xff0c;所以打算开始从零学习一下webgl&#xff0c;文章只做记录学习历程&#xff0c;那就直接开始吧&#xff01; 开始 可以配合着这个文章食用。 我还是对webgl有一些概念的&…

【云备份|| 日志 day2】FileUtil JsonUtil

这几天感冒了&#xff0c;稍微落下了进度 util工具 fileUtil&#xff08;文件操作类&#xff09; 在客户端&#xff0c;又或者是在服务端&#xff0c;本质是都是对文件的读写和管理&#xff0c;所以有必要封装一个文件操作类。 class FileUtil{ private:std::string _name; …

Unity Editor工具,导出unitypackage可选择是否包含脚本

概述 Unity自带的Export Package...功能&#xff0c;如果选中资源中包含脚本&#xff0c;或者Prefab挂载了自定义的脚本。在之后弹出的选择框内&#xff0c;如果勾选了Include dependencies会将整个项目所有的脚本全部都包含在内。等于导入了很多不相关的代码。如果取消勾选In…

Express框架开发接口之req.params、req.query与req.body的区别

1.req.query 用于get请求 http://localhost:3000/user?usernameljz&age1 获取 URL 中携带的查询参数 通过req.query对象&#xff0c;可以访问到客户端通过查询字符串的形式&#xff0c;发送到服务器的参数&#xff1a; 2.req.params 用于get请求 url路径为&#xff…

Ubuntu MySQL客户端功能介绍(mysql-client)mysql命令(mysql客户端命令)数据库导出、数据库导入

文章目录 Ubuntu MySQL客户端(mysql-client)功能介绍MySQL客户端与服务端服务器端&#xff08;MySQL Server&#xff09;客户端&#xff08;MySQL Client&#xff09; 安装MySQL客户端连接到MySQL服务器&#xff08;mysql -h host -u user -p&#xff09;执行SQL查询批处理模式…

SpringCloud-Alibaba-Seata

SpringCloud-Alibaba-Seata 注意&#xff1a;最好使用JDK1.8&#xff0c;使用JDK17整合seata会出现一些问题&#xff01;&#xff01;&#xff01; Docker部署Seata1.5.2 1&#xff1a;拉取Seata1.5.2镜像&#xff1a; docker pull seataio/seata-server:1.5.22&#xff1a;在…

C/C++奇数求和 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C奇数求和 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C奇数求和 2021年3月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 计算非负整数 m 到 n&#xff08;包括m 和 n &#xff…

驱动开发11-2 编写SPI驱动程序-点亮数码管

驱动程序 #include <linux/init.h> #include <linux/module.h> #include <linux/spi/spi.h>int m74hc595_probe(struct spi_device *spi) {printk("%s:%d\n",__FILE__,__LINE__);char buf[]{0XF,0X6D};spi_write(spi,buf,sizeof(buf));return 0; …

HNU-数据库系统-讨论课1

第一次小班讨论课安排如下: 主题: 大数据管理及前沿技术讨论 目的&#xff1a;让学生了解大数据管理的相关理论、技术和系统。 内容: &#xff08;1&#xff09;大数据概念、应用、技术的相关知识。 &#xff08;2&#xff09;AI4DB &#xff08;3&#xff09;DB4AI &…

代码随想录打卡第五十八天|● 583. 两个字符串的删除操作 ● 72. 编辑距离

583. 两个字符串的删除操作 题目&#xff1a; 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 题目链接&#xff1a; 583. 两个字符串的删除操作 解题思路&#xff1a; dp数组的含义&am…

基于springboot漫画动漫网站

基于springbootvue漫画动漫网站 摘要 基于Spring Boot的漫画动漫网站是一个精彩的项目&#xff0c;它结合了现代Web开发技术和漫画爱好者的热情。这个网站的目标是为用户提供一个便捷的平台&#xff0c;让他们能够欣赏各种漫画和动漫作品&#xff0c;与其他爱好者分享他们的兴趣…

Linux启动故障排错

Linux启动过程 开机流程、模块管理-CSDN博客 Grub三个阶段 1st stage&#xff1a;执行Grub主程序。Grub安装在MBR。由于MBR太小&#xff0c;所以与配置文件分开放1.5 stage&#xff1a;识别不同的文件系统2nd stage&#xff1a;加载Grub配置文件 /boot/grub2/grub.cfg。配置…

wordpress上传限制2M修改为256M的两种方式

方式一&#xff1a;修改php.ini 上传文件限制大小主要是php的php.ini配置决定的&#xff0c;所以只要找到php的配置文件&#xff0c;并且修改里面的配置即可&#xff0c;linux查看php的版本和配置文件位置的命令&#xff1a; php -i | grep "Configuration File" 一…