stringtranslate.com

Gráficos de tortugas

En el campo de la informática gráfica , los gráficos de tortuga son gráficos vectoriales que utilizan un cursor relativo (la " tortuga ") sobre un plano cartesiano (ejes x e y) . Los gráficos de tortuga son una característica clave del lenguaje de programación Logo . [1]

Descripción general

Una animación que muestra cómo se utiliza la tortuga para crear gráficos combinando comandos de avance y giro mientras un bolígrafo toca el papel.
Una espiral dibujada con un algoritmo iterativo de gráficos de tortugas
Un patrón gráfico de tortuga dibujado con un programa Python

La tortuga tiene tres atributos: una ubicación, una orientación (o dirección) y un bolígrafo. El bolígrafo también tiene atributos: color, ancho y estado encendido/apagado (también llamado abajo y arriba ).

La tortuga se mueve con órdenes relativas a su propia posición, como "avanzar 10 espacios" y "girar 90 grados a la izquierda". El bolígrafo que lleva la tortuga también se puede controlar, activándolo, configurando su color o su ancho. Un estudiante podría comprender (y predecir y razonar) el movimiento de la tortuga imaginando lo que haría si fuera la tortuga. Seymour Papert llamó a esto razonamiento "sintónico corporal".

Un sistema completo de gráficos de tortugas requiere un flujo de control, procedimientos y recursión: muchos programas de dibujo de tortugas no cumplen con estos requisitos. A partir de estos bloques de construcción, se pueden construir formas más complejas, como cuadrados, triángulos, círculos y otras figuras compuestas. La idea de los gráficos de tortugas, por ejemplo, es útil en un sistema Lindenmayer para generar fractales .

La geometría de tortuga también se utiliza a veces en entornos gráficos como alternativa a un sistema de gráficos orientado estrictamente a las coordenadas.

Historia

Los gráficos de tortuga a menudo se asocian con el lenguaje de programación Logo . [2] Seymour Papert agregó soporte para gráficos de tortuga a Logo a fines de la década de 1960 para respaldar su versión del robot tortuga , un robot simple controlado desde la estación de trabajo del usuario que está diseñado para llevar a cabo las funciones de dibujo asignadas a él utilizando un pequeño lápiz retráctil colocado en el cuerpo del robot o adherido a él. La geometría de tortuga funciona de manera algo diferente a la geometría cartesiana direccionada ( x , y ) , ya que se basa principalmente en vectores (es decir, dirección relativa y distancia desde un punto de inicio) en comparación con los sistemas direccionados por coordenadas, como mapas de bits o gráficos rasterizados. Como cuestión práctica, el uso de la geometría de tortuga en lugar de un modelo más tradicional imita la lógica de movimiento real del robot tortuga. La tortuga se representa tradicionalmente y con mayor frecuencia pictóricamente como un triángulo o un ícono de tortuga (aunque puede representarse con cualquier ícono).

En la actualidad, la biblioteca estándar del lenguaje de programación Python incluye un módulo gráfico Turtle. [3] Al igual que su predecesor Logo, la implementación de Turtle en Python permite a los programadores controlar una o más tortugas en un espacio bidimensional. Dado que la sintaxis estándar de Python, el flujo de control y las estructuras de datos se pueden utilizar junto con el módulo Turtle, Turtle se ha convertido en una forma popular para que los programadores que aprenden Python se familiaricen con los conceptos básicos del lenguaje. [4]

Ampliación a tres dimensiones

Gráficos de tortugas en 3D generados con Cheloniidae Turtle Graphics
Patrón dibujado con un programa Python

Las ideas detrás de los gráficos de tortugas se pueden extender para incluir el espacio tridimensional. Esto se logra utilizando uno de varios modelos de coordenadas diferentes. Una configuración común es cartesiana-rotacional como con la tortuga 2D original: se define un vector "arriba" adicional ( vector normal ) para elegir el plano en el que rota el vector "adelante" 2D de la tortuga; el vector "arriba" en sí también rota alrededor del vector "adelante". En efecto, la tortuga tiene dos ángulos de rumbo diferentes, uno dentro del plano y el otro que determina el ángulo del plano. Por lo general, cambiar el ángulo del plano no mueve la tortuga, en línea con la configuración tradicional.

Verhoeff 2010 [5] implementa el enfoque de dos vectores; se utiliza un comando de giro para rotar el vector "arriba" alrededor del vector "adelante". El artículo procede a desarrollar una teoría algebraica para demostrar propiedades geométricas a partir de propiedades sintácticas de los programas tortuga subyacentes. Una de las conclusiones es que un comando de inmersión es en realidad una forma abreviada de una secuencia de giro-giro-giro.

Cheloniidae Turtle Graphics es una biblioteca de tortugas 3D para Java . Tiene un comando de inclinación (igual que el de balanceo ) y un comando de inclinación (igual que el de inmersión ) en la "Tortuga cartesiana rotacional". Se permiten otros modelos de coordenadas, incluida la geometría no euclidiana, pero no se incluyen. [6]

Véase también

Gif animado con tortuga en MSWLogo ( Cycloid ) [7]

Referencias

  1. ^ Goldman, Ron; Schaefer, Scott; Ju, Tao. "Geometría de tortuga en gráficos de computadora y diseño asistido por computadora" (PDF) . CSE.WUSTL.edu .
  2. ^ Thornburg, David D. (marzo de 1983). "Friends of the Turtle: On Logo And Turtles". Compute! . pág. 148 . Consultado el 6 de octubre de 2013 .
  3. ^ "25.1. turtle — Gráficos de tortugas — Documentación de Python 3.7.0". docs.python.org . Consultado el 23 de agosto de 2018 .
  4. ^ "3. ¡Hola, pequeñas tortugas! — Cómo pensar como un científico informático: aprender con Python 3". python.camden.rutgers.edu . Consultado el 23 de agosto de 2018 .
  5. ^ Verhoeff, Tom (2010). «Geometría de tortuga 3D: obra de arte, teoría, equivalencia de programas y simetría». Revista Internacional de Artes y Tecnología . 3 (2/3): 288–319. doi :10.1504/IJART.2010.032569 . Consultado el 28 de febrero de 2021 .
  6. ^ Spencer Tipping sobre los quelonios (consultado el 17 de septiembre de 2016)
  7. ^ Pietrocola, Giorgio (2005). "Tartapelago". Maecla .

Lectura adicional