【问题标题】:Drawing cube from rectangle in C#在 C# 中从矩形绘制立方体
【发布时间】:2014-04-15 10:05:59
【问题描述】:

我有一个矩形的坐标。如何在 C# 中用这个绘制一个立方体?

graphics.drawRectangle(Pens.Black, x, y, width, height);

矩形有 4 个坐标,而立方体有 8 个坐标。如何定位矩形的其他四个点,使其看起来像一个立方体。

当从一个矩形手工绘制一个立方体时,我们需要三个维度length X width X height。我们将使用与 X 轴的角度60 to 70 degree (approx) 来绘制 z 轴,它看起来像 3D。类似地,我们可以绘制矩形的长度尺寸并定位第二个矩形的点 (x',y')。我们将为第二个矩形使用相同的高度和宽度,连接两个矩形将得到立方体。

我正在尝试在 C# 中执行此操作。为此,我需要第二个矩形的坐标,该坐标与第一个矩形的 (x, y) 成 70 度角(大约)处于任意距离(例如 50)处

【问题讨论】:

  • 矩形不可能变成立方体,至少在我看到的地方是这样。你的意思是平行六面体?要将其转换为 3D 形式,您需要添加 3rd 维度,所以我不明白您的问题。
  • 如果你需要一个立方体,那么你可以在不同的坐标上画两个矩形,并用线连接它们。使用笔和纸绘制学校级别的概念。
  • @Bartdude,感谢您的回复。我将编辑我的问题以使其更清楚。
  • @Rezoan,这就是我要问的,如何计算第二个矩形的坐标?
  • 使 2 个矩形大小相同。现在绘制第一个矩形,然后通过增加 Y 坐标并减少第一个矩形的 X 坐标来绘制第二个矩形。大小和点取决于你想要的样子。

标签: c# winforms graphics


【解决方案1】:

绘制立方体的方法有很多种,但矩形始终是矩形。你不能向它添加点(它不再是一个矩形)。

看看this article 它向您展示了一种绘制立方体的方法。

如果您愿意采用不那么复杂的方式,您可以变换(倾斜)2 或 3 个矩形并将它们变成立方体的投影。

【讨论】:

    【解决方案2】:

    这是填充立方体(不是线框)的廉价黑客,您可以修改“i”部分的工作方式以改变“透视”

    //draw the sides of the cube black
    for (int i=-10;x<0;i++)
         graphics.drawRectangle(Pens.Black, x+i, y+i, width, height);
    //draw the front of the cube red
    graphics.fillRectangle(Brushes.Red, x, y, width, height);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多