簡體   English   中英

如何在AC#Winform中轉換painteventargs的原點?

[英]How to Transforming origin for painteventargs in a c# winform?

我想像在坐標幾何中一樣繪制一些幾何圖形。 我在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

在此處輸入圖片說明

在這里可以理解,由於我的原點已變換到面板的中心, 因此水平線以下的點是+ ve,而上方的點是-ve。 同樣,指向垂直線的右點是+ ve,左點是-ve。

我應該怎么做才能翻轉水平線,以便上面的值應該是+ ve,下面的值應該是-ve(在坐標平面中)? 而我所畫的圓圈應該是1象限而不是4象限。

將以下行添加到您的轉換中。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM