用矩阵的概念思考图形界面的解决方案

来源:互联网 发布:通联数据的量化平台 编辑:程序博客网 时间:2024/06/07 04:54

从线性代数的角度,我获得一个灵感,是关于如何操作U I界面的。


一, 图形界面的静态部分


1, 将需要显示的每个数据元素,以及相应的U I元素,组成一个对象。例如有n个这样的对象。每个对象有名字,有类型,有绑定到数据库的表的属性,有UI元素的属性等,有显示错误时提示信息的属性等。

2, 把这n个元素,排成n行1列的列向量,放在一个数组里。

3,如果这些元素间有父子关系,则用邻接矩阵的概念,来做一个连接,渲染时也会根据邻接矩阵来渲染。


4,这个列向量,其实也是一个矩阵了,里面的每一个元素,都有若干个属性,即维度。


二, 图形界面的动态部分


1, 对图形界面的所有的动作,实际上都对以上定义的那个列向量的变化,可以简化成对整个列向量的一个操作。

2,如果列向量的UI方面数值变了则更新UI,如果数值方面变了则更新到数据库。

3, 把界面上的状态变化,抽象成状态以及事件驱动下的状态转换,并写出状态转换矩阵,一切界面上的变化应该是被这个矩阵所涵盖。如果有新的需求,将修改这个状态转换矩阵。


以下是一个简单的状态机矩阵







用矩阵化思维考虑UI问题时,有以下几个特征:

1, 整体化考虑,把整个界面看作整体。

2, 抽象化,一切看作向量,一切UI表现和数据表现,都是向量的呈现。

3, 界面的一切变化,都是向量变换,向量之间通过定义好的操作符的运算,转换成了新的向量并被渲染到界面上。一切以前“鸡零狗碎”的UI场景,都应该能归一到此。

用矩阵的概念想UI问题,其实是受到机器学习科目的影响。矩阵化思维减轻了思维负担。使我想起,学到解析几何后,那种通过数字机械操作就能证明出传统几何学难题的快感。

原创粉丝点击