65

私の娘たちは、三目並べに似たゲームを作りました。もちろん、彼らと一緒に遊んでいるうちに、頭の中で総当たり攻撃を始めました...

そこで、ランチタイムに、ゲームを「解く」ための簡単な Python スクリプトを作成しました。結果をグラフで確認したかったので、すべての正当な動きのドット ファイルを生成しました。

ここにデータを貼り付けました

を使用してレンダリングしようとするとdot、永遠に時間がかかり、数時間後に中止します。

neatoまたはなどを使用してレンダリングするとsfdp、数秒以内で済みますが、レイアウトを実際に読み取ることはできません。

sfdp -x -Tpng data.dot > data.png

sfdp

neato -x -Tpng data.dot > data.png

ニート

結果の画像が数メガピクセルになるとうれしいです。

このような大きなグラフをどのようにレイアウトしてレンダリングできますか? レイアウトもできるPythonライブラリなど、ドット以外の提案も受け付けています。

一部関連リンク

追加:ゲームを解決してドット ファイルを生成するPython スクリプト

4

4 に答える 4

55

これを試して:

sfdp -x -Goverlap=scale -Tpng data.dot > data.png

-Goverlapレイアウトを保持しますが、ノードのオーバーラップがなくなるまで均一に拡大します。ズームアウトすると、このように見える ~77MB の PNG を取得できました。 ここに画像の説明を入力

于 2012-11-16T16:50:51.880 に答える
10

引き続き neato を使用できますが、.dot ファイルを次のように変更できます: [splines=true overload=false]

ファイルは次のようになります。

digraph luffarschack {
    graph [splines=true overlap=false];
    node [shape=none]; 
        ...here your nodes;
        ...here your edges;
}

2 行目に「graph [splines=true overlay=false]」を入力するだけで、他のすべてが同じままである場合に機能するはずです。

于 2014-07-03T19:24:33.020 に答える