1

小さな C++ ネットワーク アプリケーションを作成しました。パケット交換をファイルに出力します。出力は次のようになります。

From..to..message
1 2 "hi"
2 3 "hi"
3 2 "hi back"
2 1 "hi back"

したがって、最初のフィールドは送信元、2 番目のフィールドは宛先、3 番目のフィールドはメッセージです。合計 10 個のノードがあり、すべてが 1 行 (0...1...2...etc...9) に表示され、各出力行は連続するノード間のメッセージに対応します。

私の問題は、出力が大きくなるにつれて、出力が読みにくくなることです。すべてのノードがGUIに表示されるように、その出力から読み取り、それから小さなGUIアプリケーションを作成する非常に小さなアプリケーション(たとえば、Javaまたはqtで、実装するのに必要な行が少ない方)が必要ですウィンドウ (0 から 9 まで、等間隔で丸で囲んだもの) を開き、右矢印 (前方) または左矢印 (後方) を押すたびに、出力から 1 行を読み取り、ソースから宛先への矢印を表示します。その矢印の上にメッセージが表示されます。だから、このようなもの:

              hi
0     1     2---->3     4     5     6     7     8     9 

私は GUI の説明に関する他の提案を受け入れています。私はまったくグラフィック デザイナーではありません。私が知っているのは、出力を解釈しやすくする GUI が欲しいということだけです。解析が容易になる場合は、出力構造を別のものに変更することもできます。

4

1 に答える 1

2

GraphVizを試すことができます。

次のようなものを生成するには

        hi
1     2---->3     4     5     6     7     8     9 

プレーン テキスト ファイルを生成する必要があります。

digraph G {
    { rank = same; 1; 2; 3; 4; 5; 6; 7; 8; 9; };
    2 -> 3 [label="hi"];
}

次に、 を呼び出すdot -Tpng <text file name> -o <output image file name>と、次のような画像を取得できます。

例図

アニメーションにするには、出力形式を as に変更しgif、他のツールを使用してアニメーション GIF を作成する必要がある場合があります。

于 2012-08-02T09:29:28.733 に答える