首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于数组绘制地图,并应用运行时更改

基于数组绘制地图,并应用运行时更改
EN

Stack Overflow用户
提问于 2011-01-09 01:07:23
回答 2查看 961关注 0票数 0

我正在写一个程序来控制一个移动机器人。它必须做的一件事是绘制一张机器人感知到的“世界”的地图,并在感知到它们时在地图上应用更改。它还必须以某种方式突出显示机器人的位置和(理想情况下)它所指向的方向。

我目前有一个表示地图的自动更新数组(100 x150),使用以下表示:0表示清晰的路径,1表示障碍物。我还有一个变量,包含机器人的位置和下一个位置。

我需要的是把它可视化。我想过使用标签,但使用它们太乏味了,而且最终的结果也不是很好。我的另一种可能是将所有数据写入Excel电子表格,但然后我将回到起点:以一种吸引人的方式可视化数据。有没有某种绘图包可以完成这项工作?

总结一下:

使用:

代码语言:javascript
复制
 - int[] MapArray //100 x 150 array representing the robot's world, and the data there is changing.

 - Point[] Locations //Locations[0] is the current location, Locations[1] is the next step.

我想在Windows窗体应用程序上绘制一张地图,该应用程序以一种漂亮的可视化方式自我更新。

我希望我的问题足够清楚,如果不清楚,请随时与我联系!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-09 01:22:24

试试或类似的东西。

只需编写几个循环,访问数组中的每个单元格,并根据坐标在窗体上绘制一个矩形-这是最简单的方法。

代码语言:javascript
复制
for(int i=0; i<100; i++)
{
    for(int j=0;j<150;j++)
    {
        <access[i,j] and draw a rectangle with color accordingly to your contents.>
    }
}

图形位置也是如此。

票数 0
EN

Stack Overflow用户

发布于 2011-01-09 01:20:42

如果您找不到任何好的控件,可以始终使用列宽=行高的DataGridView,以便始终显示方形单元格。在此之后,只需更改障碍物的背景颜色。

您还可以查看映射数组的可观察集合,以便网格基于事件而不是计时器进行更新。确保覆盖observable集合以发送CollectionChanged事件,即使在单元格更改其值时也是如此,而不仅仅是在添加/删除单元格时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4635031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档