我为某事创建了一个工作流/流程图样式设计器。目前它正在使用相对简单的贝塞尔曲线来连接工作流中“块”的各个端点。
但是,我希望对用户来说更直观一些。我希望线条能够避开障碍物,例如其他块(矩形)以及可能的其他线条。
我更喜欢贝塞尔样条曲线而不是折线,因为它们更漂亮,并且似乎更适合设计师。但如果它们更难完成,我愿意妥协。
我知道这背后有一大堆科学。我研究了诸如 Graphviz、微软的 GLEE 和他们的商业 AGL(自动图形布局)库之类的东西。
GLEE 似乎几乎没有生产价值。他们的商业替代品是,嗯,商业替代品……它相当昂贵。
Graphviz 似乎没有以任何方式移植到 .NET。
我已经看到了 Windows Workflow Foundation 为其“自由形式设计器”使用的折线实现。这行得通,只是,但它并不是真正的生产级外观。
我很惊讶这种类型的东西没有一些即插即用的 .NET 库?就像是:
Point[] RoutePolyline(Point begin, Point end, Rectangle[] rectObstacles, Point[] lineObstacles);