c# - 想要直观地表示原始信息

标签 c#

我有一个任务以图 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 映射信息。

基本上,您可以按照人造等距透视网格定义图形内容,其中内容可能代表地砖,例如:

enter image description here

然后,您可以将数据映射解析为表面图 block ,它甚至可以代表结构(在您的情况下为墙壁):

enter image description here

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

enter image description here
(来源:pixelcurse.com)

您可能想要使用等距引擎来帮助您进行数据可视化(其中有很多),或者构建您自己的。一些资源如下:

关于c# - 想要直观地表示原始信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21190890/

相关文章:

c# - 实体组件系统 c#

c# - 如何制作前向词,后向词,将下划线视为单词的一部分?

c# - Foo().Result 和 Task.Run(() => Foo()).Result 在 C# 中有什么区别?

c# - 在 C# 中用鼠标画线的正确方法是什么

C# 树/集合算法

c# - 跳过 SqlBulkCopy 中的某些列

c# - ObservableCollection 的排序值(响应式扩展)

c# - 客户端Json反序列化类结构

c# - 钟形曲线高斯算法(Python 和/或 C#)

c# - 从 IParameterInspector AfterCall 可以处理的 WCF Rest 服务返回带有消息的 HttpStatus 代码