我已經創建了一個工作流程/流程圖樣式設計器。目前,它正在使用相對簡單的貝塞爾曲線來連接工作流程中「塊」的各個端點。.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);
這幾乎聽起來是NP-complete ... :) http://xkcd.com/287/ – Rob 2008-11-26 09:42:04
@Rob我相信它實際上同構於旅行推銷員的問題。我可以想象xkcd角色所提供的論文是關於模擬退火的,如果你有很多線需要處理,這可能是值得考慮的。我相信這就是PCB路由軟件的工作原理,例如,這本質上是同一個問題。 – Jules 2016-04-17 19:50:23