将形状转换为2d空间

时间:2015-09-18 18:34:50

标签: c# polymorphism

我正在完成一个大学实验室,而且我很少被讲师要求我做的事情,我们刚开始学习C#,实验室要我们写一个控制台应用程序,使用多态性,有4个类:顶点,形状,线,圆和测试。

我有我所有的课程,我的大多数方法都很好,但是我无法弄清楚他希望我们在Translate方法中做什么,下面是实验表上的问题:

  

在Shape中实现2个方法,一个用于返回Shape的详细信息   (ToString())和一个允许在2D空间中转换形状的方法   (翻译(..))。要翻译的金额应作为a   translate方法的参数(作为Vertex对象的引用)   即物体相对于X的平移量   和Y轴)。

我很确定他没有找到像这里给出的解决方案那么复杂的任何事情:How to Draw Box,Rectangle in a C# Console application

任何建议表示赞赏。

修改

到目前为止,这是我的代码:

 public override void Translate(ref Vertex v)
    {


    }

该方法在Shape类中实现为虚方法,并在Line和Circle类中重写。

1 个答案:

答案 0 :(得分:4)

在此背景下的翻译意味着" shift" (您将在GUI框架中看到这个概念,例如TranslateTransform

例如,以原点为中心的Circle向上翻译2个单位,向右翻译为以(2,2)为中心的圆圈。

由于翻译需要两条信息(左右和上下多少),您可以重复使用Vertex对象(可能会将这两条信息存储为XY属性)传递翻译参数,如下所示:

public virtual void Translate(Vertex translation)
{
    //Implementation left to you
}

每个类都会覆盖此方法以进行自己的翻译。请注意,此处无需实际传递引用(如您的代码所示),对象始终传递作为引用。< / p>