WPF 显示3D密集场景,堆场管理系统

摘要:
我曾经在一些WPF讨论小组中问过一个问题,我们应该建立一个场地管理系统。我见过市场上的软件界面。那么WPF如何实现如此密集的显示呢?例如,我上面WPF程序的内存显示了数千个盒子,大约超过100MB,其中数千个是用Threejs制作的。

又好久好久没写博客了,这次接着上文https://www.cnblogs.com/CSSZBB/p/12785380.html,上文用WPF 的绘图功能,制作了一个伪3D的2.5D控件ThreeDBox ,那么这玩意我是用来干啥那?没事做做着玩么?

简单来说,这个东西用来显示密集型的操作画面,比如显示一个堆场里集装箱的摆放情况,是不是稍微有点像了那?当然为了更像集装箱,你可以调整下各个参数

WPF 显示3D密集场景,堆场管理系统第1张WPF 显示3D密集场景,堆场管理系统第2张

如果让你用你所知道的WPF 控件做一个反应堆场集装箱摆放的软件,应该没啥现成的控件用了把!

曾经我也在一些WPF 的讨论群里问过一个问题,我们要做一个堆场管理系统,有见过市面上的软件界面,是这样的。那么WPF 像实现这样密集的展示,怎么做好那? 结果没人能告诉我,所以我只好自己做了。

WPF 显示3D密集场景,堆场管理系统第3张

如下图是我做出的效果,单从视觉效果上来说应该算是还可以把。当然显示只是一部分,更重要的是容易操作,比如选中某个位置,设置放箱计划,收箱计划等。 单机试用版

 WPF 显示3D密集场景,堆场管理系统第4张

也有懂行的人会说,WPF本身就支持3D场景viewport3d,同时现在很多3D引擎,unity3d ,虚幻啊,webgl啊等,都很不错的,用来显示3D效果很好的,确实,我也做了尝试,可以展示下。这个东西是用threejs做的。

我也放在服务器上可以体验下 ,个人服务器网速比较慢,要有耐心  3D堆场   拖动视角 Ctrl+鼠标左键,移动窗口 鼠标右键

WPF 显示3D密集场景,堆场管理系统第5张

 总结来说,

1    3D引擎做的视觉效果确实是很漂亮的,但是这么密集的场景下,它的内存也是很吓人的。比如上面我的WPF程序内存,显示着几千个箱子,大概100多M , 用threejs做的 就上千了(当然我不是

很精通threejs,应该可优化)。

2   3D引擎做的,最终展示出来,其实就是一张图片,它要操作里面的场景中的物体,比如选中某个箱子,选中某几个场位等,需要根据一些参数来计算出来,实现起来比较绕。它比较适合展示用。

  2.5D下,最终的界面,还是像普通程序一样,它是一个控件,对接受键盘鼠标等操作,有着天然的支持。比较实适合一些复杂操作的场景。

最后,也推广一下我们的堆场管理系统,或者有类似需求的地方,比如仓库管理啊,停车场管理啊,等等

有问题请联系我QQ 384347789

免责声明:文章转载自《WPF 显示3D密集场景,堆场管理系统》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇asp.net Web Service请求因 HTTP 状态 400 失败: Bad Request的原因Flink学习(十三) Flink 常见核心概念分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WPF/Silverlight HierarchicalDataTemplate 模版的使用

上一篇 对Wpf/Silverlight Template 进行了总结,本篇继续上一篇,主要是介绍 HierarchicalDataTemplate 的使用方法。HierarchicalDataTemplate 继承于DataTemplate,被称之为"层级式数据模板",主要是应用层级比较明显数据集合,其典型的应用就是对TreeView控件进行数据绑定,接...

WPF读写config配置文件

WPF读写config配置文件单。 1. 在你的工程中,添加app.config文件。文件的内容默认为: 1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 </configuration> 2.如果你想给程序配置一些参数,就在<c...

WPF委托实现方法回调(刷新父窗体)

MainWindow.xaml(父窗体) <StackPanel> <Label Content="{Binding Message}"/> <Button Content="Input User Name" Command="{Binding OpenSubWindowCommand}"/> </...

WPF 导出EXCEL 方法

是用WPF将数据导出成EXCEL其实和其他.NET应用是相通的,ASP.NET也好WINFORM也好,都是用相同的方法实现,唯一不同的是ASP.NET中可能会存在用户权限的问题,毕竟ASP.NET的执行用户是IIS指定的用户而不是默认的系统用户。 具体实现方法如下,代码中使用完整的名称空间,便于理解 第一步,不许引用Excel的程序集,不同于网上其他文章,...

[WPF](小结1)ListBox嵌套ListBox

思路:大项目的每项中包含一个小项目集合,用ListBox嵌套ListBox或ListBox嵌套ItemsCtrol是个比较好的方式,现总结如下: 第一:先构建题目类,再建一个选项类,题目类集合中的每个项包含一个选项类集合,即数组嵌套数组,C#语句如下: (为方便看清语句,类直接写在主程序中) usingSystem; usingSystem.C...

WPF中为窗体设置背景图片

在WPF应用程式中,我们往往想为一个窗体设置一个中意的背景图,而不是单独的为这个Background设置成某种颜色或渐变颜色的背景。 在WPF 利用Expression Blend工具如何达到这种效果呢?比如我们想做一个登陆窗体界面,界面效果如下图所示: 下面我就大概说下过程,首页建立一个工程为WpfLoginView,并在Expression Blen...