| drawcircle 
 
	 
	
		| Author | Message |   
		| bored_hacker 
 
  
 
 
 | 
			
				|  Posted: Sun May 29, 2005 2:04 pm    Post subject: drawcircle |  |   
				| 
 |  
				| i got bored so i made this proc to draw a circle. its practically worthless except for the way you see it drawn, some people would think its cool.   
 
 	  | code: |  	  | proc drawcircle (x, y, radius, col : int)
var i : real
 for q : 0 .. 72000
 i := q / 200
 drawdot (round (cosd (i) * radius) + x, round (sind (i) * radius) + y, col)
 end for
 end drawcircle
 | 
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| Sponsor Sponsor
 
  
   |  |   
		|  |   
		| Cervantes 
 
  
 
 
 | 
			
				|  Posted: Sun May 29, 2005 3:10 pm    Post subject: (No subject) |  |   
				| 
 |  
				| drawfillcircle 
 	  | Turing: |  	  | 
proc drawfillcircle ( x, y, radius, clr : int)
    var  row : real :=  -radius %start at bottom of the circle
    var  col : real := 0 .0
    var  dir := 1    %1 is right, -1 is left
    var  dist : real
    loop 
        dist := ( row * * 2  + col * * 2) * * 0 .5
        if  dist <= radius then
            drawdot (round ( x + col), round ( y + row),  clr)
        elsif  dist >= radius then 
            dir *=  -1 
            row += 1
            loop    %jump back into the circle 
                col +=  dir
 
                dist := ( row * * 2  + col * * 2) * * 0 .5
                exit when  dist <= radius or  row >= radius
            end loop
        end if 
        col +=  dir
        exit when  row >= radius
    end loop
end  drawfillcircle
 
drawfillcircle (maxx div 2 , maxy div 2 , maxy div 2 , green) | 
 
 Would be a lot faster with more math and using lines, mind you.  Or even using math and pixels, but once you've figured out how far the pixels must go (given a certain row and radius, using some math) you could just draw a line of pixels.  That would be a lot faster, I'd imagine.  Someone else can give that a try.
  |  
				|  |  |   
		|  |  |  
	  
		|  |   
		|  |  
 |