/*****************************************************************/
/* Dieses Programm zeichnet einige Kreise auf das Ausgabegeraet. */
/* (c) 1997-98 by MCT; Autor: S.Trippler                         */
/*****************************************************************/

#define VERSION "1.04"
char Version[]="\n$VER: "__FILE__" V"VERSION" (c) "__DATE__" by ST, MCT\n";

#include <stdio.h>
#include <stdlib.h>

#include <sys/ansi.h>
#include <sys/graphics.h>

char main(void)
{
  int errorcode;
  int graphdriver=0, graphmode=0;
  int maximumsize, center_x, center_y;
  graphdriver=DETECT;                           /* Anmelden und Initialisieren */
  initgraph(&graphdriver,&graphmode,"");        /* des Displays/Grafikmodusses */

  /* Fehlercode abfragen */
  errorcode = graphresult();
  if (errorcode != grOk)  /* Wenn ein Fehler festgestellt wurde... */
  {
    printf("Fehler '%s' aufgetreten!\n", grapherrormsg(errorcode));
    exit(1);
  }

  if(getmaxx()<getmaxy()) maximumsize=getmaxx(); 
  else maximumsize=getmaxy(); 

  center_x=getmaxx()/2;
  center_y=getmaxy()/2;

  /* Ein grosser Kreis mit 80% der maximal darstellbaren Hoehe */
  /* bzw. Breite wird gezeichnet                               */ 
  circle(center_x,center_y,maximumsize*40/100);

  /* Das linke Auge mit einer Groesse von 16% der Maximal-     */
  /* groesse wird gezeichnet                                   */
  circle(center_x-maximumsize*15/100,center_y-maximumsize*12/100,maximumsize*8/100);

  /* Ebenso das rechte Auge                                    */
  circle(center_x+maximumsize*15/100,center_y-maximumsize*12/100,maximumsize*8/100);

  /* Und ein Kreisausschnitt als Mund */
  arc(center_x,center_y-maximumsize*5/100,225,315,maximumsize*30/100);

  getchar(); 
  closegraph();                                 /* Der Grafikmodus wird verlassen */
  return 0;
}

