算法可视化

软件功能--以数组为例

一个数组是一个容器.
对其进行可视化,主要针对数组的值查找,指定位置插入,指定位置删除进行可视化.
软件针对每个数据结构可视化分两个方面:
(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指令,除了控制模型对象运行的指令,还可以定义控制模型对象颜色,在界面显示提示的各类其他的指令类型.
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

raindayinrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值