Mega Code Archive

 
Categories / C# / 2D Graphics
 

TransformPoints

using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; class WhatSizeTransform : Form {     public static void Main() {         Application.Run(new WhatSizeTransform());     }     public WhatSizeTransform() {         Text = "With TransformPoints";         ResizeRedraw = true;     }     protected void DoPage(Graphics grfx, Color clr, int cx, int cy) {         Brush brush = new SolidBrush(clr);         int y = 0;         Point[] apt = { new Point(cx, cy) };         grfx.TransformPoints(CoordinateSpace.Device, CoordinateSpace.Page, apt);         DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Pixel);         DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Display);         DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Document);         DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Inch);         DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Millimeter);         DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Point);     }     void DoIt(Graphics grfx, Brush brush, ref int y,Point pt, GraphicsUnit gu) {         GraphicsState gs = grfx.Save();         grfx.PageUnit = gu;         grfx.PageScale = 1;         PointF[] aptf = { pt };         grfx.TransformPoints(CoordinateSpace.Page, CoordinateSpace.Device, aptf);         SizeF sizef = new SizeF(aptf[0]);         grfx.Restore(gs);         grfx.DrawString(gu + ": " + sizef, Font, brush, 0, y);         y += (int)Math.Ceiling(Font.GetHeight(grfx));     } }