Hey, Can you try doing a fill to your surface first?
I guess it's likely a bug in the drawing code. Here is the wrapper source for the circle function... https://bitbucket.org/pygame/pygame/src/427a9ac7bd91/src/gfxdraw.c#cl-404 and here is the C code... https://bitbucket.org/pygame/pygame/src/427a9ac7bd91/src/SDL_gfx/SDL_gfxPrimitives.c On Fri, Aug 26, 2011 at 2:15 PM, Aaron Brady <castiro...@gmail.com> wrote: > On Aug 26, 6:34 am, René Dudfield <ren...@gmail.com> wrote: > [snip] > > > I'd like to know if anti-aliased objects, in particular the edges of > > > lines and fonts, can be rendered using transparency instead of > > > directly blended colors. Specifically, can the function calls draw 4- > > > tuples of ( r, g, b ) specified in the arguments, plus + ( a, ), the > > > proportion of intensity determined by the drawing algorithm? > > > > > The trick can of course be accomplished with 'numpy', the numerics > > > package, but it is a heavyweight solution, in particular complicated > > > and distracting, where programmer time is scarce; and slower, where > > > run-time environment CPU time is scarce. > > > > Hey, > > > > have you tried out the gfxdraw package? That's got some antialiased > drawing > > functions. > > Hi, thanks for the fast reply. > > Yes, the 'bezier_motion' screenshot used the bezier method in > gfxdraw. I wouldn't mind seeing a filled pie, though. I used an > approximation to accomplish it. > > http://home.comcast.net/~castironpi-misc/draggable_pie.1311632054.png > > Regarding the anti-aliasing, I ran this code: > > >>> import pygame > >>> pygame.init( ) > (6, 0) > >>> scr= pygame.display.set_mode(( 640,480 ) ) > >>> surf= pygame.Surface((400,400)).convert_alpha( ) > >>> import pygame.gfxdraw > >>> pygame.draw.aaline(surf,(0,255,0),(50,100),(150,350)) > <rect(50, 100, 102, 252)> > >>> pygame.gfxdraw.aacircle(surf,200,250,50,(0,0,255)) > >>> surf.get_at((52,103)) # on the line > (0, 102, 0, 0) > >>> surf.get_at((194,200)) # on the circle > (0, 0, 162, 103) > >>> surf.get_at((109,247)) # on the line > (0, 254, 0, 0) > > # part 2, continued > >>> surf.fill((0,0,0,0)) > <rect(0, 0, 400, 400)> > >>> pygame.draw.aaline(surf,(0,255,0,255),(50,100),(150,350)) > <rect(50, 100, 102, 252)> > >>> pygame.gfxdraw.aacircle(surf,200,250,50,(0,0,255,255)) > >>> surf.get_at((52,103)) > (0, 102, 0, 102) > >>> surf.get_at((194,200)) > (0, 0, 162, 103) > >>> surf.get_at((109,247)) > (0, 254, 0, 254) > > As you can see, I tried both length-3 and length-4 tuples for the > color argument. In these examples, the results I want would be: > > >>> surf.get_at((52,103)) > (0, 255, 0, 102) > >>> surf.get_at((194,200)) > (0, 0, 255, 103) # or (0, 0, 255, 162), unclear > >>> surf.get_at((109,247)) > (0, 255, 0, 254) > > Does this help to clarify? >