Hi to all

I found a message sent to this mailing list just 1.5 months ago and I quote
it here.

It implements Bresenham algorithm (though this term isn't mentioned in the
original message).

This is not my code and I reproduce it verbatim. I had no time to test, but
as the code suggests it draws a circle of radius r with the centre in (x,
y). 

Drawing arcs is a bit trickier because of no symmetry.

Michael



-----Original Message-----
From: manish jaggi [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, 21 November 2001 8:07 PM
To: Palm Developer Forum
Cc: [EMAIL PROTECTED]
Subject: Circle Drawing source

/* The following is my only add-on. M.G. */ 
static void plotcircle ( int x, int y, int x1, int y1 );

void Circle(int x, int y, int r)
{
        int i, j, x1, y1, r, p, a ;
        x1 = 0 ;
        y1 = r ;

        p = 3 - 2 * r ;
        
        while ( x1 < y1 )
        {
                plotcircle ( x, y, x1, y1 ) ;
                
                if ( p < 0 )
                        p = p + 4 * x1 + 6 ;
                else
                {
                        p = p + 4 * ( x1 - y1 ) + 10 ;
                        y1 = y1 - 1 ;
                }

                x1 = x1 + 1 ;
        }

        if ( x1 == y1 )
                plotcircle ( x, y, x1, y1 ) ;
}


static void plotcircle ( int x, int y, int x1, int y1 )
{
        WinDrawPixel ( x + x1, y + y1 ) ;
        WinDrawPixel ( x - x1, y + y1  ) ;
        WinDrawPixel ( x + x1, y - y1  ) ;
        WinDrawPixel ( x - x1, y - y1  ) ;
        WinDrawPixel ( x + y1, y + x1  ) ;
        WinDrawPixel ( x - y1, y + x1  ) ;
        WinDrawPixel ( x + y1, y - x1  ) ;
        WinDrawPixel ( x - y1, y - x1  ) ;
}

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to