[叩響C#之門]寫給初學者:平移變換

來源:互聯網
上載者:User
17.9 座標變換

預設情況下,座標系的原點位於視圖地區的左上方,水平方向為x軸,豎直方向為y軸。但有時候我們需要改變座標軸的位置或方向,這時就需要座標變換。常用的座標變換有平移變換、旋轉變換和伸縮變換三種。

17.9.1 平移變換

作者:梁斌玉 摘自《叩響C#之門》,七月初出版出版
BeginnerClassroom@163.com
http://www.cnblogs.com/BeginnerClassroom

平移變換是指把座標系的原點由一個位置平移到另一個位置,我們可以通過Graphics 類的TranslateTransform()方法實現平移變換。

下面我們通過一個樣本來說明怎樣進行平移變換。

圖17-16 “座標變換”視窗

建立一個名為“Transform”的項目,然後按如下步驟添加控制項:

1.17-16所示,添加3個按鈕。

現在為“平移變換”按鈕添加事件處理常式。

試一試::平移變換

//平移變換private void translateTransformButton_Click(object sender, EventArgs e){    //將要繪製的矩形    Rectangle redRectangle = new Rectangle(new Point(0, 0), new Size(120, 80));    //在原座標系中繪製圖形    Graphics g = CreateGraphics();    g.FillRectangle(Brushes.Red, redRectangle);    //在新座標系中繪製圖形    g.TranslateTransform(150, 120);    g.FillRectangle(Brushes.Red, redRectangle);}

 

 

在上面的程式中我們兩次繪製了矩形redRectangle,該矩形的左上方在座標系的原點,寬度為120像素,高度為80像素。

第一次我們在預設座標系中繪製矩形,這時座標系的原點在視窗的左上方(如實線所示),Graphics對象以此為參照繪製出矩形,17-17所示。

圖17-17 用平移變換法繪製矩形的視窗

之後我們通過下面的語句進行座標的平移變換,該語句把座標系向右平移了150像素,向下平移了120像素,使座標系的原點由A點平移到了B點(如虛線所示)。

g.TranslateTransform( 150 , 120 );

                                         
   

                              橫向位移量 縱向位移量

最後我們第二次繪製矩形,這時Graphics對象以新座標係為參照,所以矩形的左上方被畫在B點。

雖然兩次繪製的是同一個矩形redRectangle,但由於座標系發生了變化,矩形的實際位置不同。

一旦Graphics對象的座標系發生了變換,Graphics對象今後都會在新座標系中繪製圖形,要想恢複到預設的座標系,則需要用下面的語句清除變換。

g.ResetTransform();

執行ResetTransform()方法後,座標系恢複到預設狀態,Graphics對象回到預設座標系中繪圖。

作者:梁斌玉 摘自《叩響C#之門》,七月初出版出版
BeginnerClassroom@163.com
http://www.cnblogs.com/BeginnerClassroom

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.