一个工业控制管道流动控件的实现

http://tech.ddvip.com   2008年03月27日    社区交流

内容摘要:开发工控软件很重要的一个部分就是图形系统。很多组态系统提供了丰富的图形组态功能,能够通过他们提供的图形库完成各种复杂的图形开发,而且效果非常好。比如表记,LED,趋势,流动控件等。

  首先是管道,管道简单考虑就是横和竖两种(至于您有时间可以考虑那些七七八八转弯的情况),那么我们这里可以把管道定义成两种模式

typedef enum _FlowPattern
{
  FP_HORIZONTAL = 0,
  FP_VERTICAL  = 1
}FLOWPATTERN;
  然后是里面的水流的流动方向,横向的可以为由左向右和由右向左,竖向的可以分为由上向下和右下向上,这样我们就可以抽象里面的流动方向:typedef enum _DirectionType
{
  LEFT_TO_RIGHT = 0,
  RIGHT_TO_LEFT = 1,
  TOP_TO_BOTTOM = 2,
  BOTTOM_TO_TOP = 3
}DIRECTIONTYPE;

  下面就是管道的绘制了,如何绘制才能达到视觉上的管道效果呢。如果是一个平面矩形是不能看起来视觉效果的管道的。参考了网络上面的一些渐变的处理方法后发现,其实我们的管道可以用这个方法来实现。如果管道的边和中央用两种不同的颜色,这两种颜色为一种颜色近似的值,一种深,一种浅。当颜色处理由边向中央绘制采用的方法为:浅—深—浅时,这样我们可以产生视觉效果的管道的凹表面,反过来则能够产生管道的凸表面。现在网络上面如何进行渐变绘图的方法实例很多,这个是没有问题的。

  然后就是我们要考虑的流动的设计了。在我们平常见到过的一些流动控件中(收费控件)流动的形状可以为多种,有的是矩形,有的是小三角形等。而流动的表现就是在管道的中间绘制一些我们上面举例的小图形等。这样,我们为这些单个的小图形设计一个功能类,然后在类中间实现不同的单个小滑块进行绘制,如果我们的管道有N个这样的小滑块组成,如果我们进行动态的绘制小滑块,那么不就会产生视觉上的滑动了。

来源:vckbase    作者:戚高    责编:豆豆技术应用

正在加载评论...