0

私はここで尋ねられたことをやろうとしています:

http://www.qtcentre.org/threads/45028-Designing-a-Node-Editor-(ヒント ブレンダー ノード エディター)

これは基本的に、Qt を使用したブレンダー スタイルのノード エディターです。ドラッグ/ドロップできる円で四角形を作成するのはかなり簡単です (下の画像を参照)。

私が抱えている問題は、ノード間の円を接続するアルゴリズムがどのように機能するかです。また、QGraphicsItem API を使用してこれを効率的に描画する方法がわかりませんか? QPainter::cubicTo() を見たことがありますが、これは道のりのように見えますか?

どういうわけか、重複しないパスを見つけることができたと思いますか? しかし、オーバーラップする必要がある場合も処理する必要がありますか?

そして、アルゴリズムがうまくいかなかった場合に、ユーザーがこれらの行を移動できるようにするにはどうすればよいでしょうか? QPainter::cubicTo() を使用してこれを実装するのは簡単ではないと思います。曲線の制御点しか移動できないからです。

ここに画像の説明を入力

4

2 に答える 2

3

ここですべてを実行するためのコードを投稿する人はいないと思います。

ええと、私はボランティアです - 誰かがまだそのようなライブラリを必要としている場合に備えて。

QGraphicsView の上に実装された Qt ベースのノード エディターです。ライブラリ コンシューマはデータ モデルを定義し、残りはノード エディタによって行われます。いくつかの機能:

  • モデル ビュー アプローチ。
  • モデルは、データ型、入力と出力の数、およびオプションの埋め込み QWidget を記述します。
  • シーンをファイルに保存できます。

残りの同様のプロジェクトは、終了していないか、サポートされていないか、いくつかの機能が不足していました.

https://github.com/paceholder/nodeeditor ここに画像の説明を入力

于 2016-09-27T10:13:13.307 に答える
1

オーバーラップを考慮せずに実装することをお勧めしますが、接続線の描画方法をオーバーライドする可能性があります。

Qt フォーラムで良い回答があったようです。ここですべてを実行するためのコードを投稿する人はいないと思います。

おそらく、Qt デモを見てください Graphics View/Elastic Nodes - 出発点として使用できるデモ用のコードがありますが、そこから Blender ノード エディタのようなものに到達するには多くの作業が必要です。

注目すべきもう 1 つのノード エディターは、SynthEdit または Synth Maker (素晴らしいものがあります) です。

于 2012-12-13T12:52:36.443 に答える