[Mono-list] little try to redraw the Mono-Logo ... for Mono-List-Archive-Readers

Freddy BL freddy_bl@hotmail.com
Wed, 11 Sep 2002 09:28:46 +0000


Uuups. I now have seen, that the attachment which I have send in the archive 
under
http://lists.ximian.com/archives/public/mono-list/2002-September/002011.html
in a encrypted form is, so that only people, who becomes the 
mailing-list-mails in its mailbox can see what I have send. :-(

So, here is it again - for everyone!

------------------------------
// this program draws in vector-graphic the logo of mono
// licensed under the MIT-X11-license

using System.Windows.Forms;
using System.Drawing;

public class MainClass
{
  public static void Main(string[] args)
  {
    HeadWindow myHW = new HeadWindow();
    Application.Run(myHW);
  }
}

public class HeadWindow : Form {
  public HeadWindow() {
    this.Text = "MonoHead in vector-graphic";
    this.Size = new Size(600,700);
    this.BackColor = Color.Black;
  }

  protected override void OnPaint(PaintEventArgs pe) {
    Pen greenPen = new Pen(Color.Green);
    Pen redPen = new Pen(Color.Red);

    // for the Monkey-Head
    float x=15, y=15;
    float size=1.5F;  // 1.5F;
    float sizex=size, sizey=size;

    // for the "mono::"-logo
    float mx=x+20F, my=y+530F;
    float msize=size*1.0F;
    float msizex=msize, msizey=msize;


    // CROSS FOR POSITION (not part of head)
    pe.Graphics.DrawLine(greenPen, x-3, y, x+3, y);
    pe.Graphics.DrawLine(greenPen, x, y-3, x, y+3);


    // CORNER
    pe.Graphics.DrawArc(redPen, x          , y          , 40*sizex, 
40*sizey, 180F, 90F);  // left top
    pe.Graphics.DrawArc(redPen, x+295*sizex, y          , 40*sizex, 
40*sizey, 270F, 90F);  // right top
    pe.Graphics.DrawArc(redPen, x+295*sizex, y+295*sizey, 40*sizex, 
40*sizey,   0F, 90F);  // right bottom

    // FRAME
    pe.Graphics.DrawLine(redPen, x+ 20*sizex, y          , x+315*sizex, y    
       );  // top
    pe.Graphics.DrawLine(redPen, x          , y+ 20*sizey, x          , 
y+132*sizey);  // left
    pe.Graphics.DrawLine(redPen, x+ 27*sizex, y+335*sizey, x+315*sizex, 
y+335*sizey);  // bottom
    pe.Graphics.DrawLine(redPen, x+335*sizex, y+ 20*sizey, x+335*sizex, 
y+315*sizey);  // right

    // NECK
    pe.Graphics.DrawLine(redPen, x          , y+132*sizey, x+ 67*sizex, 
y+113*sizey);  // nape
    pe.Graphics.DrawLine(redPen, x+ 67*sizex, y+113*sizey, x+109*sizex, 
y+131*sizey);  // neck under the ears
    pe.Graphics.DrawLine(redPen, x+ 27*sizex, y+335*sizey, x+ 98*sizex, 
y+248*sizey);  // throat

    // EAR
    pe.Graphics.DrawBezier(redPen, x+ 63*sizex, y+ 42*sizey, x+ 13*sizex, y+ 
90*sizey, x+ 74*sizex, y+113*sizey, x+109*sizex, y+131*sizey); // the 
main-ear
    pe.Graphics.DrawLine(redPen, x+ 63*sizex, y+ 42*sizey, x+142*sizex, y+ 
52*sizey);  // the top
    pe.Graphics.DrawLine(redPen, x+100*sizex, y+ 44*sizey, x+142*sizex, y+ 
52*sizey);  // shaddow of the top

    // TOP OF THE HEAD
    pe.Graphics.DrawBezier(redPen, x+100*sizex, y+ 44*sizey, x+121*sizex, y+ 
25*sizey, x+230*sizex, y+ 40*sizey, x+251*sizex, y+ 55*sizey); // skullpan
    pe.Graphics.DrawBezier(redPen, x+251*sizex, y+ 55*sizey, x+272*sizex, 
y+100*sizey, x+274*sizex, y+128*sizey, x+265*sizex, y+135*sizey); // 
forehead

    // EYE
    pe.Graphics.DrawBezier(redPen, x+206*sizex, y+124*sizey, x+255*sizex, 
y+135*sizey, x+263*sizex, y+135*sizey, x+265*sizex, y+135*sizey); // 
eyebrows
    pe.Graphics.DrawLine(redPen, x+209*sizex, y+125*sizey, x+253*sizex, 
y+139*sizey);  // bottom part

    // MOUTH
    pe.Graphics.DrawBezier(redPen, x+253*sizex, y+139*sizey, x+270*sizex, 
y+190*sizey, x+273*sizex, y+216*sizey, x+263*sizex, y+252*sizey); // nose
    pe.Graphics.DrawBezier(redPen, x+198*sizex, y+194*sizey, x+213*sizex, 
y+215*sizey, x+240*sizex, y+240*sizey, x+263*sizex, y+252*sizey); // top-lip
    pe.Graphics.DrawBezier(redPen, x+198*sizex, y+194*sizey, x+217*sizex, 
y+230*sizey, x+236*sizex, y+248*sizey, x+261*sizex, y+260*sizey); // 
bottom-lip
    pe.Graphics.DrawBezier(redPen, x+261*sizex, y+260*sizey, x+254*sizex, 
y+277*sizey, x+252*sizex, y+286*sizey, x+238*sizex, y+308*sizey); // 
main-chin
    pe.Graphics.DrawLine(redPen, x+ 98*sizex, y+248*sizey, x+238*sizex, 
y+308*sizey);  // bottom-chin




    // CROSS FOR POSITION (not part of "mono::"-logo)
    pe.Graphics.DrawLine(greenPen, mx-2, my, mx+2, my);
    pe.Graphics.DrawLine(greenPen, mx, my-2, mx, my+2);


    // m
    pe.Graphics.DrawArc(redPen, mx           , my           , 13*msizex, 
12*msizey, 180F, 180F);
    pe.Graphics.DrawArc(redPen, mx           , my+ 41*msizey, 14*msizex, 
13*msizey,   0F, 180F);
    pe.Graphics.DrawArc(redPen, mx+ 30*msizex, my+ 41*msizey, 14*msizex, 
13*msizey,   0F, 180F);
    pe.Graphics.DrawArc(redPen, mx+ 60*msizex, my+ 41*msizey, 14*msizex, 
13*msizey,   0F, 180F);
    pe.Graphics.DrawLine(redPen, mx           , my+  6*msizey, mx           
, my+ 48*msizey);
    pe.Graphics.DrawBezier(redPen, mx+ 14*msizex, my+ 24*msizey, mx+ 
18*msizex, my+  7*msizey, mx+ 30*msizex, my+  7*msizey, mx+ 30*msizex, my+ 
24*msizey);
    pe.Graphics.DrawLine(redPen, mx+ 14*msizex, my+ 24*msizey, mx+ 
14*msizex, my+ 48*msizey);
    pe.Graphics.DrawLine(redPen, mx+ 30*msizex, my+ 24*msizey, mx+ 
30*msizex, my+ 48*msizey);
    pe.Graphics.DrawBezier(redPen, mx+ 44*msizex, my+ 24*msizey, mx+ 
48*msizex, my+  7*msizey, mx+ 60*msizex, my+  7*msizey, mx+ 60*msizex, my+ 
24*msizey);
    pe.Graphics.DrawLine(redPen, mx+ 44*msizex, my+ 24*msizey, mx+ 
44*msizex, my+ 48*msizey);
    pe.Graphics.DrawLine(redPen, mx+ 60*msizex, my+ 24*msizey, mx+ 
60*msizex, my+ 48*msizey);
    pe.Graphics.DrawLine(redPen, mx+ 13*msizex, my+  6*msizey, mx+ 
13*msizex, my+  8*msizey);
    pe.Graphics.DrawBezier(redPen, mx+ 13*msizex, my+  8*msizey, mx+ 
23*msizex, my-  3*msizey, mx+ 34*msizex, my-  3*msizey, mx+ 43*msizex, my+  
8*msizey);
    pe.Graphics.DrawBezier(redPen, mx+ 43*msizex, my+  8*msizey, mx+ 
51*msizex, my-  3*msizey, mx+ 70*msizex, my-  3*msizey, mx+ 74*msizex, my+ 
13*msizey);
    pe.Graphics.DrawLine(redPen, mx+ 74*msizex, my+ 13*msizey, mx+ 
74*msizex, my+ 48*msizey);

    // o
    pe.Graphics.DrawEllipse(redPen, mx+ 83*msizex, my           , 53*msizex, 
54*msizey);
    pe.Graphics.DrawEllipse(redPen, mx+ 97*msizex, my+ 11*msizey, 25*msizex, 
32*msizey);

    // n
    pe.Graphics.DrawArc(redPen, mx+144*msizex, my           , 13*msizex, 
12*msizey, 180F, 180F);
    pe.Graphics.DrawArc(redPen, mx+144*msizex, my+ 41*msizey, 14*msizex, 
13*msizey,   0F, 180F);
    pe.Graphics.DrawArc(redPen, mx+177*msizex, my+ 41*msizey, 14*msizex, 
13*msizey,   0F, 180F);
    pe.Graphics.DrawLine(redPen, mx+144*msizex, my+  6*msizey, 
mx+144*msizex, my+ 48*msizey);
    pe.Graphics.DrawBezier(redPen, mx+158*msizex, my+ 24*msizey, 
mx+162*msizex, my+  7*msizey, mx+177*msizex, my+  7*msizey, mx+177*msizex, 
my+ 24*msizey);
    pe.Graphics.DrawLine(redPen, mx+158*msizex, my+ 24*msizey, 
mx+158*msizex, my+ 48*msizey);
    pe.Graphics.DrawLine(redPen, mx+177*msizex, my+ 24*msizey, 
mx+177*msizex, my+ 48*msizey);
    pe.Graphics.DrawLine(redPen, mx+157*msizex, my+  6*msizey, 
mx+157*msizex, my+  8*msizey);
    pe.Graphics.DrawBezier(redPen, mx+157*msizex, my+  8*msizey, 
mx+165*msizex, my-  3*msizey, mx+187*msizex, my-  3*msizey, mx+191*msizex, 
my+ 13*msizey);
    pe.Graphics.DrawLine(redPen, mx+191*msizex, my+ 13*msizey, 
mx+191*msizex, my+ 48*msizey);

    // o
    pe.Graphics.DrawEllipse(redPen, mx+200*msizex, my           , 53*msizex, 
54*msizey);
    pe.Graphics.DrawEllipse(redPen, mx+214*msizex, my+ 11*msizey, 25*msizex, 
32*msizey);

    // ::
    pe.Graphics.DrawEllipse(redPen, mx+263*msizex, my           , 15*msizex, 
15*msizey);
    pe.Graphics.DrawEllipse(redPen, mx+293*msizex, my           , 15*msizex, 
15*msizey);
    pe.Graphics.DrawEllipse(redPen, mx+263*msizex, my+ 39*msizey, 15*msizex, 
15*msizey);
    pe.Graphics.DrawEllipse(redPen, mx+293*msizex, my+ 39*msizey, 15*msizex, 
15*msizey);

  }
}


_________________________________________________________________
Mit MSN Fotos können Sie kinderleicht Ihre Fotos ausdrucken und Freunden zur 
Verfügung stellen: http://photos.msn.de