{"id":5,"date":"2019-09-26T17:23:11","date_gmt":"2019-09-26T17:23:11","guid":{"rendered":"https:\/\/www.pythonparatodo.com\/?p=5"},"modified":"2020-05-30T19:09:57","modified_gmt":"2020-05-30T19:09:57","slug":"python-turtle-graphics","status":"publish","type":"post","link":"https:\/\/www.pythonparatodo.com\/?p=5","title":{"rendered":"Python Turtle Graphics"},"content":{"rendered":"\n<p> Python Turtle Graphics es una implementaci\u00f3n del cl\u00e1sico lenguaje de la tortuga en Python el cual muestra un triangulo o la figura de una tortuga en un tablero gr\u00e1fico y realiza desplazamientos pintando el tablero en base a las instrucciones dadas. Para usarla hay que abrir el interprete de comandos de Python y escribir <strong>import turtle<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">import turtle<\/code><\/pre>\n\n\n\n<p>El tablero se mostrar\u00e1 al realizar el primer movimiento de la tortuga, para realizar esos movimientos se usan comandos a los que se les pasa un valor entero o flotante que indican el giro o la distancia a recorrer. La forma de la tortuga por defecto es un triangulo pero se puede cambiar, se puede averiguar la forma actual y luego cambiarla a una tortuga con el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">turtle.shape()\n'classic'\nturtle.shape('turtle')\nturtle.shape()\n'turtle'<\/code><\/pre>\n\n\n\n<p>Los giros de la tortuga se realizan con los comandos turtle.left(grados) y turtle.right(grados). <\/p>\n\n\n\n<p>El siguiente comando gira la tortuga 90\u00ba a la derecha.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">turtle.right(90)<\/code><\/pre>\n\n\n\n<p>Con el comando turtle.forward(distancia) se puede hacer que la tortuga vaya hacia adelante, salvo que el valor sea negativo en cuyo caso ir\u00e1 hacia atr\u00e1s. Para realizar el movimiento contrario se usa turtle.backward(distancia). Se podr\u00eda dibujar un cuadrado de 100 x 100 usando los comandos mostrado hasta ahora, de la siguiente forma:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">import turtle\nturtle.shape('turtle')\nturtle.right(90)\nturtle.forward(100)\nturtle.left(90)\nturtle.forward(100)\nturtle.right(90)\nturtle.backward(100)\nturtle.left(90)\nturtle.backward(100)<\/code><\/pre>\n\n\n\n<p>Se podr\u00eda haber dibujado el cuadrado simplemente girando 90\u00ba grados y recorriendo la distancia hacia adelante 100 pixeles pero de esta forma adem\u00e1s de los giros se ha usado visto tambi\u00e9n el funcionamiento del comando backward.<br>Con un bucle for se usan menos instrucciones, c\u00f3mo se puede observar en la figura 1.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">import turtle\nturtle.shape('turtle')\nfor x in range(4):\n\u2026 turtle.forward(100)\n\u2026 turtle.right(90)<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"544\" height=\"154\" src=\"https:\/\/www.pythonparatodo.com\/wp-content\/uploads\/2019\/09\/turtlefigura1.png\" alt=\"\" class=\"wp-image-6\" srcset=\"https:\/\/www.pythonparatodo.com\/wp-content\/uploads\/2019\/09\/turtlefigura1.png 544w, https:\/\/www.pythonparatodo.com\/wp-content\/uploads\/2019\/09\/turtlefigura1-300x85.png 300w\" sizes=\"auto, (max-width: 544px) 100vw, 544px\" \/><figcaption>Figura 1<\/figcaption><\/figure><\/div>\n\n\n\n<p>Se borra el resultado con <strong>turtle.clear() <\/strong>como en el siguiente c\u00f3digo: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">turtle.clear()\nfor x in range(4):\n\u2026     turtle.left(90)\n\u2026     turtle.forward(100)<\/code><\/pre>\n\n\n\n<p>El resultado es otro cuadro en diferente posici\u00f3n. Se puede dibujar un c\u00edrculo con el comando<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">turtle.circle(radio).\nimport turtle\nturtle.shape('turtle')\nturtle.circle(90)<\/code><\/pre>\n\n\n\n<p>Existen muchas mas funciones, para conocerlas y saber como funcionan se puede usar la ayuda <strong>help()<\/strong> de la siguiente forma:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">import turtle\nhelp(turtle)<\/code><\/pre>\n\n\n\n<p>Con este comando se ver\u00e1 la ayuda general de turtle, con lo que es posible tomar una idea general de qu\u00e9 es este m\u00f3dulo y para qu\u00e9 sirve. Con <strong>dir()<\/strong> se puede obtener informaci\u00f3n sobre los distintos componentes del m\u00f3dulo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">dir(turtle)\n['Canvas', 'Pen', 'RawPen', 'RawTurtle', 'Screen', 'ScrolledCanvas', 'Shape', 'TK', 'TNavigator', 'TPen', 'Tbuffer', 'Terminator', 'Turtle', 'TurtleGraphicsError', 'TurtleScreen', 'TurtleScreenBase', 'Vec2D', '_CFG', '_LANGUAGE', '_Root', '_Screen', '_TurtleImage', 'all', 'builtins', 'cached', 'doc', 'file', 'forwardmethods', '__func_body', '__loader', 'methodDict', '__methods', '__name', 'package', 'spec', '__stringBody', '_alias_list', '_make_global_funcs', '_screen_docrevise', '_tg_classes', '_tg_screen_functions', '_tg_turtle_functions', '_tg_utilities', '_turtle_docrevise', '_ver', 'addshape', 'back', 'backward', 'begin_fill', 'begin_poly', 'bgcolor', 'bgpic', 'bk', 'bye', 'circle', 'clear', 'clearscreen', 'clearstamp', 'clearstamps', 'clone', 'color', 'colormode', 'config_dict', 'deepcopy', 'degrees', 'delay', 'distance', 'done', 'dot', 'down', 'end_fill', 'end_poly', 'exitonclick', 'fd', 'fillcolor', 'filling', 'forward', 'get_poly', 'get_shapepoly', 'getcanvas', 'getmethparlist', 'getpen', 'getscreen', 'getshapes', 'getturtle', 'goto', 'heading', 'hideturtle', 'home', 'ht', 'inspect', 'isdown', 'isfile', 'isvisible', 'join', 'left', 'listen', 'lt', 'mainloop', 'math', 'mode', 'numinput', 'onclick', 'ondrag', 'onkey', 'onkeypress', 'onkeyrelease', 'onrelease', 'onscreenclick', 'ontimer', 'pd', 'pen', 'pencolor', 'pendown', 'pensize', 'penup', 'pos', 'position', 'pu', 'radians', 'read_docstrings', 'readconfig', 'register_shape', 'reset', 'resetscreen', 'resizemode', 'right', 'rt', 'screensize', 'seth', 'setheading', 'setpos', 'setposition', 'settiltangle', 'setundobuffer', 'setup', 'setworldcoordinates', 'setx', 'sety', 'shape', 'shapesize', 'shapetransform', 'shearfactor', 'showturtle', 'simpledialog', 'speed', 'split', 'st', 'stamp', 'sys', 'textinput', 'tilt', 'tiltangle', 'time', 'title', 'towards', 'tracer', 'turtles', 'turtlesize', 'types', 'undo', 'undobufferentries', 'up', 'update', 'width', 'window_height', 'window_width', 'write', 'write_docstringdict', 'xcor', \u2018ycor']<\/code><\/pre>\n\n\n\n<p>Si puede obtener ayuda mas concreta sobre alg\u00fan m\u00e9todo escribiendo help(turtle.nombre_m\u00e9todo) como en el siguiente c\u00f3digo en el que aparecer\u00e1 la ayuda del m\u00e9todo pencolor.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">help(turtle.pencolor)<\/code><\/pre>\n\n\n\n<p>En este caso concreto, la ayuda sobre el m\u00e9todo pencolor de turtle muestra lo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">Help on function pencolor in module turtle:\npencolor(*args)\n    Return or set the pencolor.\nArguments:\nFour input formats are allowed:\n  - pencolor()\n    Return the current pencolor as color specification string,\n    possibly in hex-number format (see example).\n    May be used as input to another color\/pencolor\/fillcolor call.\n  - pencolor(colorstring)\n    s is a Tk color specification string, such as \"red\" or \"yellow\"\n  - pencolor((r, g, b))\n    *a tuple* of r, g, and b, which represent, an RGB color,\n    and each of r, g, and b are in the range 0..colormode,\n    where colormode is either 1.0 or 255\n  - pencolor(r, g, b)\n    r, g, and b represent an RGB color, and each of r, g, and b\n    are in the range 0..colormode\n\nIf turtleshape is a polygon, the outline of that polygon is drawn\nwith the newly set pencolor.\nExample:\n>>> pencolor('brown')\n>>> tup = (0.2, 0.8, 0.55)\n>>> pencolor(tup)\n>>> pencolor()\n\u2018#33cc8c'<\/code><\/pre>\n\n\n\n<p>As\u00ed que si por ejemplo se pretende pintar un gran ocho de color rojo, se debe cambiar el color y hacer con dos c\u00edrculos rojos con el siguiente c\u00f3digo como se muestra en la figura 2:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">import turtle\nturtle.shape('turtle')\nturtle.pencolor('red')\nturtle.circle(60)\nturtle.right(180)\nturtle.circle(60)<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"204\" height=\"234\" src=\"https:\/\/www.pythonparatodo.com\/wp-content\/uploads\/2019\/09\/turtlefigura2.png\" alt=\"\" class=\"wp-image-7\"\/><figcaption>Figura 2<\/figcaption><\/figure><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Python Turtle Graphics es una implementaci\u00f3n del cl\u00e1sico lenguaje de la tortuga en Python el cual muestra un triangulo o &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5],"tags":[2,3],"class_list":["post-5","post","type-post","status-publish","format-standard","hentry","category-python","category-turtle","tag-python","tag-turtle"],"_links":{"self":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/5","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5"}],"version-history":[{"count":4,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/5\/revisions"}],"predecessor-version":[{"id":66,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/5\/revisions\/66"}],"wp:attachment":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}