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