[Tutor] Hello

Christopher Marlett cmarlett at luc.edu
Thu Mar 13 15:54:51 CET 2008


Hi, I'm in a Python class and we were given the assignment to create our own graphic and my idea was to have a program that asks the user to click six points and then create a circle using the six points they clicked. Once they've done that I want eyes and a mouth to appear in the circle. I was wondering if that was possible or if I need to have them also click the points where the two eyes and nose should appear as well. I have the face written, it looks like this...
def main():
    winWidth = 200  # give a name to the window width
    winHeight = 150 #    and height
    win = GraphWin('Face', winWidth, winHeight) # give title and dimensions
    win.setCoords(0, 0, winWidth, winHeight) # make right side up coordinates!

    head = Circle(Point(40,100), 25) # set center and radius
    head.setFill("yellow")
    head.draw(win)

    eye1 = Circle(Point(30, 105), 5)
    eye1.setFill('blue')
    eye1.draw(win)

    eye2 = Line(Point(45, 105), Point(55, 105)) # set endpoints
    eye2.setWidth(3)
    eye2.draw(win)

    mouth = Oval(Point(30, 90), Point(50, 85)) # set corners of bounding box
    mouth.setFill("red")
    mouth.draw(win)

    message = Text(Point(winWidth/2, 20), 'Click anywhere to quit.')
    message.draw(win)
    win.getMouse()
    win.close()

main()

I'm struggling with the Circle, however. This is what I have so far, but it won't work.

def main():
    winWidth = 300
    winHeight = 300
    win = GraphWin('Draw a Circle', winWidth, winHeight)
    win.setCoords(0, 0, winWidth, winHeight)
    win.setBackground('yellow')
    message = Text(Point(winWidth/2, 20), 'Click on six points')
    message.draw(win)

    # Get and draw six points of circle
    p1 = win.getMouse()
    p1.draw(win)
    p2 = win.getMouse()
    p2.draw(win)
    p3 = win.getMouse()
    p3.draw(win)
    p4 = win.getMouse()
    p4.draw(win)
    p5 = win.getMouse()
    p5.draw(win)
    p6 = win.getMouse()
    p6.draw(win)
    points = [p1, p2, p3, p4, p5, p6]

    # Use Oval object to draw the circle
    Circle = Oval(points)
    Circle.setFill('green')
    Circle.setOutline('pink')
    Circle.setWidth(4) # width of boundary line
    Circle.draw(win)

    # Wait for another click to exit
    message.setText('Click anywhere to quit.')
    message.setTextColor('red')
    message.setStyle('italic')
    message.setSize(20)
    win.getMouse()
    win.close()
Any advice you have would help out a lot. Thank you for your time. 


More information about the Tutor mailing list