我有一个任务以图 block 的形式表示数据。这是一个示例数据:
WWWWWWWWWWWWWWWWWDWWWWW
WCCCCCCCCCCCCCCCGGGGGGW
DCCCCCCCCCCCCCCSSdGGGGW
WCCCCCCCCCCCCCCSSSdddGW
WWWWWWWWWWWWWWWWWDWWWWW
WCCCCCCCCCCWCCCCCCCCCCW
WCCCCCCCCCCWCCCCCCCCCCW
DCCCCCCCCCCWCCCCCCCCCCW
WCCCCCCCCCCWCCCCCCCCCCW
WWWWWWWWWWWWWWWWWWWWWWW
图例:
- W = 墙
- D = 门
- C = 地毯
- S = 沙子
- d = 污垢
- G = 草
我正在尝试在应用程序中表示这一点。如果我采用此类数据的网格(例如 300x300),并决定表示对象的固定大小,则生成的 map 将很大并且需要大量滚动。
抛开后期绘制对象 block 之类的要求,我主要是想在每个对象上获得平滑的快速滚动和基本编辑。我是一名 WinForm 开发人员,不知道在 WinForm 中执行此操作是否是个好主意。我想到了 WPF,因为它更像是一个自由漫游的应用程序,而不是严格的 WinForms。
请提出任何建议。
最佳答案
对于 80 年代风格的外观,您可能需要研究等角投影,Hassan。它非常适合处理 2D 映射信息。
基本上,您可以按照人造等距透视网格定义图形内容,其中内容可能代表地砖,例如:
然后,您可以将数据映射解析为表面图 block ,它甚至可以代表结构(在您的情况下为墙壁):
这是完全实现的等距(2.5D)房间投影的示例:
(来源:pixelcurse.com)
您可能想要使用等距引擎来帮助您进行数据可视化(其中有很多),或者构建您自己的。一些资源如下:
- 您可以找到XNA tutorial here这将介绍等轴测操作。
- ice2d 游戏引擎
- StackOverflow 帖子:
关于c# - 想要直观地表示原始信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21190890/