Hello,
I'm contacting to you regarding the RadDiagram in WinForms. Currently I have an issue with the layout by using the AStartRouter (see attached picture). Please find below the code used to setup the router:
this.diagram.RoutingService.Router = new Telerik.Windows.Diagrams.Core.AStarRouter(this.diagram.DiagramElement)
{
AvoidShapes = true,
WallOptimization = true
};
this.diagram.RoutingService.AutoUpdate = true;
this.diagram.RouteConnections = true;
Thanks for your help.
Regards
Hello, Ramel,
I have followed the described steps and obtained the illustrated result from your screenshot. The AStarRouter uses a version of the A* search algorithm to find the best route between two points. However, it seems that it doesn't choose the most optimal route between two shapes when you move a RadDiagramShape.
I have logged it in our feedback portal by making this thread public. You can track its progress, subscribe for status changes and add your comments on the following link - feedback item. A sample project is attached which incorrect behavior is illustrated in the gif file.
I have also updated your Telerik points.
Currently, the possible improvement in the router that I can suggest is to increase the DiagramConstants.RouterInflationValue to 30 which controls the size of the restricted area around the shapes. In addition, set the DiagramConstants.RoutingGridSize property to 20 - a smaller value will increase the time to compute the optimal path and increase the set of possible solutions for the path constraints. On the other hand, a small value leads usually to a lot of stairs/wiggling in the connection's path.
public RadForm1()
{
DiagramConstants.RouterInflationValue = 30;
DiagramConstants.RoutingGridSize = 20;
InitializeComponent();
this.radDiagram1.RoutingService.Router = new Telerik.Windows.Diagrams.Core.AStarRouter(this.radDiagram1.DiagramElement)
{
AvoidShapes = true,
WallOptimization = true,
};
this.radDiagram1.RoutingService.AutoUpdate = true;
this.radDiagram1.RouteConnections = true;
foreach (RadDiagramConnection c in this.radDiagram1.Connections)
{
c.SourceConnectorPosition = "Auto";
c.TargetConnectorPosition = "Auto";
}
}
Should you have further questions please let me know.
Regards,
Dess | Tech Support Engineer, Sr.
Progress Telerik
Hi,
You right, if I change the zoom in the shown event, the layout is correctly loaded.
But, when I start the application, if change the zoom in the application and move some of shapes, the issue always appear (see attached picture).
Regards
Jordan GAROCHE
Hello, Ramel,
Indeed, if I set the Zoom property to 1.5 immediately after specifying the AStarRouter, the connections in RadDiagram are not properly positioned. However, have in mind that the layout (affected by the AStarRouter) is not performed completely in the form's constructor yet. The appropriate place to change the zoom level is the form's Shown event. Thus, the AStarRouter algorithm will be performed and the connections will be optimized and you can zoom the diagram:
public RadForm1()
{
InitializeComponent();
this.radDiagram1.RoutingService.Router = new Telerik.Windows.Diagrams.Core.AStarRouter(this.radDiagram1.DiagramElement)
{
AvoidShapes = true,
WallOptimization = true
};
this.radDiagram1.RoutingService.AutoUpdate = true;
this.radDiagram1.RouteConnections = true;
}
private void RadForm1_Shown(object sender, EventArgs e)
{
this.radDiagram1.Zoom = 1.5;
}
Regards,
Dess | Tech Support Engineer, Sr.
Progress Telerik
Hi,
Thanks for your reply.
After investigation, the issue appear when you change the zoom. In your sample project, add the following line when initializing the radDiagram :
this.radDiagram1.Zoom = 1.5;
Now run the sample project and you will have the issue without do anything (see attached picture).
Regards
Jordan
Hello, Ramel,
Following the provided information, I have prepared a sample project for testing the described case. It seems that the connections overlapping is significantly improved on my end:
I have attached my sample project. Feel free to modify it in a way to reproduce the experienced issue and get back to me with it so I can investigate the precise case. Thank you in advance.
I am looking forward to your reply.
Regards,
Dess | Tech Support Engineer, Sr.
Progress Telerik