我有一個包含18個頂點和很多邊的圖。由於所涉及的元素數量及其結構,可用的內置算法(即,用於所示圖像的mxHierarchicalLayout)未按預期工作,導致大部分描述的邊緣重疊,如圖所示 Current status sample。JGraphX:重新定位頂點上的邊緣終端
做一些測試和檢查的源代碼,我設法改變的邊緣只有幾件事情線槽mxCell的幾何形狀:
- 邊緣拉布勒
- 控制點
然而我找不到任何方式來操縱源和目標終端的點。任何人都可以建議我使用適當的類別/方法來控制終端應該連接的位置。
任何幫助/信息將不勝感激。
我設法測試操縱邊緣上的代碼如下:
..
Arrays.asList(edges).stream().map(edge -> (mxCell) edge).forEach(edge -> {
mxGeometry newGeo = (mxGeometry) edge.getGeometry().clone();
// TODO calculate condition
// This code actually move the label from the default
// position
mxPoint offset = new mxPoint(edge.getGeometry().getPoint().getX() + EDGE_OFFSET,
edge.getGeometry().getPoint().getY() + EDGE_OFFSET);
newGeo.setOffset(offset);
newGeo.setX(newGeo.getX() + 1);
if (newGeo.getPoints() != null) {
newGeo.getPoints().forEach(point -> {
point.setX(point.getX() + 200);
point.setY(point.getY() + 200);
});
}
model.setGeometry(edge,newGeo);
});
感謝和問候