软件功能--以数组为例
一个数组是一个容器.
对其进行可视化,主要针对数组的值查找,指定位置插入,指定位置删除进行可视化.
软件针对每个数据结构可视化分两个方面:
(1). 教学模式:主要针对数据结构每个方面进行讲解,可动画演示.
(2). 实践模式:允许使用者自己通过增加/删除/搜索执行数据结构支持的操作,且将操作过程以动画形式展现.
数组-教学模式
数组--实践模式
技术层面
一个通用2D建模体系
一个描述点/线/矩形/...的基础结构体系
一个描述2d
几何对象的体系
通过上述类型,我们既可以描述单独的2d
点/线/椭圆/矩形/多段线/文字对象,又可以通过GeometryGroup
描述这些对象的任意层次的嵌套和叠加.
矩阵支持,为了实现2d
对象的运行与变化,我们需要对2d
对象进行变换,而变换依赖于矩阵.
2d
变换体系
一个通用2D渲染体系
为了完成一个2d
对象的绘制,我们构建一个Drawing
体系
一个Drawing
基类实现一个2d
对象绘制
为了完成2d
对象间父子关系,一父多子,控制属性等信息的描述,我们需要对可绘制的2d
对象进行建模.需要一个Model
体系来支撑.
一个动画驱动体系
2D
动画需要不断给2D
模型对象发送控制信息,来更改其属性并绘制,实现运动的可视化效果.
为了实现动画的驱动,需要一个多线程流水线:
1.解析动画驱动文件,得到NcCode
.
每个NcCode
描述的是一段时间下各个对象的运动.
2. 对NcCode
进行插补得到NcStep
,以得到一个设定的较小的时间间隔内对应的各个2D
对象的运动量.
3. 对NcStep
进行处理,依据NcStep
修改模型属性.
模型属性变化后,重新绘制模型对象.从而实现模型对象在界面上的移动效果.
针对NcCode
指令,除了控制模型对象运行的指令,还可以定义控制模型对象颜色,在界面显示提示的各类其他的指令类型.