程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> [叩響C#之門]寫給初學者:平移變換

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

編輯:關於C#

17.9 坐標變換

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

17.9.1 平移變換

平移變換是指把坐標系的原點由一個位置平移到另一個位置,我們可以通過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對象回到默認坐標系中繪圖。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved