座標単位
ピクセル以外の単位
.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の長さになっています
実世界の物の長さと互換性をとる必要がある場合に便利ですね