2

背景信息/布局

我正在尝试将径向树显示为 UI 的一部分。树的数据是静态的,通常有几千个节点。就其本身而言,仅仅绘制它并不是什么大不了的事——我已经可以根据我对 GTK 和 Cairo 的了解来处理它。

我的问题是我想要一个面板,在背景图像顶部显示树,并允许用户放大和缩小并进行交互(单击节点以获取信息)。

这是一张非常粗略的图片,显示了我的应用程序的布局。黄色区域是我想要树的地方。布局样机 .

这是树形显示,共四层。整个事情需要是可缩放的(包括背景图像)。树显示层 .

  1. 突出显示感兴趣的节点(选定的节点,或与用户查询匹配的节点)和它们之间的路径。
  2. 树中的节点。我打算让这些是可点击的。
  3. 放射状树的年轮。
  4. 背景图像。

我可以做什么:

  • 渲染背景图像。
  • 画出树的年轮。
  • 绘制树的节点。
  • 围绕节点和它们之间的路径绘制高光。

我想做的事:

  • 使整个事物可缩放。
  • 使节点(当前或图像)可点击。

我尝试过使用像素缓冲区来重新缩放背景图像。只要它只是背景图像,它就很实用(但不是很优雅),尽管我对结果并不十分自豪。然而,当谈到使节点可点击和整个事物可缩放时,我有点迷失了。尤其是后半部分。

我一直在使用 Mono 和 Linux 上 GTK 的 C# 绑定。如果这会使它变得更容易,我愿意更改 GUI 工具包,但前提是它确实使它变得更容易。考虑到树的大小(1000 < N < 10000,其中 N 是树中的节点数),缩放时的性能可能是一个问题,但这不像我要处理数百万个节点或任何东西。

4

0 回答 0