2013-12-21 235 views
1

我想用pygame编写一个绘图程序,我遇到了椭圆工具的问题。我希望用户能够在留下鼠标时将椭圆绘制为实心或圆环。然后,我希望用户能够在按住Shift键的同时绘制圆圈。我知道有一种方法可以做到这一点。我只是不知道如何。我有一个矩形工具,可以根据相同的想法绘制广场,它的工作原理。这不是。请帮忙。用椭圆绘制圆形pygame

if tool=="ellipse": 
       screen.blit(copy,(0,0)) 
       a=min(mx,start[0]) 
       b=min(my,start[1]) 
       x=abs(mx-start[0]) 
       y=abs(my-start[1]) 
       if keys[304] or keys[305]: 
        y=x 

       if keys[32]: 
        if x<size*2 or y<size*2: 
         draw.ellipse(screen,(c),(a,b,x,y))  
        else: 
         draw.ellipse(screen,(c),(a,b,x,y),size) 
       else: 
        draw.ellipse(screen,(c),(a,b,x,y)) 

回答

0

我不知道你在那里试图做什么,但它看起来不必要的复杂。所有你需要的是这样的地方downpos是在小鼠放下和POS就是现在鼠标:

if tool=="ellipse":#and the mouse is being clicked 
    if downpos[0]<pos[0]: 
     l=downpos[0] 
    else: 
     l=pos[0] 
    if downpos[1]<pos[1]: 
     t=downpos[0] 
    else: 
     t=pos[0] 
    if shiftDown: 
     if l<t: 
      pygame.draw.ellipse(screen, c, (l, l, abs(downpos[0]-pos[0]), abs(downpos[1]-pos[1])), size) 
     else: 
      pygame.draw.ellipse(screen, c, (t, t, abs(downpos[0]-pos[0]), abs(downpos[1]-pos[1])), size) 
    else: 
     pygame.draw.ellipse(screen, c, (l, t, abs(downpos[0]-pos[0]), abs(downpos[1]-pos[1])), size) 

我没有测试过这一点,所以如果它不工作,只是让我知道。

+0

不是我正在寻找的东西,但你睁开眼睛把它们画成圆圈并固定我的程序。谢谢! – Collin