问题标签 [msagl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
66 浏览

c# - 如何在 MSAGL 中将特定点设置为节点

我正在尝试使用 Microsoft 的 MSAGL 绘制一些图表。这里我有一些节点,但是有没有办法使用点来设置它们的位置?

我需要将多达一百个点放置到这张图片中的特定位置,并让算法来路由所有内容。

例如:

我错过了什么吗?

0 投票
1 回答
93 浏览

c# - MSAGL(WinForms)中断开节点周围的空间

我正在尝试在 MSAGL (WinForms) 版本 1.1.3 中强制未连接节点之间的最小距离。用户从头开始创建图表。这涉及创建节点,以及在节点之间拖动以创建边。但是所有没有任何边缘的节点都会像聚苯乙烯球和羊毛套头衫一样粘在其他节点上。

未连接的节点 - 与其他节点没有距离

我希望所有有或没有边缘的节点都有最小间距。这可能有一个简单的答案,到目前为止我还没有找到。在 GitHub、here 和 Google 上搜索相关材料后,我尝试过但没有成功:

这是图形生成代码(省略了一些声明和其他细节)。我正在使用 MDS 布局:

顺便说一句 - MSAGL 太棒了!用于可视化和编辑状态机的绝佳工具。

0 投票
1 回答
23 浏览

winforms - MSAGL:您能否强制从节点上的固定位置(例如节点的四个主要边界中点)绘制边缘线?

是否可以强制从节点的四个基本边界中点绘制边缘线?即节点边界上的十二点、三点、六点和九点位置,类似于 Visio 或 PowerPoint 中的连接器。

所需输出的草图

0 投票
0 回答
33 浏览

winforms - MSAGL:如何中和 DrawNodeDelegate 中的图形变换,以便所有者绘图始终可以从左上角为 0,0 开始?

我正在使用 aNodeBoundaryDelegate来绘制我的节点。

是否可以中和 DrawNodeDelegate 中的图形变换,以便此所有者绘图始终可以从相关区域的左上角为 0,0 开始?

Msagl.Drawing.Node的坐标系是正-y-is-north。Winforms 是正向的。

在我的图表中(大约 100 个节点,从左到右布置得非常宽),最左边的 Msagl.Drawing.Node 对象通常以 -10,000、-3000 等坐标结束。

g.ClipBounds以 {X = -10019.999 Y = -1716.70862 Width = 9519.998 Height = 3755.74536} 之类的范围结束。

到代码到达DrawNode时,g.Transform 已经在某个(对我来说不直观)非零范围内,例如:

以防万一,我使用NodeBoundaryDelegate将所有节点大小硬编码为 500x50 的固定大小。

0 投票
1 回答
23 浏览

c# - MSAGL:GraphViewerGdi:如何以编程方式重置缩放(或以编程方式按下主页按钮以重置它)?

我想右键单击一个节点以放大该节点,然后再次右键单击以完全重置缩放并平移到其起始状态。此外,我将来可能希望隐藏查看器的内置工具栏并使用热键执行缩小。所以“只需按下现有的主页按钮”不是我用例的解决方案。

我已经使用ShowBBox().

我找不到像 Home 按钮那样以编程方式缩小的方法。

  • 查看器没有ResetZoom(),HomeButtonPressed()或任何我能找到的方法。
  • 设置.ZoomF回 1.0 是不够的,因为它不会同时使平移居中(Pan(0,0)也不会使平移居中。)
  • gvMain.ShowBBox(gvMain.Graph.BoundingBox)不起作用(缩放变化非常轻微,但不是完全重置状态,类似于 Home 按钮。)