Arc function

Bali Zoltan eltexto at freemail.hu
Mon Mar 14 22:11:16 CET 2005


Hali !

Megprobáltam C-ben, müködik
csak nálam a a 4. nyolcad ivet huzza.

=================================================
void  DrawCircle(WORD x, WORD y, WORD rad, BYTE color)
{
  long  Hiba;   //hiba valtozo
  long  X;
  long  Y;
  long  DU;     // hiba modosito, ha csak X lepett
  long  DD;      //hiba modosito, ha X es Y is lepett

  Hiba = 1L - rad;
  X = 0;
  Y =  rad;
  DU = 3;
  DD = 5L - (2L * rad);

  // kezdopont kirajzol
  pixel(X+x,Y+y,color);

//  KorCikkInterpolal:

//  DoEvents

//  'Vege a 90 foktol 45 fokigtarto resznek?
  while(!(X > Y))
  {
    //'x mindig lep
    X = X + 1;
    if(Hiba < 0)
    {
      //az x-heztartozo felso y a jobb
      //azaz az aktualison marad
      Hiba = Hiba + DU;
      DU = DU + 2;
      DD = DD + 2;
    }
    else
    {
      //az x-heztartozo also y a jobb
      //azzaz y mar lephet egyet lefele
      Y = Y - 1;
      Hiba = Hiba + DD;
      DU = DU + 2;
      DD = DD + 4;
    }
    //aktualis kirajzol
    pixel(X+x, Y+y,color);
  }
}

Köszi megegyszer.

Üdv   Zoli






More information about the Elektro mailing list