3 // Creates image for Hering illusion.
4 // Converted to C# from Xr demo application.
7 // Alexandre Pigolkine(pigolkine@gmx.de)
10 // (C) Ximian, Inc. http://www.ximian.com
15 using System.Drawing.Imaging;
16 using System.Drawing.Drawing2D;
20 public static void Main( String[] arr) {
22 float height = 800.0F;
24 Bitmap bmp = new Bitmap((int)width, (int)height/*, PixelFormat.Format24bppRgb*/);
25 Graphics gr = Graphics.FromImage(bmp);
26 SolidBrush br = new SolidBrush(Color.White);
27 gr.FillRectangle(br, 0.0F, 0.0F, width, height);
30 float MAX_THETA = (.80F * 90.0F);
31 float THETA = (2 * MAX_THETA / (LINES-1));
33 Pen blackPen = new Pen(Color.Black, 2.0F);
34 GraphicsState state = gr.Save();
36 gr.TranslateTransform(width/2.0F, height/2.0F);
37 gr.RotateTransform(MAX_THETA);
38 for( int i = 0; i < LINES; i++) {
39 gr.DrawLine( blackPen, -2.0F * width, 0.0F, 2.0F * width, 0.0F);
40 gr.RotateTransform(-THETA);
44 Pen redPen = new Pen(Color.Red, 6F);
45 gr.DrawLine( redPen, width / 4F, 0F, width / 4F, height);
46 gr.DrawLine( redPen, 3F * width / 4F, 0F, 3F * width / 4F, height);
48 bmp.Save("Hering.bmp", ImageFormat.Bmp);
49 Console.WriteLine("output file Hering.bmp");
50 bmp.Save("Hering.jpg", ImageFormat.Jpeg);
51 Console.WriteLine("output file Hering.jpg");
53 bmp.Save("Hering.png", ImageFormat.Png);
54 Console.WriteLine("output file Hering.png");