我使用 JUNG 2.0 直观地渲染有向无环图,并添加了自定义 EdgeRenderer 来以各种颜色渲染边缘。实际的边缘是通过调用 RenderContext
对象上的 drawLine()
和 drawPolyline()
方法来绘制的。
一切都按预期进行,除了当我手动滚动添加了 VisualizationViewer
对象的 GraphZoomScrollPane
时:然后顶点按预期滚动,但边缘线保持不变恰好在屏幕上的同一位置。也就是说:
This is what happens when I scroll
如何让边缘真正滚动?
(如果有帮助的话,使用 CrossoverScalingControl
进行缩放效果非常好,并且边缘在正确的位置变大变小。)
最佳答案
听起来您正在错误的坐标空间中绘制边缘。有两种坐标系:布局坐标和渲染坐标。您需要确保在正确的上下文中使用正确的坐标系(特别是,您对顶点使用与边缘相同的坐标系)。
如果您可以在问题中提供更多有关如何实际调用draw*Line()的上下文,以及它与JUNG的做法有何不同,那么可能会更容易准确地确定您需要什么修复。
关于java - 在 JUNG 中滚动时如何移动图形边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42634395/