6.1 芯片移动位置重叠算法
当鼠标点击位置在模型内部或外设输入操作时触发函数,首先跳入一个判断函数,判断鼠标移动释放后的位置或者输入参数使新模型处于以前模型的什么位置,如是左上,则首先判断变化特征点(左上点)的X坐标是否大于在定点(右下点)的第2象限(即左上)区域障碍物特征点X坐标。大于则返回值为ture,操作可行,按照绘制算法重新绘制硬件模型和连线;不大于,函数跳入判断Y坐标函数,变化特征点的Y坐标是否小于在定点(右下点)的第2象限(即左上)区域障碍物特征点Y坐标。小于则返回值为true,操作可行,按照绘制算法重新绘制硬件模型和连线,不小于,则再次判断对角点(右下点)的X坐标是否小于在定点(右下点)的第2象限(即左上)区域障碍物特征点X坐标。小于则返回值为true,操作可行,按照绘制算法重新绘制硬件模型和连线;不小于,函数跳入判断Y坐标函数,变化特征点的Y坐标是否大于在定点(右下点)的第2象限(即左上)区域障碍物特征点Y坐标。大于则返回值为ture,操作可行,按照绘制算法重新绘制硬件模型和连线,不大于,返回值为false,操作失败,返回初值。与缩放算法类似,因为可能存在跨越可行性,要进行两个特征点的两次判断。当移动位置是右上、左下、右下时,函数流程基本相似,只是判断大小的函数载入顺序不同。(以下以2个模块为例.其中坐标前一位是模块号,后一位1表示左上点,2表示右下点)由算法分析得出表1所示结果。由表1可知,只有当X组位置坐标大小关系和Y组位置坐标大小关系都不相同时位置才重叠。
6.2 芯片间连线变形算法
完成对象起点和终点的连线。要求连线不重合,不穿越芯片,尽可能美观,芯片位置参数变化时线条绘制更新等。
连线变形算法的详细描述如图3所示。(DrawLine()表示连线方法,GerPointx()表示获得x轴方向的方法,GetPointy()表示获得Y轴方向的方法)。连线效果图如图4所示。
7 结语
虚拟接口试验平台已实现对8086汇编语言和MCS一51指令系统的仿真模拟解释,同时模拟出8053和8255接口芯片的部分功能,几个重要算法的实现在测试过程中体现出良好的时间与空间性能。由于虚拟接口实验室平台还处于实验性研究阶段,对接口编程语言的解释执行功能比较完善,且可解释的语言种类还比较单一,应丰富可解释语言的种类,同时虚拟芯片库的内容还需大量扩充,达到种类齐全的所有接口芯片的模拟。