OOP Workshop
Triangle Button
class TriangleButton(Button):
def __init__(self, buttonColor, buttonX, buttonY, width, height):
super().__init__("Triangle", buttonColor, buttonX, buttonY, width, height)
def drawTriangle(self, aTurtle, width, heading):
aTurtle.setheading(heading)
aTurtle.forward(width)
aTurtle.left(120)
aTurtle.forward(width)
aTurtle.left(120)
aTurtle.forward(width)
def drawButtonShape(self, aTurtle):
aTurtle.pensize(2)
self.drawTriangle(aTurtle, self.width,0)
def drawShape(self, x, y, aTurtle):
sign = 1 if x-aTurtle.xcor() > 0 else -1
self.drawTriangle(aTurtle, \
(sign) * math.sqrt((x-aTurtle.xcor())**2 + (y-aTurtle.ycor())**2), \
math.degrees(math.atan((y-aTurtle.ycor())/(x- aTurtle.xcor()))))
Adding a triangle button:
buttonTurtle = turtle.Turtle()
buttonTurtle.speed(20)
selectedButton = Button("Line","Orange", -130, 220, 40, 20)
shapeButtons = []
shapeButtons.append(selectedButton)
shapeButtons.append(RectangleButton("Green", -70, 200, 100, 40))
shapeButtons.append(TriangleButton("Blue", 40, 200, 40, 40))