Chinaunix首页 | 论坛 | 博客
  • 博客访问: 150565
  • 博文数量: 75
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 749
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-19 11:38
文章分类
文章存档

2014年(38)

2013年(37)

我的朋友

分类: Windows平台

2014-01-08 15:26:00

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

Spring-Embedder图形布局

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

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

C#

1
2
3
4
5
6
7
8
9
10
11
12
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

1
2
3
4
5
6
7
8
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

网格图布局

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


阅读(1016) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~