如何在c#winform中转换painteventargs的原点?

时间:2017-06-04 06:50:59

标签: c# winforms graphics paint

我想在坐标几何中绘制一些几何图形。我在panels paint event

中编写了以下代码
Graphics g = e.Graphics;

//Transforming (0,0) origin at center of the panel
g.TranslateTransform(panel1.Width / 2, panel1.Height / 2);

// For Drawing Axes
g.DrawLine(Pens.Red, new Point(-300, 0), new Point(300, 0));
g.DrawLine(Pens.Red, new Point(0,-300), new Point(0,300));


g.DrawEllipse(Pens.Blue, new Rectangle(50,50,100,100));// this circle should come in I-quad

enter image description here

这里可以理解,因为我的起源转变为面板的中心, 水平线以下的点是+ ve,上面是-ve。类似地,垂直线右边的点是+ ve,左边是-ve。

我应该怎么做才能翻转水平线,以便上面的值应该是+ ve,而下面应该是-ve(在坐标平面中)? 我绘制的圆圈应该是1象限而不是4象限。

1 个答案:

答案 0 :(得分:3)

在转换中添加以下行。

g.ScaleTransform(1.0F, -1.0F);