2013-12-21 3 views
1

Я пытаюсь написать программу рисования, используя pygame, и у меня возникла проблема с инструментом эллипса. Я хочу, чтобы пользователь мог нарисовать эллипсы как сплошные или кольца, когда мышь оставлена. Затем я хочу, чтобы пользователь мог рисовать круги при перемещении. Я знаю, что есть способ сделать это. Я просто не знаю, как это сделать. У меня есть инструмент прямоугольника, который может рисовать квадраты на основе тех же идей, и он работает. Это не так. Пожалуйста помоги.draw circle with ellipse 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, где мышь была подавлена ​​и поз, где мышь теперь:

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