Para hacer una definición generalizada que dibuje polígonos regulares centrados, vamos a utilizar la función t.goto(x,y), donde x e y son las coordenadas de un punto de la pantalla. Siempre comenzamos con la tortuga en el punto (0,0), desde allí podemos avanzar una distancia que llamaremos radio, también precisamos otra variable que nos indique la cantidad de lados del , a esta variable la llamaremos "lados".
La definición poligono centrado, tiene dos entradas, radio y lados. Lo primero que hacemos es levantar el lápiz de la tortuga, luego guardamos la posición inicial de la tortuga con la variable "posini" que toma el valor de t.pos(), ese valor es (0,0) lo que python llama una tupla. Esta variable nos servirá para volver a esta ubicación inicial. Creamos una lista que llamamos "puntos", donde vamos a ir acumulando los vértices de los polígonos. Luego calculamos la variable ang=360/lados, si fuera un triángulo el valor sería 360/3=120. Giramos a derecha t.right(90+ang/2), con este giro la base de los polígonos queda horizontal. El siguiente paso es hacer una iteración con "for i in range(lados): , se avanza con la tortuga el valor del "radio", se acumula en la lista " "puntos" el valor de la posición de la tortuga mediante puntos.append(t.pos()), la función append agrega a la lista puntos el valor que entrega t.pos() en un formato como este (x,y), donde "x" e "y" son las coordenadas al origen. Retrocedemos con t.backward(radio), después se gira a derecha el valor "ang", para ubicar la próxima dirección que tendrá la tortuga. Finalizada la iteración redirigimos la tortuga a su orientación inicial con t.left(90+ang/2).
Para materializar el polígono se usa otra iteración, se usa la sentencia t.goto(puntos[i]), la tortuga se dirije a cada uno de los puntos que antes acumulo en la lista puntos. Al ir variando el valor de "i" vamos obteniendo los distintos valores, en el caso de un triángulo son tres. la sentencia if i==0: , nos dice que en el primer valor de "i" la tortuga debe levantar el lápiz para ir desde el centro al primer punto, con los otros valores debe bajar el lápiz, de ese modo deja una huella y dibuja el triangulo. Fuera de la iteración debemos completar el polígono con la sentencia t.goto(puntos[0]). Por último levantamos el lápiz y usando el valor de "posini", volvemos al centro t.goto(posini), bajamos el lápiz para futuros dibujos.
El siguiente programa utiliza la definición poligono_centrado(radios,lados). Usamos una lista para los colores que llamamos "colores" y una lista "lado_poligono" que usamos para la cantidad de lados que tiene cada polígono. Usamos una iteración para dibujar los polígonos, solo el primero esta relleno, en los demás solo pintamos el borde.
A continuación una aplicación de lo "poligono_centrado", primero dibujamos dos hexágonos, a continuación seis hexágonos, por último los dos hexágonos centrales. Cada uno puede experimentar sus propios programas y compartirlos.