我正在尝试构建一个Windows Forms应用程序,在其中可以绘制一个带有火车弯头的矩形。类似于以下示例:
我使用了面向对象的编程,使用类图来编写类。
class SpoorRailsKrom : SpoorElement
{
protected RailsRotatie rotatie;
public SpoorRailsKrom(Orientatie orientatie, int breedte, int grootte, int x, int y) : base(orientatie, breedte, grootte, x, y)
{
}
public override void Teken(Graphics g)
{
if (g != null)
{
//TODO: Draw Rails using rotatie (angle)
base.Teken(g);
g.DrawArc(Pens.Black, 5, 5, 100, 100, 0, 90);
g.DrawArc(Pens.Black, 10, 10, 100, 100, 0, 90);
}
}
}
在“ Teken”方法中,我想使用枚举(旋转)绘制具有不同旋转度(0到90、90到180、180到270和270到360(0))的折弯。
namespace EindopdrachtOOP_Spoorbaan
enum RailsRotatie
{
_0,
_90,
_180,
_270
}
我还编写了一个SpoorElement类来绘制必须在其中绘制折弯的矩形。
abstract class SpoorElement
{
protected int breedte, grootte, x, y;
protected Orientatie orientatie;
public Orientatie Orientatie
{
set
{
orientatie = value;
}
get
{
return orientatie;
}
}
public SpoorElement(Orientatie orientatie, int breedte, int grootte, int x, int y)
{
this.orientatie = Orientatie.Horizontaal;
this.breedte = 100;
this.grootte = 100;
this.x = 5;
this.y = 5;
}
public virtual void Teken(Graphics g)
{
if (g != null)
{
//Brush brush = new SolidBrush(Color.Black);
Pen pen = new Pen(Color.Black);
g.DrawRectangle(pen, x, y, breedte, grootte);
}
}
}
这给了我以下输出:
我的问题是:
如何像示例(第一个图像)一样改变它将绘制弯曲的角度?