2008-11-26 57 views
4

我已經創建了一個工作流程/流程圖樣式設計器。目前,它正在使用相對簡單的貝塞爾曲線來連接工作流程中「塊」的各個端點。.NET庫繪製避免障礙的路由線

但是我希望對用戶更直觀一些。我希望線條避免像其他塊(矩形)和其他可能的線條一樣的障礙物。

我更喜歡貝塞爾曲線而不是折線,因爲它們更漂亮,看起來更適合於一般的設計師。但如果他們很難完成,我們願意妥協。

我知道背後有一大堆科學。我研究過Graphviz,Microsoft的GLEE和他們的商業AGL(自動圖形佈局)庫。

GLEE似乎幾乎不值得生產。而他們的商業替代品就是一種商業替代品......它相當昂貴。

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

我看到了Windows Workflow Foundation爲其「自由形式設計器」使用的折線實現。這只是工作,但它不是真正的生產級外觀。

我很驚訝有沒有這種類型的東西plug'n'play .NET庫?例如:

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

+0

這幾乎聽起來是NP-complete ... :) http://xkcd.com/287/ – Rob 2008-11-26 09:42:04

+0

@Rob我相信它實際上同構於旅行推銷員的問題。我可以想象xkcd角色所提供的論文是關於模擬退火的,如果你有很多線需要處理,這可能是值得考慮的。我相信這就是PCB路由軟件的工作原理,例如,這本質上是同一個問題。 – Jules 2016-04-17 19:50:23

回答

1

我還沒試過(雖然我是Gantt產品的開心客戶),但ILOG有一個類似的工具here

quote

的ILOG框圖.NET算法 共享通用的目標,如:

  • 最小化重疊 節點
  • 最小化鏈路 交叉的數目的數目
  • 最小化總面積 繪圖
  • 最小化數量的彎曲的 (在正交附圖)
  • 最大化最小角度形成 通過連續事件鏈接
  • 最大化對稱性
  • 支持增量佈局的顯示, 局部佈局,子圖, 鷹鏈接和嵌套佈局

也許值得一試,至少。

+0

似乎現在在Github上(https://github.com/dalssoft/diagramnet) – 2016-06-18 18:31:56

1

Diagram.NET是一個免費的C#開源圖表庫。它在一段時間內還沒有更新,但它確實值得一看 - 有些東西可以重用。

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

1

您僅限於託管代碼?

我沒有這個限制和過去和有效集成GraphViz與.Net。我們所做的是調用包含本地編譯的「點」的外部進程,並將結果解析爲.Net對象模型。它工作完美,足夠滿足我們的需求。

我相信你今天可以用C++/CLI做得更好更簡單。