【问题标题】:Easy way to draw a Perpendicular lines on Console in C# with given Symbols使用给定符号在 C# 中的控制台上绘制垂直线的简单方法
【发布时间】:2015-02-04 09:11:32
【问题描述】:

是否有任何简单的方法或 APIS 从符号 - /,| 在控制台上绘制 C# 中的框或线和_或-。 例如我想画这样的东西:

     ^
     |
     |
     |
     |___________>
    /
   /
  /

我可以用“/”画两条线,但不能画第三条线,看起来像上图。我最后还需要一个箭头,但我认为这几乎是不可能的。

下面是我的脏代码:

    Console.WriteLine("\t\t^Z");
    Console.WriteLine("\t\t|");
    Console.WriteLine("\t\t|");
    Console.WriteLine("\t\t|");
    Console.WriteLine("\t\t|");
    Console.WriteLine("\t\t|");

    Console.WriteLine("\t\t         X");
    Console.WriteLine("\t\t -------->");
    Console.WriteLine("\t       /");
    Console.WriteLine("\t      /");
    Console.WriteLine("\t     /");
    Console.WriteLine("\t    /");
    Console.WriteLine("\t   /");

【问题讨论】:

  • 我猜你可以使用PadLeft(lengthOfZAxis, " "),但如果你真的需要图形化的东西,控制台窗口并不是最适合它的地方
  • 字母“L”怎么样? :) 顺便说一句,这似乎是题外话,这是一个 ASCII 艺术问题,而不是编程。
  • L 很好,但我基本上需要正交轴。X、Y 和 Z 在所有可能的方向上。

标签: c# ascii-art


【解决方案1】:

我不确定它是否更漂亮,但您可以使用 PadLeft 并制定一种方法来做到这一点

IDEOne Example

public static void MakeAxis(int lineLengths)
{
    for(int i = 0; i < lineLengths - 1; i++)
        Console.WriteLine("|".PadLeft(lineLengths, ' '));
    Console.WriteLine("|".PadLeft(lineLengths, ' ') + new String('_', lineLengths<<1));
    for(int i = lineLengths; i > 0; i--)
        Console.WriteLine("/".PadLeft(i, ' '));
}

示例输出

  |
  |
  |______
  /
 /
/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    相关资源
    最近更新 更多