先看效果图
初衷呢是想搞一个机器学习的可视化展示,做着做着发现可以做通用的可视化蓝图组件,既可以做思维导图,脑图,一些结构,也可以像虚幻引擎和unity动画引擎一样,配合游戏编辑器做成可视化脚本生成,为此专门设计了自由度极高的架构,上面的每段线条,每个节点,节点标题颜色内容,节点互相通信,动态唤醒,既可以做成静态展示,也可以做成实时运算,例如每个节点像跑马灯一样动态展示。不过这个要自己扩展,这是功能上的一些东西。
下面呢说下整个原理,这个蓝图组件我使用了skia的net跨平台封装skiasharp,为什么要用skia呢,这个其实和我前段时间研究cef内核确定的,因为cef底层绘图使用的是skia,又跨平台性能又高,绘制方面使用了DirectUI概念的绘制,基本上作者换个蓝图组件就相当于开发了一套DirectUI界面库,只不过相对于一款界面库来说完成度不是太高,只完成了界面引擎的核心调度绘制,缺少了,比如按钮Button ListBox 等等常用组件,然后核心写完,优化了绘制通知,鼠标交互的部分节点会重新通知计算绘制,这样的话性能会提升,还一个就是加入了脏矩形的绘制检测通知,也就是更细粒度控制哪些需要计算哪些需要绘制何时绘制等等,基本上就没什么了 再放几张gif看看
来源:oschina
链接:https://my.oschina.net/KFS/blog/4406712