4

我为某事创建了一个工作流/流程图样式设计器。目前它正在使用相对简单的贝塞尔曲线来连接工作流中“块”的各个端点。

但是,我希望对用户来说更直观一些。我希望线条能够避开障碍物,例如其他块(矩形)以及可能的其他线条。

我更喜欢贝塞尔样条曲线而不是折线,因为它们更漂亮,并且似乎更适合设计师。但如果它们更难完成,我愿意妥协。

我知道这背后有一大堆科学。我研究了诸如 Graphviz、微软的 GLEE 和他们的商业 AGL(自动图形布局)库之类的东西。

GLEE 似乎几乎没有生产价值。他们的商业替代品是,嗯,商业替代品……它相当昂贵。

Graphviz 似乎没有以任何方式移植到 .NET。

我已经看到了 Windows Workflow Foundation 为其“自由形式设计器”使用的折线实现。这行得通,只是,但它并不是真正的生产级外观。

我很惊讶这种类型的东西没有一些即插即用的 .NET 库?就像是:

Point[] RoutePolyline(Point begin, Point end, Rectangle[] rectObstacles, Point[] lineObstacles);

4

3 回答 3

1

Are you limited to managed code only?

I did not have this restriction and the past and effectively integrated GraphViz with .Net. What we did was call an external process containing the natively compiled "dot" and parse the result in a .Net object model. It worked perfectly and was fast enough for our needs.

I'm sure you could do better and easier with C++/CLI today.

于 2008-11-27T19:24:51.153 回答
1

我还没有尝试过(虽然我是他们甘特图产品的满意客户),但 ILOG 有一个类似的工具在这里

引用:_

.NET 算法的 ILOG 图共享通用目标,例如:

  • 最小化重叠节点的数量
  • 最小化链接交叉的数量
  • 最小化绘图的总面积
  • 最小化折弯数量(在正交图中)
  • 最大化由连续入射链接形成的最小角度
  • 最大化显示对称性
  • 支持增量布局、部分布局、子图、intergraph 链接和嵌套布局

至少,也许值得一看。

于 2008-11-26T09:49:46.273 回答
1

Diagram.NET 是一个免费的开源 C# 图表库。它已经有一段时间没有更新了,但它确实值得一看——那里可能有一些你可以重复使用的东西。

http://www.dalssoft.com/diagram/

于 2008-11-26T10:09:47.810 回答