KeyNotFoundException with MDS layout
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 38/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- csharp
- Ambito
- computer-graphics
Direzione di ricerca
Riproduci l'eccezione in GraphLayout/Samples/WpfApplicationSample/WpfApplicationSample.cs usando MdsLayoutSettings e la configurazione del sottografo mostrata. Inizia dalla costruzione di SimpleIntEdge, dove vengono consultati nodeIndex[e.Source] e nodeIndex[e.Target], quindi segui il modo in cui il layout MDS costruisce nodeIndex e gestisce subgraph2. Il lavoro è completato quando l'esempio non genera più KeyNotFoundException per questo layout.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi Lev,
I tried to modify WpfAplicationSample to show MDS layout, and it throws KeyNotFoundException.
Here are my modifications:
diff --git a/GraphLayout/Samples/WpfApplicationSample/WpfApplicationSample.cs b/GraphLayout/Samples/WpfApplicationSample/WpfApplicationSample.cs
index 5a6e6dd..f16ec58 100644
--- a/GraphLayout/Samples/WpfApplicationSample/WpfApplicationSample.cs
+++ b/GraphLayout/Samples/WpfApplicationSample/WpfApplicationSample.cs
@@ -291,6 +291,7 @@ namespace WpfApplicationSample
// //graph.LayoutAlgorithmSettings.EdgeRoutingSettings.EdgeRoutingMode = EdgeRoutingMode.SplineBundling;
// //layout the graph and draw it
Graph graph = new Graph();
+ graph.LayoutAlgorithmSettings=new Microsoft.Msagl.Layout.MDS.MdsLayoutSettings();
graph.AddEdge("47", "58");
graph.AddEdge("70", "71");
@@ -315,11 +316,11 @@ namespace WpfApplicationSample
graph.Attr.LayerDirection = LayerDirection.LR;
//graph.LayoutAlgorithmSettings.EdgeRoutingSettings.EdgeRoutingMode = EdgeRoutingMode.Rectilinear;
- var global = (SugiyamaLayoutSettings) graph.LayoutAlgorithmSettings;
- var local = (SugiyamaLayoutSettings) global.Clone();
- local.Transformation = PlaneTransformation.Rotation(-Math.PI / 2);
+ var global = (Microsoft.Msagl.Layout.MDS.MdsLayoutSettings) graph.LayoutAlgorithmSettings;
+ var local = (Microsoft.Msagl.Layout.MDS.MdsLayoutSettings) global.Clone();
+ //local.Transformation = PlaneTransformation.Rotation(-Math.PI / 2);
subgraph2.LayoutSettings = local; // for Collapsing\Expanding
- global.ClusterSettings.Add(subgraph2, local);
+ //global.ClusterSettings.Add(subgraph2, local);
graphViewer.Graph = graph;
}
The line, which throws exception is:
intEdges.Add(new SimpleIntEdge {Source = nodeIndex[e.Source], Target = nodeIndex[e.Target]});
Checking with debugger, I can see that subgraph2 is missing from nodeIndex dictionary.

I have no idea why it happens specifically with MDS, but doesn't happen with Sugiyama.
Am I doing something wrong, or is there a bug in MDS layout algorithm?
Here's the screenshot of the exception being thrown:

- Lingua principale
- C#
- Stelle
- 1.5k
- Fork
- 317
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/automatic-graph-layout
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 64/100
microsoft/automatic-graph-layout#395 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
-
Issue with framework reference in the GraphViewerGDI.nuspecForse di nuovo libera @levnach l’ha presa 262 giorni fa e non c’è nessuna pull request aperta. Aperta
microsoft/automatic-graph-layout#390 · 6 commenti · 2 reazioni · 2 assegnatari ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
microsoft/automatic-graph-layout#389 · 1 commento · 1 reazione ·
Tutte le issue di microsoft/automatic-graph-layout
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
activescott/lessmsi#306 ·
-
Python: Bug: split_plaintext_paragraph / split_markdown_paragraph can return a chunk larger than max_tokensForse già presa @xThreeh l’ha presa oggi. Apertapython triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
microsoft/semantic-kernel#14566 ·
I maintainer di solito rispondono entro 4 giorni
-
triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
rjmurillo/moq.analyzers#1384 ·
-
Variables passed to Compensated are not set on the routing slipForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
MassTransit/MassTransit#6249 ·
-
security
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Sendspin/sendspin-dotnet#339 ·
I maintainer di solito rispondono entro 1 giorno