C# 世界座標 頁面座標 PageUnit PageScale

PageScale:  獲取或設置此 Graphics 的世界單位和頁單位之間的比例。
PageUnit:  獲取或設置用於此 Graphics 中的頁座標的度量單位。
spa

話很少說,上代碼:code

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics dc = e.Graphics;
            dc.PageUnit = GraphicsUnit.Pixel; // 頁面座標
            dc.PageScale = 0.5f; // 世界座標和頁面座標比例係數

            Pen p = new Pen(Color.Red);

            int startX = 100;
            int startY = 100;
            Point startPoint = new Point(startX, startY);

            for (int i = 0; i < 100; ++i)
            {
                dc.DrawLine(p, startPoint, new Point(startX + i, startY));
            }
        }

再上圖:orm

PageScale = 0.5             PageScale = 1                                     PageScale = 2blog

 

由上可見,PageUnit = GraphicsUnit.Pixel,即顯示的時候以像素爲單位,程序畫了 100 個座標位置it

PageScale = 1, 一個座標位置對應一個像素,因此線的長度顯示爲100個像素class

PageScale = 0.5,一個座標對應0.5個像素,因此線的長度顯示爲50個像素object

PageScale = 2,一個座標對應2個像素,因此線的長度顯示爲200個像素(超出窗口大小了:D),上圖可見線的寬度也變爲2個像素了程序

 

綜上:    頁面座標 = 世界座標 * PageScale!!!   我理解的世界座標即邏輯座標,頁面座標即物理座標或叫作設備座標!im

相關文章
相關標籤/搜索