问题标签 [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.
c# - 如何在 MSAGL 中将特定点设置为节点
我正在尝试使用 Microsoft 的 MSAGL 绘制一些图表。这里我有一些节点,但是有没有办法使用点来设置它们的位置?
我需要将多达一百个点放置到这张图片中的特定位置,并让算法来路由所有内容。
例如:
我错过了什么吗?
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 的固定大小。
c# - MSAGL:GraphViewerGdi:如何以编程方式重置缩放(或以编程方式按下主页按钮以重置它)?
我想右键单击一个节点以放大该节点,然后再次右键单击以完全重置缩放并平移到其起始状态。此外,我将来可能希望隐藏查看器的内置工具栏并使用热键执行缩小。所以“只需按下现有的主页按钮”不是我用例的解决方案。
我已经使用ShowBBox()
.
我找不到像 Home 按钮那样以编程方式缩小的方法。
- 查看器没有
ResetZoom()
,HomeButtonPressed()
或任何我能找到的方法。 - 设置
.ZoomF
回 1.0 是不够的,因为它不会同时使平移居中(Pan(0,0)
也不会使平移居中。) gvMain.ShowBBox(gvMain.Graph.BoundingBox)
不起作用(缩放变化非常轻微,但不是完全重置状态,类似于 Home 按钮。)