在显示区域内投影负坐标

问题描述

我正在使用受限区域 minX=-3000m,maxX=3000m,minY=-3000m and maxY=3000m 测试 RandomWaypointmobility@display 字符串集 bgp=6000,6000。结果是坐标系负部分中的节点被渲染到显示/画布区域之外。

是否有一些参数可以用来告诉 OMNeT++/INET 坐标系的原点位于显示器/画布的中心?我试过了

*.visualizer.sceneVisualizer.sceneMaxX = 3000m
*.visualizer.sceneVisualizer.sceneMinX = -3000m
*.visualizer.sceneVisualizer.sceneMaxY = 3000m
*.visualizer.sceneVisualizer.sceneMinY = -3000m
*.visualizer.sceneVisualizer.sceneMaxZ = 3000m
*.visualizer.sceneVisualizer.sceneMinZ = -3000m

但它并没有像我希望的那样工作。

我意识到对于 RandomWaypointmobility,我只能使用仅具有正坐标的约束区域,这会将对象保留在画布内。但是,我的下一个任务是提取包含负坐标的移动性轨迹。我是否需要手动移动所有坐标以使它们变为正值并留在画布/显示中,还是有更智能的处理方式?

任何提示表示赞赏!

谢谢, 德拉戈斯

解决方法

您设置的实际上是 bgb=6000,6000 设置模块的大小。确实有计划将一个名为 bgp 的标签直接添加到 OMNeT++ 中,这会引入偏移量,但最终没有实现。原因是一旦你进入那个兔子洞,你还想实现缩放,然后旋转等。所以基于默认显示字符串的可视化尽可能简单,所有这些转换的东西都留给模型代码。>

确实,INET 中的 SceneCanvasVisualizer 有一个 viewScaleviewTranslation 参数可用于这些目的。