想要直观地表示原始信息

时间:2014-01-17 16:28:51

标签: c#

我有一个以tile形式表示数据的任务。以下是一个示例数据:

WWWWWWWWWWWWWWWWWDWWWWW
WCCCCCCCCCCCCCCCGGGGGGW
DCCCCCCCCCCCCCCSSdGGGGW
WCCCCCCCCCCCCCCSSSdddGW
WWWWWWWWWWWWWWWWWDWWWWW
WCCCCCCCCCCWCCCCCCCCCCW
WCCCCCCCCCCWCCCCCCCCCCW
DCCCCCCCCCCWCCCCCCCCCCW
WCCCCCCCCCCWCCCCCCCCCCW
WWWWWWWWWWWWWWWWWWWWWWW

图例:

  • W =墙
  • D =门
  • C = Carpet
  • S = Sand
  • d = Dirt
  • G =草

我试图在一个应用程序中表示这一点。如果我采用这样的数据网格,例如300x300,并决定表示对象的固定大小,则生成的地图将非常庞大,需要进行大量滚动。

暂且不考虑绘画对象块的后期要求,我主要试图在每个对象上进行平滑的快速滚动和基本编辑。我是一个WinForm开发人员,不知道在WinForm中执行此操作是否是个好主意。 WPF浮现在脑海中,因为它更像是一个免费的漫游应用程序而不是僵硬的WinForms。

请提出任何建议。

1 个答案:

答案 0 :(得分:2)

对于80年代风格的外观,你可能想看看等角投影,哈桑。它可以很好地处理2D​​映射信息。

基本上,您可以在仿等距透视网格后面定义图形内容,其中内容可能代表地砖,例如:

enter image description here

然后,您可以将数据地图解析为表面图块,甚至可以表示结构(墙壁,在您的情况下):

enter image description here

这是一个完全实现的等距(2.5D)房间投影的例子:

http://pixelcurse.com/wp-content/uploads/2011/04/The_White_Room_by_gness_18.png

您可能希望使用等轴测引擎来帮助您进行数据可视化(其中包含相当多的内容),或构建您自己的。一些资源如下: