我非常努力的事情在這裏問:節點圖形編輯器佈局算法
http://www.qtcentre.org/threads/45028-Designing-a-Node-Editor-(Hint-Blender-Node-Editor)
這基本上是使用Qt攪拌機式的節點編輯器。使用可拖放的圓創建矩形很容易理解(參見下圖)。
我遇到的問題是連接節點之間的圓圈的算法是如何工作的。此外,我不知道如何有效地使用QGraphicsItem API的繪製?我看過QPainter :: cubicTo(),看起來可能是要走的路嗎?
我認爲它設法找到一個沒有重疊的路徑?但它也必須處理它必須重疊的情況?
那麼如果算法做得不好,用戶能夠移動這些行呢?我不認爲使用QPainter :: cubicTo()實現這一點很簡單,因爲您只能移動曲線控制點?
我猜攪拌機只是_assumes_沒有重疊,且用戶負責人認爲。 –
即便如此,我想知道一個算法,它將盡最大努力不重疊。儘管這不是真的,但是例如在上面的圖像中,將左側的圖像連接到右側的圖像,它不會「穿過」中間節點,它會繞過它。 – paulm
路由算法並不容易,最好留給人類。您可以爲此創建一個接口,以便邊緣由多個立方體組成,並且用戶執行路由。 –