彩票走势图

流程图控件FlowChart.NET使用教程:指定布局算法

原创|使用教程|编辑:郝浩|2013-05-15 14:48:56.000|阅读 1712 次

概述:FlowChart.NET现在更名为MindFusion.Diagramming for WinForms,这个是一个通用的流程图控件,提供了用于创建或编辑图表的直观的用户交互模型。本文将主要关注如何指定布局算法。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

    指定算法是模拟图中的对象之间的作用力和反复运行的物理模拟,将会拉近对象,或是将它们分开。在每次迭代时,与模拟系统相关联的能量减少,并且通过该方法计算出的节点位,使得节点均匀的分布和链路长度均匀。今天就来看看这个Spring-Embedder图形布局和网格图布局。

Spring-Embedder图形布局

     Spring-Embedder是力导向布局算法。主要是模拟节点相互排斥的物理系统,节点之间的联系就会作为confining springs。通过Spring-Embedder处理图表,节点将会均匀分布在图面积上。该算法可以通过创建一个springlayout对象并调用Arrange方法来应用在图像上。springlayout成员允许你设置图的节点间的距离,以及以及在计算节点位置时设置将要使用的迭代步数。

    您也可以指定最小化链接通过,如果你选择这项的话,算法将会用更多的迭代步骤产生更好的结果。但是如果指定了多个步骤,就需要更多的时间来完成。在VB.NET 、 C#、Spring-Embedder 布局中可以像下面这样应用:

C#

using MindFusion.Diagramming;
using MindFusion.Diagramming.Layout;

...

private void button1_Click(object sender, EventArgs e)
{
    SpringLayout sl = new SpringLayout();
    sl.IterationCount = 500;
    sl.NodeDistance = 30;
    sl.Arrange(diagram);
}

Visual Basic

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim sl As New SpringLayout()
    sl.IterationCount = 500
    sl.NodeDistance = 30
    sl.Arrange(diagram)

End Sub

网格图布局

    网格布局算法在网格中的图表节点中,将节点连接在一起。力图实现少数量的链接通过。它是基于一个迭代过程,初始步骤将会随机混乱网格节点,所以在每次算法之后,就会有不同的结果。

    运用这个布局创建一个实例,设置其成员和调用安排方法,网格布局可以像下面这样运用:

C#

using MindFusion.Diagramming;
using MindFusion.Diagramming.Layout;

...

private void button1_Click(object sender, EventArgs e)
{
    GridLayout gl = new GridLayout();
    gl.GridSize = 75;
    gl.Arrange(diagram);
}

Visual Basic

Imports MindFusion.Diagramming
Imports MindFusion.Diagramming.Layout

...

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim gl As New GridLayout()
    gl.GridSize = 75
    gl.Arrange(diagram)

End Sub

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都控件

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP