I am analyzing a large amount of Layers 0-4 Network Data. I am trying to render diagrams dynamically showing the Network Devices involved in the data (Desktop, Switch, Router, Server, etc.) and how they speak to each other (lines connecting them indicating a data flow). I have a pretty good heuristics from that data on where to place the devices in the diagrams (ARP, Gateways, etc.). My main issue is getting the lines that connect them to stop looking like spaghetti. PCB CAD programs seem to have and solve this issue, but also have to deal with other issues (length/impedance matching, N-layers, etc.).
I was wondering if there was an algorithm that just did the initial part of PCB Trace layout, specifically:
Given
- a 2D space
- the graphical location of nodes
- requests to connect some of the nodes together with lines
Generate line paths that
- limit the number of crossovers
- Minimize the length of a crossover when they occur
- (not critical) Allow for 90 degree turns to be replaced with two 45 turns (the PCB trace look)