并不是真的3D,类似以前游戏的2.5D。

先上效果图。

变形一下也可以

起先我是想,把这种绘图啊啥的,都做成控件,给别人直接用就行了。但是做的过程中发现。

要做简单易用的控件,实在是花时间。 而且花的时间又大多数和如何绘制这个主题无关。就是一些基础性的属性,事件的东西。

现在现状是用WPF的人实在不多,所以我也真的没啥动力去做这件事。 不如抛出一种思路。 直接放个源码,有什么需求或者疑问可以联系我QQ384347789

源码如下

整个绘制思路如下:一个立方体,其实只要两个一样的平行四边形就可以确定,底 和顶。

真正绘制的时候,需要确定底和顶的分别4个顶点的坐标,就是共8个。假设以底的左上角为坐标(0,0)那么如果知道这个四边形的倾斜角度(假设45度,长100,宽60)。是可以计算出来其他3个点的坐标的。

这个应该是小学数学.怎么算我不说了。

那么底的4个顶点坐标确认了,假设这个立方体的高是100.那么顶的平行四边形的4个顶点的坐标也会算了把?X不变,Y平移一下就是了。

那么8个点的坐标确认了

绘制的时候,在意的其实是8个点确定的 3个平行四边形。分别如下(其实只用到了7个点)

用Path分别用不同颜色绘制这3个面。得到一个立方体。在用坐标系。得到很多立方体。就是整个思路。

感谢阅读。如果对您有帮助,请帮我点个赞

wpf scrollviewer 两个事件相互影响_WPF绘制3D效果显示密集立体集装箱相关推荐

  1. 判断两个事件是不是独立事件

    1.从定义上看,若事件A的发生对事件B的发生概率没有影响,反之亦然,则这两个事件是相互独立的 2.借助公式,若对两事件A,B有P(AB)=P(A)·P(B),则事件A,B相互独立

  2. WPF 中的 loaded 事件和 Initialized 事件

    在 WPF 中, 控件有 Loaded 和 Initialized 两种事件. 初始化和加载控件几乎同时发生, 因此这两个事件也几乎同时触发. 但是他们之间有微妙且重要的区别. 这些区别很容易让人误解 ...

  3. WPF 九 ( loaded 事件和 Initialized 事件区别以及事件执行顺序总结)

    在 WPF 中, 控件有 Loaded 和 Initialized 两种事件. 初始化和加载控件几乎同时发生, 因此这两个事件也几乎同时触发. 但是他们之间有微妙且重要的区别..具体区别如下 概念介绍 ...

  4. 同一AppDomain内的SharpGL的FrameBuffer会相互影响?

    同一AppDomain内的SharpGL的FrameBuffer会相互影响? 今天做一个试验时,偶然发现了这样一个问题. 以SharpGL的示例项目SimpleDrawingSample为例. 给Fo ...

  5. 如何降低数据中心宕机事件的影响

    大多数人在生活或工作领域中都不希望出现连接中断的情况,尤其是在以数字生活方式为主的今天,所以数据中心基础设施变得越来越重要.对于许多消费者来说,他们希望自己的数字产品和服务能保持正常工作,所以当发生宕 ...

  6. WPF中的鼠标事件详解

    WPF中的鼠标事件详解 Uielement和ContentElement都定义了十个以Mouse开头的事件,8个以PreviewMouse开头的事件,MouseMove,PreviewMouseMov ...

  7. oracle 主键约束重名,主键及主键索引的关系及相互影响

    主键的定义:列或多列的集合,用于唯一的标识表中的一行.一个表上只允许有一个主键. 我们在数据库中指定主键时,是通过主键约束来定义的.而创建主键约束时,又是需要有相应的索引来配合实现的.所以,本文的目的 ...

  8. WPF 学习笔记 路由事件

    1. 可传递的消息: WPF的UI是由布局组建和控件构成的树形结构,当这棵树上的某个节点激发出某个事件时,程序员可以选择以传统的直接事件模式让响应者来响应之,也可以让这个事件在UI组件树沿着一定的方向 ...

  9. uipath sequence传递参数_界面换热和压力传递的相互影响机制 | 压铸过程高级分析...

    原标题:界面换热和压力传递的相互影响机制 | 压铸过程高级分析 压铸是一种生产效率高并且能够生产各种复杂形状轻合金(主要为铝.镁及锌合金)产品的近净成形技术.在压铸过程中,熔融金属在冲头的作用下以高速 ...

最新文章

  1. Oracle 正则表达式
  2. 图灵71年前提出神经网络!《智能机器》再掀热议,却一生未发表
  3. c语言连接mysql(入门)_MySQL入门之C语言操作MySQL
  4. 股票自动交易使用协议
  5. 分析udp数据报_深入的理解UDP编程
  6. 利用redis-sentinel+keepalived实现redis高可用
  7. java redis缓存使用_java使用redis缓存数据库
  8. adduser useradd userdel /etc/password【原创】
  9. 时间记录html,jquery水平、垂直时间线记录jQuery Timelinr
  10. vuex commit 模块_分享一个Vuex的使用的新姿势
  11. python之optparse模块
  12. 【PTAL2-001】紧急救援(Dijkstra+最短路径的条数+最短路径中点权之和的最大值)
  13. MacOS Big Sur 11.5 (20G71) OC 0.7.1 / Cl 5138 / PE 三分区原版黑苹果镜像
  14. 关于 IoT 的发展
  15. QQ分享功能实现-Android
  16. 2022年全球程序员薪资排行出炉:中国倒数第九,GO最赚钱
  17. OEM、ODM与OBM的区别
  18. 如何制作3D动画人物
  19. 三极管 vs MOS管 | PMOS与NMOS
  20. list移除元素时报错

热门文章

  1. 让你的系统“坚挺不倒”的最后一个大招——「降级」
  2. 死磕Java并发:J.U.C之Condition
  3. Disruptor之概览
  4. apply筛选 pandas_更快的pandas.apply搜索方法
  5. mysql backup_Mysqlbackup 备份详解(mysql官方备份工具)
  6. RESTful架构风格
  7. cuda 判断nan 处理办法
  8. 3D Object Detection——BEV-based methods
  9. 轻量人脸检测,5个关键点
  10. pytorch 检索数组