Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Como replicar a figura 3.24 c) do livro "The Algorithmic Beauty of Plants" de Przemyslaw Prusinkiewicz e Aristid Lindenmayer?

0 votos
25 visitas
perguntada Nov 2 em Ciência da Computação por pedro zarur (6 pontos)  

A figura se encontra na página 97

A imagem será apresentada aqui.

Compartilhe

1 Resposta

0 votos
respondida Nov 2 por pedro zarur (6 pontos)  

Vamos utilizar o módulo "turtle" do Python para criar uma função que replique a figura:

from turtle import *

def plant():

# configurações iniciais

a = Turtle()
hideturtle()
a.penup()
a.goto(0, -100)
a.pendown()
a.left(90)
a.forward(50)

# construindo os ramos

for c in range(30):
    a.forward(3)
    a.left(3)
a.penup()
a.goto(0, -40)
a.pendown()
a.right(90)
a.forward(50)
for c in range(30):
    a.forward(3)
    a.right(3)
a.penup()
a.goto(0, 20)
a.pendown()
a.left(90)
a.forward(50)
for c in range(30):
    a.forward(3)
    a.left(3)
a.penup()
a.goto(0, 80)
a.pendown()
a.right(90)
a.forward(50)
for c in range(30):
    a.forward(3)
    a.right(3)
a.penup()
a.goto(0, 140)
a.pendown()
a.left(90)
a.forward(100)

# capitulum da flor

a.left(90)
a.fillcolor('#CCCCCC')
a.begin_fill()
for c in range(20):
    a.forward(3)
    a.right(1)
a.right(150)
a.forward(10)
a.dot(size=10)
a.forward(15)
a.dot(size=8)
a.forward(13)
a.dot(size=8)
a.forward(12)
a.dot(size=8)
a.forward(10)
a.dot(size=5)
a.right(20)
a.forward(10)
a.dot(size=8)
a.forward(12)
a.dot(size=8)
a.forward(13)
a.dot(size=8)
a.forward(15)
a.dot(size=10)
a.forward(10)
a.penup()
a.goto(0, 240)
a.pendown()
a.left(10)
for c in range(20):
    a.forward(3)
    a.left(1)
a.end_fill()
a.penup()
a.goto(0, -200)
done()


if __name__ == '__main__':
    plant()

O resultado do código é a seguinte imagem:

A imagem será apresentada aqui.

comentou Nov 6 por VITOR B BORGES (1 ponto)  
Parabéns pelo desenho Pedro, ficou bem parecido com o original, o código está certinho e completamente replicável. A unica sugestão que eu teria seria adicionar a 'cabeça' dos caracóis que estão em cima da flor.
...