2017-10-06 1 views
0

Je dois dessiner un sablier dans PyCharm. J'ai essayé ce qui suit, mais pour une raison quelconque, la commande setFill ne fonctionne pas. Cela ne fonctionne que pour canvas.drawRect(x, y, width, height). Je suppose que le programme ne reconnaît pas que les lignes forment un triangle et ne peuvent donc pas le remplir.Dessiner un polygone rempli à l'aide de la bibliothèque graphique

Quelqu'un at-il une idée de comment je peux le réparer?

canvas.setFill("blue") 
canvas.drawLine(100, 50, 200, 50) 
canvas.drawLine(100, 50, 150, 200) 
canvas.drawLine(200, 50, 150, 200) 

Répondre

0

Les lignes que vous tracez ne définissent pas d'objet remplissable. Vous devez définir les objets qui prennent en charge la méthode setFill():

from graphics import * 

def main(): 
    win = GraphWin("My Canvas", 300, 300) 

    poly_points = [Point(100, 50), Point(200, 50), Point(150, 200)] 

    p = Polygon(poly_points) 
    p.setFill('red') 
    p.draw(win) 

    c = Circle(Point(50,50), 10) 
    c.setFill('blue') 
    c.draw(win) 

    win.getMouse() # Pause to view result 
    win.close() # Close window when done 

main() 
+0

Merci beaucoup pour votre aide! Votre réponse m'a fait réaliser que la seule chose à faire était de lire la bibliothèque graphique pour trouver le code dont j'avais besoin! –