Usando la clase para dibujar formas en tortuga

0

Se supone que debo desarrollar clases para segmentos de línea, círculos y rectángulos en los que cada forma debe contener un objeto y un color de Tortuga para permitir que se dibuje en una ventana gráfica de Tortuga. Tendré una clase principal de Shape en la que las clases de círculo, rectángulo y línea son subclases de la misma. Lo que tengo hasta ahora es

class Shape(object):
"""Represents a Shape"""

def __init__(self, width, height):
   self._width = width
   self._height = height

def rectangle(self):

Lo que quiero lograr es que el usuario ingrese un número para el ancho y el alto, y en base a eso, la tortuga dibujará un rectángulo con esos. Luego, también se dibujarán otras formas usando esos números para escala. Entonces, por ejemplo, si ingreso

Shape (100, 150)

luego se dibujará un rectángulo con un ancho de 100 y una altura de 150 y tal vez se dibujará un círculo con un radio de 1/2 de la altura.

Sin embargo, estoy perplejo en este punto. Parece que no puedo averiguar qué hacer a continuación para que la tortuga dibuje el rectángulo. Gracias por cualquier ayuda.

0

Bueno, hay soluciones relativamente simples para cada uno de estos, pero dado que es una tarea, no le daré el código exacto, solo una idea general de lo que debe hacer.

Para el círculo:

La tortuga tiene una función circular que se parece a turtle.circle(n)donde n es el radio

Para el rectángulo:

Tienes 2 buenas opciones:

  1. Puede usar giros de 90 grados, como hacia la derecha o hacia la izquierda, y hacia adelante con sus longitudes para dibujar el rectángulo.
  2. Puede calcular las coordenadas xey de las cuatro esquinas y usar las funciones goto o setpos para ir a esas esquinas en orden

Para la línea:

Use el goto o setpos para ir a una ubicación haciendo una línea o use adelante para dibujar una línea recta en la dirección en la que está mirando.

2
  • Sin embargo, gracias por la respuesta, ya sé todo esto. Lo que estoy preguntando es más por usar clases para dibujarlo. Como si no estuviera seguro de cómo ponerlo en mi código para la subclase, de modo que cuando escriba Shape (100, 150) dibujará un rectángulo con esos parámetros. 2 dic 2015 a las 18:22
  • Necesitará crear métodos (como funciones en clases) y tener un método o más para cada forma. Luego puede poner su código en cada uno de estos métodos y luego llamarlos en la clase init. No debería necesitar clases diferentes para cada forma. 2 dic 2015 a las 19:29
0

Estoy trabajando exactamente en el mismo problema ahora: bajo forma crea una subclase para cada uno de tus diferentes tipos de formas. Entonces, al usar la clase en otro código, se vería así:

shape.rectangle(width,height)<<<(depending on how you're going to have it draw the thing)

Solución:

class Shape(self):
#then
def rectangle(self, width, height):
#instructions for making a rectangle with width and height in this case