座標単位


ピクセル以外の単位

.NET では、Graphics クラスのデフォルトの座標単位は常にピクセルですが
アプリケーションによっては、インチやミリメートル等の単位を使いたいかもしれません

Font クラスのコンストラクタはに GraphicsUnit 列挙型を指定する引数がありましたが
実は、Graphics クラスには GraphicsUnit を設定するプロパティがあります
それが Graphics.PageUnit プロパティです

public GraphicsUnit PageUnit {get; set;}

このプロパティによって、Graphics オブジェクトの座標単位を取得したり
または目的の座標単位に設定することができるようになります
using System.Windows.Forms;
using System.Drawing;

class WinMain : Form {
	public static void Main(string[] args) {		
		Application.Run(new WinMain());
	}
				
	override protected void OnPaint(PaintEventArgs e) {
		Graphics g = e.Graphics;
		g.PageUnit = GraphicsUnit.Millimeter;
		g.DrawLine(Pens.Black , 0 , 5 , 30 , 5);
		g.DrawLine(Pens.Black , 0 , 10 , 50 , 10);
		g.DrawLine(Pens.Black , 0 , 15 , 70 , 15);
	}
}


このプログラムは、座標系をミリメートル単位に変更して描画したものです
線は上から3cm、5cm、7cmの長さになっています
実世界の物の長さと互換性をとる必要がある場合に便利ですね



前のページへ戻る次のページへ