集成Delphi和MathImage实现弹药装载效果可视化

时间:2022-07-20 10:01:16

(武警工程学院,陕西 西安 710086)

摘要:该文论述了当今流行的可视化工具Delphi如何与组件式MathImage软件相结合,以实现对弹药装载效果的可视化表示。

关键词:Delphi;Mathimage;弹药装载

中图分类号:TP3文献标识码:A文章编号:1009-3044(2009)28-8060-02

Integration of Delphi and the Realization of Ammunition loaded MathImage Visual Effects

CUI Ying

(People's Armed Police Engineering College, Xi'an 710086,China)

Abstract:This paper discusses the visualization tools of today's popular Delphi Component MathImage software how to combine in order to achieve load of ammunition effects of visual representation.

Key words:Delphi; mathimage; ammunition load

当今世界,可视化信息管理是信息系统开发的一个重要的发展方向,它改变了信息管理的现有模式,使管理者以直观的可视化方式,方便、简捷、清楚地把握信息管理过程,并提供辅助决策支持,使得用户管理、决策活动变得轻松方便。装备保障部(分)队以汽车、火车、飞机和轮船等运输工具装载物资时,会遇到各种各样的问题,其中如何在满足安全牢固、限高和限重的条件下,使物资堆放、装载的数量最多这一优化问题,随着人们追求军事经济效益意识的提高逐渐引起人们的重视。

笔者从箱装弹药装载方案的可视化设计方面进行了初步的探讨。本文是对Delphi7.0与Mathimage集成开发方法的创新性尝试,详细说明了应用Mathimage实现对弹药箱装载情况的可视化表达的方法。

1 系统开发方式及工具软件简介

Delphi是Borland公司面向对象的可视化软件开发工具。具有非常强大的功能,可以快速、高效地开发出基于Windows环境下的各类程序,尤其是在界面设计、数据库编程等方面具有独到之处。在Delphi中,专门定义了一组用于绘制图形的对象和组件,完成一些简单的图像功能。利用这些对象、组件的方法,可以方便地绘制各种常用图形;通过设置它们的属性,能得到不同风格的图形。

Mathimage是用于辅助显示数学图像的控件。原产生于TImage控件,后又由TgraphicControl衍生而来,具有较好的控制能力和较高的绘制速度。主要功能包括:二维、三维图形的绘制,画笔对象,用以填充图形颜色的画刷对象,以及实现图形和动画显示的图形变换等。提供:①常用操作(放大、缩小、旋转、移动 );②数据绑定;③专题绘图;④空间分析;⑤查询分析等功能。

因此,有机的结合这两种工具,充分发挥各自的优势,进行弹药装载方案的可视化显示是可行的。设计中以Delphi作为开发平台,把 Mathimage作为控件嵌人其中,以SQL Sever作为存储非空间数据属性的数据库来进行该模块的实现。

2 Delphi 和 MathImage的实例应用

2.1 加载绘图要素数据

通过弹药优化装载模块计算出任务各方案每辆车的装载方案,形成配载方案装法表存储于数据库中,包括每辆车序号,车上所装物资代码,物资坐标以及方位。遇过单车配载序号从配载方案描述表中查询主键进行匹配,将得到的唯一记录中的运载工具识别码取出从运载工具基本表中查询主键进行匹配,就可得到运载工具名称和内长、内宽、内高,为运载工具的绘制准备数据;通过待运物资识别码从物资基本表中查询主键进行匹配,可得到物资名称和长、宽、高,再结合配载方案装法表中的物资左下角坐标和物资方位为物资的绘制准备数据。(如表1)

2.2 坐标系的建立

在进行仿真前先要建立坐标系,设置绘图空间边长为10的立方体,进而建立坐标系,以立方体的左下角顶点为原点,取x的负向与行驶方向,y的正向为右与行驶方向垂直,z的正向向上。xy平面是运输工具的水平装载平面。弹药箱长边与x轴平行为顺装,与y轴平行为横装。(如图1)

假设要查看任务名称为Task1,优化装载方案名称为Method1,单车配载序号为12的车上装载情况。根据单车配载序号12可从数据库多个相互关联的表中查出这种运载工具的信息及上面所装载的各种物资的名称、左下角顶点的坐标和长、宽、高。

根据单车配载序号12可查询语句从数据库的表中查出使用的运载工具是解放CA141载重车,其内长4.7m,内宽2.37m,内高0.92m,然后画出运载工具,实现代码如下:

Mathimage1.d3SetWorld(0,0,0,10,10,10);//设置显示图形的空间范围

Mathimage1.pen.Color:=clblue;//指定画笔颜色为蓝色

Marhimage1.pen.Width:=3; //指定画笔宽度为3

Mathimage1.d3drawBox(0,0,0,Vlength,Vwidth,Vhigth);

//画出车厢,Vlength,Vwidth,Vhigth分别代表车的长、宽、高

然后根据已经计算好的弹药装载表12中的物资信息逐个画出车内物资,最终呈现装载效果图,实现代码:

For i:=1 to AdoQuery_AmmoBox.RecordCount do

// AdoQuery_AmmoBox.RecordCount表示车上的弹药箱数

Begin

Mathimage1.pen.Color:=clgreen; //设置画笔颜色为绿色

Mathimage1.pen.Width:=1; //设置画笔宽度为1

If AdoQuery_AmmoBox[‘装载方式’]=’1’ then//顺装(横装为0)

Begin

Bx:=AdoQuery_Box.fieldbuname(‘长’).asfloat+AdoQuery_AmmoBox[‘物资坐标x’];

By:=AdoQuery_Box.fieldbuname(‘宽’).asfloat+AdoQuery_AmmoBox[‘物资坐标y’];

Bz:=AdoQuery_Box.fieldbuname(‘高’).asfloat+AdoQuery_AmmoBox[‘物资坐标z’];

//计算物资右上角的坐标,坐标分别为左下角的坐标x,y,z加上物资的长、宽、高

Mathimage1.d3drawBox(AdoQuery_AmmoBox[‘物资坐标x’],

AdoQuery_AmmoBox[‘物资坐标y’],

AdoQuery_AmmoBox[‘物资坐标z’],Bx,By,Bz);

//依照位置和尺寸画出弹药箱

End;

AdoQuery_AmmoBox.Next; //画下一个弹药箱

End;

2.3 实现的流程

图2为流程图。

3 结束语

目前,Mathimage在Delphi中的嵌入式编程尚未形成一种模型。但笔者认为 Mathimage和Delphi具备成为一种编程模型的条件。故而将这一概念应用到了弹药装载可视化的实践中,体现了如下意义:

1)实现弹药装载的可视化管理

将该装载可视化模块运用于军械保障辅助决策系统中,可以实现弹药装载方案的可视化,为决策的直观性提供有力的支持。

2)建立良好的工作环境,形成高效的运作体系

为用户创建良好的数据基础、分析工具和评价技术,从而减轻了用户的劳动强度,提高工作质量和效率,改善工作条件,完善管理机制,同时在装备部门和运输部门内形成高效、协同的运作体系。

参考文献:

[1] 谢仕义. 集成Delphi和MapX的数字化系统设计方法[J]. 计算机应用与软件,2003.12.

[2] 谢建华,李培铮.基于 Delphi的 Maplnfo地图集成[J]. 四川测绘,2003.6.

上一篇:AT89C51单片机基于GAL16V8的I/O接口扩展技术 下一篇:基于PCA与LBP的人脸性别分类方法