Post on 20-Jan-2019
Sónia da Costa Ferreira Almeida
Utilização de Maplets para a
interpretação gráfica de
Sistemas de Lindenmayer
Departamento de Matemática Pura
da Universidade do PortoOutubro / 2007
Sónia da Costa Ferreira Almeida
Utilização de Maplets para a
interpretação gráfica de
Sistemas de Lindenmayer
Tese submetida à Faculdade de Ciências da Universidade do
Porto para obtenção do grau de Mestre em Ensino da Matemática
Departamento de Matemática Pura
da Universidade do Porto
Outubro / 2007
Agradecimentos
Ao Professor Doutor Fernando Jorge Soares Moreira por todo o apoio que me deu
durante o desenvolvimento deste trabalho. As suas valiosas sugestões e a constante
disponibilidade para debater os diversos aspectos relacionados com os assuntos que
abordei nesta tese, foram fundamentais para a sua execução.
Aos meus colegas da Escola EB 2,3/S Dr. Daniel de Matos, em Vila Nova de Poiares,
pelas conversas entre aulas.
À Mestre Lurdes Lima, por me ter incentivado a frequentar o mestrado no sentido do
aperfeiçoamento da minha prestação como professora.
À Marta, uma grande amiga em tempos longe de casa.
À Soraia e à Nanete, um agradecimento especial pela presença constante na minha
vida desde os tempos em que fizemos a Faculdade.
Aos meus pais, pelos valores que me transmitiram ao longo da vida, dois dos quais,
a perseverança e a capacidade de acreditar que sou capaz, foram fundamentais para
ultrapassar os obstáculos que foram surgindo ao longo do caminho.
Finalmente, ao Beto, por estar presente. Pela paciência, pelo incentivo, pelo apoio
incondicional e pela tranquilidade que me soube transmitir.
A todos agradeço, não sei se da forma mais adequada, mas pelo menos da forma mais
sincera.
3
«A Geometria dos Fractais não é apenas
um capítulo da Matemática, mas também
uma forma de ajudar os Homens a ve-
rem o mesmo velho Mundo diferentemente.»
Benoît Mandelbrot
4
Conteúdo
1 Introdução 8
1.1 Utilização dos computadores no ensino . . . . . . . . . . . . . . . . . . 9
1.2 Os Fractais no ensino da Matemática . . . . . . . . . . . . . . . . . . . 11
1.3 Acerca deste trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Fractais Simples 17
2.1 O que é um Fractal? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Características gerais sobre os Fractais . . . . . . . . . . . . . . . . . . 19
2.3 Exemplos de Fractais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.1 O Conjunto de Cantor . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.2 O Triângulo de Sierpinski . . . . . . . . . . . . . . . . . . . . . 21
2.3.3 O Tapete de Sierpinski . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.4 A Curva de Koch . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.5 A Curva de Peano . . . . . . . . . . . . . . . . . . . . . . . . . 24
3 Sistemas de Lindenmayer 26
3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5
3.2 A linguagem dos sistemas-L . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Modelação gráfica de um sistema-L . . . . . . . . . . . . . . . . . . . . 29
3.4 Geometria Fractal gerada por um Sistema-L . . . . . . . . . . . . . . . 31
3.4.1 Curvas de Koch . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4.2 Curvas de Preenchimento do Plano . . . . . . . . . . . . . . . . 40
3.4.3 Triângulo e Tapete de Sierpinski . . . . . . . . . . . . . . . . . . 43
3.4.4 Conjunto de Cantor . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5 Modelação de Plantas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4 Maple 10 52
4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2 Especificidades do Maplet Builder . . . . . . . . . . . . . . . . . . . . . 56
4.2.1 A interface do Maplet Builder . . . . . . . . . . . . . . . . . . . 56
4.2.2 Os elementos da Divisão Palette . . . . . . . . . . . . . . . . . . 58
4.3 Criar uma Maplet Simples usando o Maplet Builder . . . . . . . . . . . 65
5 Maplet para a interpretação gráfica de sistemas-L 74
5.1 Procedimentos no Maple 10 . . . . . . . . . . . . . . . . . . . . . . . . 75
5.1.1 Iniciar uma sessão de Maple . . . . . . . . . . . . . . . . . . . . 75
5.1.2 Área de trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.1.3 Procedimentos da Worksheet . . . . . . . . . . . . . . . . . . . 76
5.2 Construção da aplicação Fractmaplet . . . . . . . . . . . . . . . . . . . 89
5.2.1 Alteração do código do programa . . . . . . . . . . . . . . . . . 99
6
6 Fractmaplet e Geometria Dinâmica 101
6.1 Fractmaplet uma ferramenta para o ensino . . . . . . . . . . . . . . . . 102
6.2 A Geometria Dinâmica uma ferramenta para o ensino . . . . . . . . . . 104
6.2.1 A Geometria Dinâmica . . . . . . . . . . . . . . . . . . . . . . . 104
6.2.2 R.e.C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.2.3 Fractais construídos em R.e.C . . . . . . . . . . . . . . . . . . . 108
Índice Remissivo 118
Bibliografia 120
7
Capítulo 1
Introdução
As orientações curriculares actuais do ensino da disciplina de Matemática sublinham a
importância de potenciar as capacidades para a resolução de problemas, o raciocínio, a
comunicação e o pensamento crítico. Essas mesmas orientações apontam igualmente a
importância do desenvolvimento de atitudes e valores como o gosto pela Matemática,
a autonomia e a cooperação. Para atingir estes objectivos, parece fundamental propor-
cionar aos alunos experiências diversificadas, baseadas em tarefas matematicamente
ricas, realizadas num ambiente de aprendizagem estimulante.
A aprendizagem decorre em consequência da actividade que o aluno desenvolve e
da reflexão que sobre ela faz. Nos dias de hoje, isto é considerado um elemento
fulcral do processo ensino-aprendizagem. Ao professor cabe planear e conduzir aulas
que tenham em conta as características e interesses dos alunos e tirem partido dos
recursos existentes. Aos tradicionais manuais escolares, fichas de trabalho, quadro,
retroprojector, materiais manipuláveis, junta-se hoje em dia o uso da calculadora,
computador e rede Internet.
Este trabalho tenta estabelecer uma ponte entre um tema que potencia a realização
de tarefas matematicamente ricas e o uso dos recursos computacionais. O tema aqui
8
CAPÍTULO 1. INTRODUÇÃO 9
abordado será a Geometria Fractal a um nível elementar, apropriado para o ensino
secundário. As ferramentas computacionais aqui propostas assentam num programa de
geometria dinâmica e na utilização do conhecido software Maple de cálculo simbólico
e numérico.
1.1 Utilização dos computadores no ensino
"O sistema educativo português assume como objectivo estratégico a neces-
sidade de assegurar a todos os jovens o acesso às tecnologias de informação
e da comunicação como condição indispensável para a melhoria de quali-
dade e da eficiência da educação à luz das exigências da sociedade e do
conhecimento."
Reforma do ensino Secundário in http://www.dgic.min-edu.pt
Hoje em dia, a utilização das novas tecnologias de informação, em particular, dos
computadores é comum na sociedade. Na comunidade escolar o seu uso já não tem
a importância de reforçar a aquisição de conhecimentos e técnicas, mas sim, o de
desenvolver novas competências e capacidades.
O papel educativo da matemática, também se alterou. Esta legou para segundo plano
o objectivo de misturar conhecimentos e técnicas através da memorização e da prática
repetitiva. E traz para si a responsabilidade de contribuir, para que o aluno aprenda a
"interrogar, conjecturar, descobrir e argumentar raciocinado sobre objectos abstractos
relacionando-os com a realidade física e social".(J.M. Ponte [9])
Consequentemente, a função do professor também se modifica. O professor é incum-
bido de uma nova missão, a de inovar, diversificar, transformar, motivar, em suma criar
CAPÍTULO 1. INTRODUÇÃO 10
uma verdadeira comunidade de aprendizagem. Para tal, o professor tem de repensar
o ensino, produzir os seus próprios materiais, alterar as suas planificações no sentido
de estimular os alunos a tirarem partido das novas tecnologias.
Aos alunos, deixa de lhes ser atribuído um papel passivo. Eles precisam de ser inseridos
em ambientes de aprendizagem que lhes reserve um papel participativo e criativo.
O uso do computador possibilita o desenvolvimento de tal ambiente de trabalho,
onde se pode levar a cabo actividades matemáticas ricas e estimulantes. O uso deste
instrumento é capaz de despertar o interesse dos alunos, motivá-los e, ao mesmo tempo,
estimular-lhes uma atitude crítica e de investigação, enriquecendo a sua capacidade de
raciocínio e comunicação.
Mas o sucesso de aulas planificadas para o uso das tecnologias vai depender em muito
do papel do professor. Ele tem de ser capaz de criar e manter o ambiente construtivista
a que me referi anteriormente. Ao professor cabe a responsabilidade de dinamizar e
regular o processo de ensino-aprendizagem, tendo os alunos de assumir o papel de
agentes da sua própria aprendizagem.
Assim, o professor ao mobilizar as tecnologias para uma aprendizagem não directiva
da matemática, pode influenciar positivamente a atitude do aluno face à própria ma-
temática, proporcionando que o estudante desenvolva o gosto e a confiança pessoal em
realizar actividades que envolvam o raciocínio matemático. Mais ainda, ao criar uma
forma interessante e divertida de aprender proporcionada pelo uso dos computadores,
pode cativar também aqueles alunos que têm uma atitude de desânimo perante o
ensino.
Neste sentido, o professor tem de ter a capacidade de produzir, tratar, difundir e
interagir os conteúdos matemáticos com os alunos. Para tal, terá que dispor de
programas com essas potencialidades.
CAPÍTULO 1. INTRODUÇÃO 11
1.2 Os Fractais no ensino da Matemática
"O estudo de padrões e regularidades é central em matemática e, natural-
mente, actividades envolvendo padrões e regularidades atravessam o currí-
culo dos três ciclos de educação básica. O campo dos números é propício a
este tipo de actividades, as quais contribuem para desenvolver o raciocínio
e estabelecer conexões entre diversas áreas da matemática. Sempre que pos-
sível, os alunos devem envolver-se em actividades de natureza exploratória
e investigativa, com a possibilidade de explicar e justificar os seus processos
de pensamento ou as sua soluções".
Ministério da Educação, A Matemática na Educação Básica, Lisboa, 1999 (págs.
55 e 56)
Os fractais, ou a geometria fractal, são um tema que suscita o interesse de professores
e alunos pelos mais diversos motivos. Para além do facto de a sua forma estar
presente na natureza e de produzirem imagens admiráveis, estes entes matemáticos
escondem quase sempre inúmeras e interessantes surpresas. Estes aspectos são por si
só suficientes para motivar os professores a criarem actividades para serem exploradas
pelos seus alunos. Por outro lado, a abordagem dos fractais proporciona uma visão
diferente da Matemática por parte dos alunos, o que permite estimular o interesse
destes e envolvê-los nos conteúdos programáticos da matemática. Mais, os fractais
proporcionam a abordagem de uma quantidade considerável de conceitos, quantidade
essa que pode ser tanto maior quanto mais avançado for o nível dos alunos.
Se analisarmos o programa curricular de Matemática para o Ensino Básico e Ensino
Secundário, encontramos vários conteúdos com que os alunos podem adquirir, com-
preender ou aplicar uma tarefa que envolva a construção e/ou o estudo de fractais.
Alguns desses conteúdos são a auto-semelhança, a forma, a dimensão, os polígonos e
sólidos geométricos, os ângulos internos e externos, as áreas, os volumes e perímetros, a
trigonometria, os números complexos, as funções (afim, quadrática, trigonométrica,...),
CAPÍTULO 1. INTRODUÇÃO 12
as transformações geométricas (translação, rotação, simetria, homotetias,...), os vec-
tores, as semelhanças de figuras (razão de semelhança, ampliação, redução, razão
entre áreas e volumes de figuras semelhantes,...), as sucessões (termos, termo geral-
generalização, limite, sucessão limitada, infinitésimo, infinitamente grande, noção de
infinito,...), as operações com conjuntos e iteração de funções.
Os fractais ao serem explorados pelos alunos apresentam-se como um tema estratégico,
inovador, que poderia facilitar os processos de desenvolvimento, aquisição de valores e
aptidões e de um conjunto de competências essenciais e transversais à Matemática que
não podem ser descurados. O aluno ao ser convidado a observar e analisar os diversos
elementos geométricos subjacentes a um fractal, a procurar e identificar regularidades,
a estabelecer generalizações, desenvolve assim a capacidade de investigação matemá-
tica enquanto descobre propriedades insuspeitas e muito intrigantes dos fractais. Ao
mesmo tempo que desenvolve hábitos de trabalho e de persistência, confronta-se com
o sentido de estética, nomeadamente através da composição geométrica de padrões
e figuras e é obrigado a apreciar elementos da natureza em que a Matemática está
patente. Mais, encontra a geometria no mundo real e reconhece a utilização de ideias
geométricas em diversas situações, visualiza e desenvolve um raciocínio especial na
análise de situações e na resolução de problemas em geometria, bem como noutras
áreas da Matemática. Desenvolve a capacidade de comunicar e transmitir conceitos,
ideias e procedimentos, tanto em linguagem corrente, como em linguagem matemática
e ainda cria confiança em si próprio no confronto com situações novas.
1.3 Acerca deste trabalho
Uma vez que os fractais são um tema actual e, ao mesmo tempo, despertam a curiosi-
dade dos alunos pelas figuras "fantásticas" que apresentam, cativando-os e motivando-
os para a matemática, nós não poderíamos ficar indiferentes e, por isso, o fio condutor
deste trabalho é a construção de ferramentas computacionais que permitam a um
CAPÍTULO 1. INTRODUÇÃO 13
professor do ensino secundário abordar o estudo da Geometria Fractal, tendo como
objectivo último criar uma maplet que servirá de interface gráfico interativo para o
utilizador.
No Capítulo 2 é feita uma breve explicação do que é um Fractal, apontando algumas
das suas principais características e descrevendo-se aqui como são gerados. O Conjunto
de Cantor, o Triângulo de Sierpinski, o Tapete de Sierpinski, a Curva de Koch e a Curva
de Peano, são os exemplos clássicos aqui utilizados.
Todos os fractais presentes neste trabalho são produzidos por iterações de sistemas
introduzidos pelo biólogo Aristid Lindenmayer para descrever o desenvolvimento e
crescimento de plantas [5]. Estes sistemas, que designaremos por sistemas-L, serão
apresentados no Capítulo 3. Cada sistema constrói iterativamente uma sequência
de símbolos que depois são susceptíveis de serem interpretados geometricamente. A
interpretação geométrica de cada símbolo bem como as instruções necessárias para
caracterizar um sistema-L que modele um fractal em particular, é também aqui espe-
cificada.
Neste capítulo fica-se a conhecer os sistemas-L que modelam fractais simples, curvas
clássicas de preenchimento do plano e aqueles que produzem imagens relativamente
realistas que se assemelham a plantas, arbustos e árvores. Para cada sistema é indicado
os símbolos que compõem o estado inicial (axioma) e as respectivas regras de produção.
Para o tratamento do sistemas-L e interpretação geométrica é imprescindível a utiliza-
ção de ferramentas computacionais. O programa escolhido para esse fim foi o software
de programação Maple. O Maple é um dos mais conhecidos e utilizados programas
de software de computação numérica e simbólica. Este programa está apetrechado
desde há longa data de rotinas que permitem modelar e introduzir de uma forma mais
interactiva conteúdos programáticos dos mais diversos ramos de Matemática. Na sua
versão mais recente, apresenta um assistente que possibilita a construção, na linguagem
CAPÍTULO 1. INTRODUÇÃO 14
Maple, de interfaces gráficas "amigáveis" para os utilizadores finais- As Maplets.
No Capítulo 4, é apresentado o programa Maple 10 e com ênfase ao funcionamento da
ferramenta Maplet Builder que, como o nome indica, serve para construir interfaces
amigáveis à linguagem própria do Maple. Neste capítulo, fica-se a conhecer os vários
interfaces que ficam disponíveis depois da instalação completa do software, a saber
como aceder ao assistente Maplet Builder, a conhecer o seu interface e os elementos
e comandos que estão disponibilizados. Far-se-á uma descrição desses elementos para
que se possa compreender como os vários elementos podem interagir entre si para
produzir os programas interactivos. No final deste capítulo, é descrito os passos para
a construção de uma Maplet Simples que traça o gráfico de funções de uma variável
real.
Figura 1.1: Interface da Maplet
Ao serem seguidos os passos para a sua construção torna-se claro como é simplificado o
trabalho do autor de Maplets com esta inovação. Assim, os professores podem utilizar
esta maplet e modificá-la para o estudo gráfico de uma função ou criar as suas próprias
Maplets adequadas ao que pretendem fazer com elas. Existe um vasto reportório na
Internet (por exemplo, em [22]) de Maplets ja construídas que podem ser utilizadas
CAPÍTULO 1. INTRODUÇÃO 15
e/ou modificadas.
O Maplet Builder torna-se, portanto, numa ferramenta inovadora que permite ao
professor desenvolver interfaces gráficas acessíveis para os estudantes. Na verdade,
o facto de o Maplet Builder permitir construir Maplets sem se ter de conhecer de
forma profunda o código Maple foi o principal interesse para o explorar. Por este
motivo, aquando da abordagem do código de programação que está por trás da janela
interactiva, não será dado a conhecer o código subjacente (para esse fim consultar
[16]).
O Maplet Builder permitiu avanços notórios na construção da maplet desejada e que
serão apresentados no capítulo 5. A utilização desta ferramenta é muito intuitiva.
Através do recurso "arrasta-e-solta", o autor vai alojando no espaço próprio os ele-
mentos que pretende que a sua janela exiba. Estes elementos ficam automaticamente
criados e preparados sem que o utilizador tenha que inserir uma única linha com
comandos de execução.
Esta ferramenta permite que alunos/professores tirem partido das potencialidades
do Maple, sem que seja necessário saberem a linguagem própria do Maple, pois o
seu extraordinário conhecimento específico permite que estes possam criar interfaces
interactivas para obterem as respostas aos seus problemas ou tomando a posição de
utilizador final usufruírem de janelas interactivas sem precisarem sequer de correr o
programa Maple.
É no Capítulo 5 em que se apresenta a Maplet que permite obter as imagens geométri-
cas que derivam da interpretação geométrica de um sistema-L: Fractmaplet. Neste
capítulo começa-se por descrever como se inicializa uma secção Maple, como é que
se acede ao assistente Maplet Builder e por último dá-se uma descrição detalhada da
construção Fractmaplet.
No final, o Capítulo 6 apresenta a construção de um fractal através da abordagem ao
CAPÍTULO 1. INTRODUÇÃO 16
recurso de software de Geometria Dinâmica. Depois de compreendermos o conceito
de Geometria Dinâmica veremos como este software pode ser utilizado para a criação
de fractais anteriormente obtidos recorrendo a sistemas-L e à Fractmaplet.
O programa utilizado aqui será o programa Régua e Compasso (R.e.C.) que é um
programa de livre utilização e chamado também de "opensource" em que se tem acesso
ao código fonte do programa.
Não é intenção explorar exaustivamente as características do programa R.e.C., mas sim
antes mostrar como é possível produzir os mesmos fractais que anteriormente foram
obtidos com a Fractmaplet.
A introdução de duas ferramentas computacionais permite tirar proveito das caracte-
rísticas positivas do computador e eventualmente proporcionar a entrada dos alunos
para o mundo da programação (Fractmaplet) e da exploração de software dinâmico
(R.e.C.).
Capítulo 2
Fractais Simples
Começamos por uma breve explicação do que é um Fractal, apontando algumas das
suas principais características e descrevendo-se aqui como são gerados, para que no
capítulo posterior se compreenda o sistema que modela a sua construção. O Conjunto
de Cantor, o Triângulo de Sierpinski, o Tapete de Sierpinski, a Curva de Koch e a
Curva de Peano, são os exemplos clássicos aqui utilizados.
2.1 O que é um Fractal?
"Tais objectos, possuindo uma estrutura detalhada em muitas escalas de
ampliação, abundam na Natureza; mas só recentemente foram identificados
por artistas e matemáticos como algo que vale a pena ser estudado por si
só. O resultado é um novo tipo de figura geométrica, chamada um fractal."
Ian Stewart, The Problems of Mathematics,Oxford University Press, 1987.
Nos últimos anos conheceram-se diferentes definições e associações para o conceito
de fractal. No entanto, a noção que serviu de fio condutor a todas as definições
foi introduzida pelo matemático francês Benoît Mandelbrot, em 1975, através do
17
CAPÍTULO 2. FRACTAIS SIMPLES 18
neologismo "Fractal". A palavra Fractal surgiu do adjectivo latino fractus, que significa
irregular ou quebrado, como ele próprio disse: "Eu cunhei a palavra fractal do adjectivo
em latim fractus. O verbo em latim correspondente frangere significa quebrar (. . . )
também significa irregular. Os dois significados estão preservados em fragmento." ([6,
p. 4]) O pesquisador Benoit Mandelbrot desenvolve, assim, a noção de fractal e de
geometria fractal, que dá a conhecer no seu livro The Fractal Geometry of Nature,
publicado em 1983 quando questiona: "Porque é que a geometria é habitualmente
descrita como fria e austera? Uma razão reside na sua inaptidão em descrever a forma
de uma nuvem, de uma montanha, de uma linha costeira, de uma árvore. As nuvens
não são esferas, as montanhas não são cones, as linhas costeiras não são circunferências
e a casca de uma árvore não é suave, nem os relâmpagos viajam em linha recta (...)
A natureza exibe não apenas um grau mais elevado, mas um nível de complexidade
completamente diferente. O número de diferentes escalas de comprimento dos motivos
naturais é para todos os efeitos infinito. A existência desses motivos desafia-nos a
estudar formas que Euclides deixou de parte como não tendo uma forma definida,
desafia-nos a investigar a morfologia do amorfo." ([6, p. 1])
Nascia, então, a geometria fractal que era capaz de descrever o pormenor irregular e
quase aleatório de muitos dos padrões da natureza.
Os fractais são, encarados como, formas geométricas abstractas de uma beleza incrível,
com padrões complexos que se repetem infinitamente, mesmo limitados a uma área
finita. Mandelbrot constatou, ainda, que todas estas formas e padrões, possuíam
algumas características comuns e que havia uma curiosa e interessante relação entre
estes objectos e aqueles encontrados na natureza. São exemplo: a couve-flor, os
brócolos, as nuvens, a difusão num sólido, a turbulência, os modelos do relevo e dos
contornos terrestres, o sistema circulatório, o tecido pulmonar, etc.
Neste trabalho não se pretende apresentar uma definição matemática de fractal, mas
apenas introduzir estes objectos de uma forma simples e intuitiva, através de duas das
suas características mais representativas: «Fractais são objectos gerados pela repeti-
CAPÍTULO 2. FRACTAIS SIMPLES 19
ção de um mesmo processo recursivo, apresentando auto-semelhança e complexidade
infinita.» Estas e outras características serão abordadas na secção seguinte.
2.2 Características gerais sobre os Fractais
Os fractais podem apresentar uma infinidade de formas diferentes, não existindo uma
aparência consensual. Contudo, existem duas características muito frequentes nesta
geometria: a auto-semelhança e a complexidade infinita. A auto-semelhança de um
fractal resulta do facto deste objecto geométrico normalmente possuir cópias dele
próprio, o que quer dizer que cada uma das partes que o compõem têm a mesma
forma que o modelo original, ou seja, visto em diferentes escalas a imagem de um fractal
parece similar. A outra característica que define um fractal, a complexidade infinita,
é uma propriedade dos mesmos que significa que nunca conseguiremos representá-los
completamente, pois a quantidade de detalhes é infinita, sempre existirão reentrâncias
e saliências cada vez menores. Esta propriedade gera um paradoxo, pois os fractais têm
uma área finita (a superfície que ocupam está contida dentro de uns limites) e possuem
um perímetro infinito, isto quer dizer que o comprimento da linha que delimita essa
área é infinita, já que se tentarmos medi-la veremos que cada vez que a ampliarmos
aparece mais rugosa e, por isso, com um comprimento cada vez maior.
A auto-semelhança pode ser quantificada por um coeficiente chamado dimensão frac-
cionária. Recordemos que na geometria euclidiana a dimensão de um objecto é um
conceito bastante intuitivo: uma "linha" tem dimensão 1, um plano tem dimensão
2; e qualquer corpo sólido tem dimensão 3. A característica de um fractal é que
a sua dimensão não é um número inteiro ([4, p. 31]). A definição precisa, do
que de facto é, a dimensão fractal encerra algumas complexidades matemáticas, mas
ainda assim conserva certas doses de intuição. Por exemplo, que uma linha costeira
tenha uma dimensão fractal de 1,4 perante outra que tenha 1,2 dá a ideia de que a
primeira apresenta maior rugosidade que a segunda. Deste modo, podemos acrescentar
CAPÍTULO 2. FRACTAIS SIMPLES 20
ainda que a dimensão fractal é um número (não necessariamente inteiro), que permite
quantificar o grau de irregularidade ou de fragmentação de um conjunto.
Em suma, pode dizer-se, que um objecto fractal é um ente matemático fascinante que
repete a forma do todo em partes que progressivamente se considere.
2.3 Exemplos de Fractais
No final do século XIX e início do século XX, alguns matemáticos como,
Cantor, Koch, Sierpinski e Peano investigaram objectos que punham em
causa algumas das bases matemáticas da época relacionadas com a análise,
a álgebra e a geometria. Estes objectos considerados como "monstros
matemáticos" seriam denominados de fractais e receberiam o nome do
seu criador.
2.3.1 O Conjunto de Cantor
Um dos fractais que se fizeram mais famosos é o que o matemático Russo Georg
Cantor (1845-1918) idealizou em 1883 no decorrer dos seus trabalhos ligados à Teoria
dos Conjuntos: o Conjunto de Cantor, também conhecido como Poeira de Cantor.
Este objecto fractal constrói-se a partir de um segmento de recta, incluindo as ex-
tremidades, divide-se em três partes iguais e elimina-se a parte do meio, mas não as
extremidades. Ficamos então com dois segmentos de recta e com um total de quatro
pontos de extremidade. Repete-se o mesmo processo com os outros dois troços e assim
sucessivamente, ad infinitum, obtemos no limite o Conjunto de Cantor.
CAPÍTULO 2. FRACTAIS SIMPLES 21
Figura 2.1: Conjunto de Cantor
2.3.2 O Triângulo de Sierpinski
Em 1915, o matemático polaco Waclav Sierpinski (1882-1969), construiu uma genera-
lização do Conjunto de Cantor que ficou conhecida como o Triângulo de Sierpinski.
Existem diversos processos de construção deste fractal. Aquele aqui descrito e que
produz geometricamente a figura 2.2, refere-se a um processo recursivo que se obtém
começando com um triângulo equilátero do plano, o qual se dividi em quatro triângulos
equiláteros mais pequenos (desenhar no interior do triângulo original outro, com os
vértices nos pontos médios dos lados) e se remove o central. Num segundo passo,
procede-se do mesmo modo para cada um dos três triângulos restantes. E assim
sucessivamente ad infinitum, obtemos no limite o Triângulo de Sierpinski.
Figura 2.2: Figura inicial e primeiras três iterações da construção do Triângulo de
Sierpinski
CAPÍTULO 2. FRACTAIS SIMPLES 22
2.3.3 O Tapete de Sierpinski
Deve-se também a Waclav Sierpinski outro fractal clássico: o Tapete de Sierpinski.
O processo de construção é idêntico ao descrito anteriormente. Neste começa-se com
um quadrado do plano, o qual se subdivide em nove quadrados mais pequenos e se
remove o central. Repete-se o mesmo processo para os oito quadrados restantes. E
assim sucessivamente ad infinitum, obtemos no limite o Tapete de Sierpinski.
Figura 2.3: Figura inicial e primeiras quatro iterações da construção do Tapete de
Sierpinski
2.3.4 A Curva de Koch
Este fractal obtém-se a partir de um triângulo equilátero, cujo lado se toma para
unidade de comprimento. O processo consiste em dividir cada um dos três segmentos
de recta que formam o triângulo em três partes iguais e desenhar um novo triângulo
equilátero cuja a base corresponde ao segmento do meio. Esta base do triângulo, por
sua vez desaparece. Veja-se a figura 2.4.
CAPÍTULO 2. FRACTAIS SIMPLES 23
Figura 2.4: Segmento inicial e primeiras duas iterações da Curva de Koch
Continua-se o processo do mesmo modo, dividindo cada novo segmento em três partes
iguais e substituindo o do meio por um novo triângulo equilátero ao qual se remove a
base. Diz-se que este é um processo recursivo. No limite obtemos a chamada Curva de
Koch ou Curva de Floco de Neve, que foi criada em 1904 pelo matemático sueco Helge
Van Koch (1870-1924). Sobre este fractal Mandelbrot afirma "é um modelo grosseiro,
mas vigoroso de uma linha costeira", podendo também receber o nome de "Ilha de
Koch".
Figura 2.5: Figura inicial e primeiras três iterações da Ilha de Koch
O exemplo clássico de um objecto gráfico definido em termos de regras de reescrita é de
facto o fractal Floco de Neve. Mandelbrot que ([6, p. 39]) já descreve esta construção
do seguinte modo:
CAPÍTULO 2. FRACTAIS SIMPLES 24
Começamos com duas formas, o iniciador e o gerador. O último,
é uma linha quebrada e orientada composta por N segmentos de
comprimento r. Assim cada estádio da construção começa com
uma linha quebrada e consiste em substituir cada segmento de recta
por uma cópia do gerador, reduzida e deslocada para ter os mesmos
pontos de extremidade que aqueles do segmento que está a ser
substituído.
Figura 2.6: Construção do Floco de Neve
2.3.5 A Curva de Peano
Em 1980, Giuseppe Peano (1858-1932) e, apenas um ano depois, David Hilbert (1862-
1943) descobriam que uma simples curva "pode cobrir" todo o plano, no sentido que
c : [0, 1] −→ R2 é contínua e sobrejectiva. Este tipo de curvas são hoje designadas por
Curvas de Preenchimento.
CAPÍTULO 2. FRACTAIS SIMPLES 25
O algoritmo para gerar estas curvas será apresentado na secção 3.4.2. Para agora referi-
mos brevemente a construção devida a Peano. Esta realiza-se partindo de um segmento
orientado1. Na primeira iteração, este segmento é substituído por nove segmentos
orientados de comprimento igual a um terço do comprimento inicial e dispostos como
na figura 2.7. Esses nove segmentos que constituem a primeira iteração constituem
a curva geradora do processo recursivo de construção da curva de Peano. Aplica-se
sucessivamente a cada novo segmento, o processo recursivo descrito anteriormente.
Figura 2.7: Figura inicial e primeiras três iterações da Curva de Peano
Como podemos observar, logo a partir da primeira iteração, estas curvas podem
intersectar-se a si próprias nos vértices dos pequenos quadrados que se vão formando
em cada etapa. No limite dá-se o preenchimento do plano.
1O segmento orientado [PQ] representa a curva c(t) = (1− t)P + tQ, t ∈ [0, 1].
Capítulo 3
Sistemas de Lindenmayer
Sistema de Lindenmayer que passamos a designar por sistema-L é um
modelo matemático apresentado pelo biólogo Aristid Lindenmayer [5], em
1968, para descrever o crescimento e desenvolvimento de plantas. Este
modelo utiliza o conceito de gramática, isto é, um conjunto de regras
que permitem gerar algoritmicamente sequências de símbolos duma dada
linguagem a partir de um alfabeto inicial. Depois de se definir uma inter-
pretação geométrica para cada símbolo, torna-se possível gerar imagens a
partir de sequências de símbolos (palavras). Os sistemas-L podem ser
usados na computação de fractais e na modelação de plantas de uma
maneira muito realista.
3.1 Introdução
Um sistema-L é caracterizado por um alfabeto, um axioma e um conjunto de regras
de produção (ou crescimento). O alfabeto é um conjunto de símbolos e as regras de
produção definem transformações de determinado símbolo numa sequência de símbo-
los. A partir de uma palavra inicial (axioma), um sistema-L constrói iterativamente
26
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 27
sequências de símbolos, substituindo cada símbolo pela palavra definida nas regras de
produção.
Depois de gerada uma palavra por este processo interactivo, esta é interpretada como
uma sequência de comandos que controlam o movimento de uma "tartaruga". O
"rasto" produzido pelo movimento da tartaruga produzirá a imagem do sistema-L,
vemos que é assim possível modelar variadas curvas fractais, desde a Curva de Koch,
a curvas clássicas de preenchimento do plano e a imagens relativamente realistas de
plantas e árvores.
3.2 A linguagem dos sistemas-L
A linguagem formal dos Sistemas de Lindenmayer será aqui, primeiramente abordada
de forma intuitiva, com um exemplo que traduz a evolução num sistema-L.
Considere-se sequências de caracteres construídas com as duas letras a e b, que podem
ocorrer várias vezes numa cadeia. Para cada letra especificamos uma regra de subs-
tituição. A regra a → ab, transforma a letra a na sequência ab e a regra b → a , do
mesmo modo, transforma a letra b na letra a. Cada regra de substituição descreve como
é a transformação de um caracter em particular. No início, a cadeia é representada
por uma sequência de caracteres, designada axioma. Tomemos a palavra ”b” como
axioma. A primeira iteração consiste em substituir o axioma b por a, isto porque
usamos a instrução b → a. Na segunda iteração ”a” é substituído por ab usando a
regra a → ab , obtendo a palavra ”ab” constituída por duas letras. Na próxima iteração
as duas letras são simultaneamente substituídas, em que a é substituída por ab, e b
por a, resultando na palavra, ”aba”. Este processo continua de forma similar, de tal
modo, que da palavra ”aba” produz-se ”abaab”, que por sua vez origina ”abaababa”,
e assim sucessivamente (veja-se a figura 3.1).
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 28
Figura 3.1: Exemplo de iteração num sistema-L
Com base na descrição efectuada passamos agora a definir formalmente um sistema-L.
Seja V um conjunto não vazio denominado por alfabeto e que seja constituído por um
número finito de letras do alfabeto ou outros símbolos1, V ∗ =⋃
n∈N V n designamos
o conjunto de todas as palavras (sequência de símbolos) de V , e V +, o conjunto de
todas as palavras não vazias de V .
Definição: Um sistema-L é um terno ordenado G = 〈V, w, P 〉, onde
1. V é o alfabeto do sistema;
2. w ∈ V + é uma palavra não vazia que se denomina de axioma;
3. P ⊂ V × V ∗ é o conjunto finito de regras de produção.
Se o par (a, χ) é uma regra de produção, (a, χ) ∈ P , escrevemos a → χ. A letra a
é designada por substituído e a palavra χ por substituto da regra, respectivamente.
Assume-se que para toda a letra a ∈ V , há pelo menos uma palavra χ ∈ V +, de tal
modo que a → χ.
1Por exemplo {+,−, ], [}
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 29
Definição: Seja G = 〈V, w, P 〉 um sistema-L, e seja µ = a1...am uma palavra de
V . Uma palavra ν ∈ V ∗ deriva directamente de µ (ou é gerada por µ), e escreve-se
µ ⇒ ν, se e só se existir χ1...χm ∈ V ∗(m ∈ N) tal que ν = χ1...χm e ai → χi para todo
i = 1, ...,m. Uma palavra ν é gerada por G numa iteração de ordem n, se existir uma
sequência de palavras µ0, µ1, ..., µn tal que µ0 = w, µn = ν e µ0 ⇒ µ1 ⇒ ... ⇒ µn.
3.3 Modelação gráfica de um sistema-L
Nesta secção vamos formalizar a noção da interpretação geométrica de uma palavra de
V ∗ como um subconjunto do plano. Designaremos por P(R×R) o conjunto dos pontos
do plano. Tomemos como alfabeto um conjunto V contendo os símbolos {F, G, +,−}.
Definição: Uma imagem Π é um conjunto de pontos do plano: Π ⊂ R× R. Uma
função I : V ∗ −→ 2RxR que transforma o conjunto de palavras do alfabeto V no
conjunto de imagens designa-se por ’função de interpretação gráfica’.
As funções de interpretação gráfica que geram as várias imagens deste trabalho baseiam-
se na conhecida linguagem LOGO (consultar [3]) e são tradicionalmente modeladas
pelo hipotético rasto do movimento de uma tartaruga.
Fixa-se inicialmente um número finito N que delimita o número de direcções que
a tartaruga conhece. Apenas as direcções que fazem um ângulo de k = 360/N
(k = 0, ..., N − 1) com o eixo Ox são possíveis.
Um terno (x, y, α) com (x, y) ∈ R2 e α = 360/N (N ∈ N) representa a posição (x, y)
da tartaruga e α o ângulo (direcção) do seu movimento. Designamos os ternos (x, y, α)
por estados da tartaruga.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 30
Fixamos d um número real positivo2. No que se segue δ, designado por ângulo de
incremento tem o valor δ = 360/N . 3
Tomamos um ponto inicial (x0, y0) = (0, 0) e α = 0. Temos assim a tartaruga na
origem (0, 0) com movimento inicial α = 0.
Passamos agora a descrever a função de interpretação gráfica utilizada para o
alfabeto {F, G, +,−}.
Vamos então supor que para palavras v de comprimento n temos definido a imagem
f(v) em que f é a função de interpretação gráfica e p(v) é um terno que passamos a
designar por estado final da tartaruga. Vamos agora definir indutivamente para uma
palavra w′ de comprimento n + 1, f(w′) e p(w′).
Seja w′ = a1a2...anan+1, definindo w = a1a2...an temos por hipótese definido f(w),
que é um subconjunto de R× R e p(w) que é um terno (x, y, α) ∈ R3.
Então, se
• an+1 = F : pretendemos modelar que a tartaruga andou na direcção α a distância
d. Formalmente, temos então que p(w′) = (x′, y′, α′) onde (x′, y′) = (x, y) +
d(cosα, sinα) e α′ = α, onde f(w′) é igual a f(w) reunido com o segmento de
extremidades (x, y) e (x′, y′).
Neste caso, a tartaruga deixou um rasto representativo de um segmento de recta
com extremidades (x, y) e (x′, y′), posição inicial e final, respectivamente.
• an+1 = G: pretende-se que não haja rasto da tartaruga e que esta apenas se
desloque de uma unidade d para a frente. Definimos assim f(w′) = f(w) e
p(w′) = (x′, y′, α′) com (x′, y′) = (x, y) + d(cosα, sinα) e α′ = α.
Neste caso, não se pretende incluir na imagem o rasto da tartaruga, esta dá um
salto de uma unidade, mas define-se também a posição inicial e final.
2Quando nada é dito em contrário, tomamos d = 1.3Fixar N é o mesmo que fixar δ.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 31
• an+1 = +: definimos f(w′) = f(w) e p(w′) = (x, y, α′) com α′ = α + δ.
Neste caso, o estado não se altera mas o sentido do movimento da tartaruga
altera-se de δ no sentido contrário ao dos ponteiros do relógio.
• an+1 = −: definimos f(w′) = f(w) e p(w′) = (x, y, α′) com α′ = α + δ.
Neste caso, o estado não se altera mas o sentido do movimento da tartaruga
altera-se de δ no sentido dos ponteiros do relógio.
Se an+1 é diferente de F , G, + ou −, f(w) e p(w) permanecem iguais. Nestes
casos a tartaruga "ignora" o símbolo mantendo a mesma posição.
Desta forma, definindo um estado inicial (0, 0, 0)4, a tartaruga no início está na origem
e o seu movimento é dirigido no sentido do eixo Ox. Temos assim definido a função
de interpretação gráfica para todas as palavras de comprimento finito, também
associado a essas palavras o estado final (x, y, α) da tartaruga.
O sistema indutivo tal como foi descrito torna possível interpretar palavras geradas
por um sistema-L. A figura 3.2 exemplifica como é que as palavras ”F +F −−F +F”
e ”F + F −G− F + F” são interpretadas geometricamente.
3.4 Geometria Fractal gerada por um Sistema-L
Como já foi referido, a geometria fractal está relacionada com padrões de extrema
complexidade e detalhe. Um aspecto da filosofia fractal é que essa complexidade resulta
da evolução de sistemas dinâmicos relativamente simples que decorrem durante longos
períodos de tempo.
Iremos ver como é que a geometria fractal pode emergir da interpretação gráfica das
palavras geradas por um sistema-L.
4Para uma palavra de comprimento 0, considera-se o conjunto ∅ e f(∅) = (0, 0, 0). Assim garante-
se que a definição de f está completa.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 32
Figura 3.2: (A) Interpretação pela tartaruga da cadeia de símbolos F, +,−. (B)
Interpretação da palavra F + F − −F + F . O ângulo de incremento δ é igual a 60o.
(C) Interpretação da palavra F + F −G− F + F . O ângulo de incremento δ é igual
a 90o.
Como primeiro exemplo do uso destes símbolos, apresentamos o sistema-L para a
curva de Koch5:
Alfabeto: {F, +,−}
Axioma: F
Regra: F → F + F −−F + F
Este sistema-L resulta em:
5Note-se que a ordem dos símbolos é importante num sistema-L.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 33
Início: F
1a Iteração: F + F −−F + F
2a Iteração: F+F−−F+F+F+F−−F+F−−F+F−−F+F+F+F−−F+F
3a Iteração: F +F −−F +F +F +F −−F +F −−F +F −−F +F +F +F −
−F +F +F +F−−F +F +F +F−−F +F−−F +F−−F +F +F +F−−F +
F −−F +F −−F +F +F +F −−F +F −−F +F −−F +F +F +F −−F +
F +F +F −−F +F +F +F −−F +F −−F +F −−F +F +F +F −−F +F
... ...
A geração 0 (o Axioma) é apenas um segmento de recta de extremidades (0, 0) e (1, 0).
Assume-se que a direcção que a tartaruga encara é para diante do eixo horizontal
positivo. Fixamos N = 6 o ângulo de incremento δ é então igual a 60o = 360o/6.
Geometricamente, a regra de produção fará com que o segmento de recta ’F’ seja
substituído pela seguinte disposição de segmentos:
Figura 3.3: Regra de produção para a curva de Koch
Nesta figura, as acções que descrevem o trajecto a traçar são dadas pelos símbolos da
palavra ”F + F −−F + F”.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 34
Figura 3.4: Gerações da curva de Koch
Note-se que a escala das figuras apresentadas muda com a geração do sistema-L para
que as sucessivas figuras possam ser representadas numa área similar à representação
ocupada pela interpretação do axioma.
3.4.1 Curvas de Koch
O sistema-L que define a curva de Koch pode ser definido por:
Alfabeto: {F, +,−}
Axioma: F + +F + +F
Regra: F → F − F + +F − F
N = 6
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 35
Figura 3.5: Sistema-L aplicado à construção do Floco de Neve
As imagens anteriores correspondem às cadeias obtidas em cada iteração modificadas
pelo conjunto de regras de substituição nas ordens de 0 a 4. O ângulo de incremento
δ é igual a 60o (N=6).
Note-se que as novas interpretações gráficas do sistema-L de ordem n, resulta das de
ordem n− 1 substituindo segmentos orientados
Sistemas-L definidos desta forma, em que o substituído na regra de produção é F
e apenas se modifica o substituto, podem ser percebidos como um códice para a
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 36
construção de diferentes curvas de Koch, como se ilustra a seguir.
Alfabeto: {F, +,−}
Axioma: F − F − F − F
Regra: F → F − F + F + FF − F − F + F
Figura 3.6: Gerações da Ilha Quadrática de Koch
As imagens correspondem às cadeias obtidas em cada iteração modificadas pelo con-
junto de regras de substituição nas ordens de 0 a 3. O ângulo de incremento δ é igual
a 90o (N = 4). A distância a percorrer d decresce 4 vezes entre cada imagem para que
se mantenha a distância entre as extremidades do substituído e a do substituto.
A Figura 3.7 apresenta outros exemplos de curvas de Koch geradas usando sistemas-L
nas mesmas condições.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 37
Alfabeto: {F, +,−}
Axioma: F − F − F − F
Regra: F → F + FF − FF − F − F + F + FF − F − F +
F + FF + FF − F
N = 4
Alfabeto: {F, +,−}
Axioma: F
Regra: F → F + F − F − F + F
N = 4
Figura 3.7: Exemplo de curvas de Koch geradas usando sistemas-L: (A) Ilha
Quadrática de Koch[6, p. 52], (B) Modificação Quadrática do Floco de Neve [6, p. 139]
Um elemento adicional surge se a curva não for conexa; é requerida uma segunda regra
de produção (com substituído G) para manter os componentes à distância apropriada
(figura 3.8).
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 38
Alfabeto: {F, +,−}
Axioma: F + F + F + F
Regras: F → F +G−FF +F +FF +FG+FF −G+FF −
F − FF − FG− FFF
G → GGGGGG
N = 4
Figura 3.8: Combinações de ilhas e lagos [6, p. 121]
A facilidade de modificar sistemas-L fá-los apropriados para desenvolver novos tipos
de curvas fractais. Por exemplo, podemos partir de um sistema-L em particular
(alfabeto, axioma e número de direcções definidos) e observar quais as consequências
de introduzir, de suprimir ou de substituir alguns dos símbolos (na regra de produção).
Uma variedade de curvas obtidas desta maneira é mostrada na figura 3.9.6
Alfabeto: {F, +,−}
Axioma: F − F − F − F
N = 4
Regra: F → FF − F − F − F − F − F + F
6n representa a geração.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 39
Regra: F → FF − F − F − F − FF
Regra: F → FF − F + F − F − FF
Regra: F → FF − F −−F − F
Todas as figuras aqui apresentadas correspondem à interpretação de palavras geradas
por sistemas-L com ângulo de incremento igual a 90o.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 40
Regra: F → F − FF −−F − F
Regra: F → F − F + F − F − F
Figura 3.9: Sequência de Curvas de Koch obtidas pela modificação do substituído na
regra de produção[12, p. 10]
3.4.2 Curvas de Preenchimento do Plano
Para além das curvas já modelas podemos também definir sistemas-L que geram curvas
que preenchem o plano.
A Curva de Hilbert (Figura 3.10) é representativa das clássicas curvas de preenchi-
mento do plano. Outras curvas de preenchimento do plano bem conhecidas foram
descobertas por Peano e por Sierpinski (consultar, [14]).
A descrição do sistema-L que gera a curva de Hilbert é demonstrativa da versatilidade
dos mesmos.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 41
Alfabeto: {F, X, Y, +,−}
Axioma: X
Regras: X → −Y F + XFX + FY−
Y → +XF − Y FY − FX+
N = 4
Este sistema usa um alfabeto constituído pelos símbolos {F, X, Y, +,−}. Como vimos,
os símbolos ’X’ e ’Y’ não têm qualquer significado geométrico, isto é, são ignorados
quando a curva é desenhada. 7 Este processo requer alguma atenção para se verificar
o seu funcionamento. Algumas das gerações são como se segue:
G0: X
G1: −Y F + XFX + FY−
G2: −+ XF − Y FY − FX + F +−Y F + XFX + FY − F − Y F + XFX +
FY −+F + XF − Y FY − FX +−
Figura 3.10: Curva atribuída ao matemático alemão David Hilbert, em 1891.
As imagens correspondem às cadeias obtidas em cada iteração modificadas pelo con-
junto de regras de substituição nas ordens de 1 a 4. O ângulo de incremento δ é igual
a 90o.
7A função de interpretação gráfica não é alterada na presença de símbolos distintos de F , G, + e
−.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 42
A Curva de Peano é gerada pelo seguinte sistema-L:
Alfabeto: {F, X, Y, +,−}
Axioma: X
Regras: X → XFY FX + F + Y FXFY − F −XFY FX
Y → Y FXFY − F −XFY FX + F + Y FXFY
N = 4
Figura 3.11: Curva atribuída ao matemático Giuseppe Peano, em 1890.
As imagens correspondem às cadeias obtidas em cada iteração modificadas pelo con-
junto de regras de substituição nas ordens de 1 a 4. O ângulo de incremento δ é igual
a 90o.
A aproximação da curva quadrática de Sierpinski (Figura 3.12) é gerada pelo sistema-
L com axioma F + XF + F + XF , o ângulo de incremento é igual a 90o e a regra de
produção é a seguinte:
Regra: X → XF − F + F −XF + F + XF − F + F −X
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 43
Figura 3.12: Aproximação quadrática da curva de Sierpinski (1912)
3.4.3 Triângulo e Tapete de Sierpinski
Outro fractal que recebeu o nome do matemático Sierpinski foi o Triângulo de Sier-
pinski. A construção deste fractal é iniciada com um triângulo equilátero.
Alfabeto: {F, +,−}
Axioma: F + F + F
Regra: F → F + F − F − F + F
N=3
O axioma acima listado dá-nos o bordo do triângulo equilátero. Supondo que se
começava pelo axioma F em vez de F + F + F , isto, dá-nos apenas um lado desse
triângulo. A primeira iteração gerada pela regra dada seria a seguinte
Assim, podemos ver como é que a regra gera o bordo dos triângulos centrais que são
removidos. O axioma F + F + F irá fazer o mesmo que descrito anteriormente para
os três lados do triângulo equilátero.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 44
Figura 3.13: Exemplo do sistema-L aplicado à construção do Triângulo de Sierpinski
As imagens correspondem às cadeias obtidas em cada iteração modificadas pelo con-
junto de regras de substituição nas gerações de 0 a 5. O ângulo de incremento δ é
igual a 120o.
Outro famoso fractal que recebeu o nome do matemático Sierpinski foi o Tapete de
Sierpinski:
Alfabeto: {F, G, +,−}
Axioma: F
Regras: F → F + F − F − F −G + F + F + F − F
G → GGG
N=4
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 45
Figura 3.14: Construção do Tapete de Sierpinski
3.4.4 Conjunto de Cantor
Um outro sistema-L muito simples e que usa apenas os símbolos F e G é aquele que
gera o Conjunto de Cantor:
Axioma: F
Regras: F → FGF
G → GGG
O ângulo é irrelevante neste caso. Começamos com um segmento de recta ′F ′ e
substituímo-lo pelo seguinte padrão: traça um segmento de recta, avança um segmento
de recta sem traçar e traça um terceiro segmento. A sequência das gerações é mostrada
abaixo.
Figura 3.15: Gerações do sistema-L do Conjunto de Cantor
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 46
3.5 Modelação de Plantas
Veremos agora como um sistema-L pode modelar o esboço de árvores bidimensionais.
Vamos restringirmo-nos ao caso bidimensional, embora o caso real seja obtido da
mesma forma. São considerados agora estados (x, y, z, α, β) para a tartaruga em
que (x, y, z) representa as coordenadas da posição e (α, β) a direcção (no espaço)
do movimento.8
Para o esboço de árvores bidimensionais vamos precisar de sistemas-L, que contém para
além dos símbolos F, G, +,− símbolos que permitam a interpretação de ramificações.
Neste sentido, vamos então considerar agora um alfabeto
V = {F, G, +,−, ], [}.
E agora precisamos de redefinir a nossa função de interpretação gráfica para as
palavras geradas para este alfabeto.
Para uma palavra v temos então definido p(v) que representa a posição actual da
tartaruga e vamos precisar também de um função m(v) que memorize os vários pontos
de ramificação. m(v) = (n, R) em que n ∈ N (representará o número de ramificações)
e R = (R1, ..., Rn) em que Ri = (xi, yi, zi) (representará as coordenadas da ramificação
i).
Supondo a função de interpretação gráfica definida para uma palavra de comprimento
n, vamos então definir indutivamente a função de interpretação gráfica estendendo a
definição da secção 3.3.
Sendo w uma palavra de comprimento n tal que w = a1a2...an temos por hipótese
8 α e β ângulos do vector movimento relativamente aos planos OXZ e OXY
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 47
definido f(w), m(w) e p(w).
Vamos agora definir indutivamente para uma palavra w′ de comprimento n+1, f(w′),
m(w′) e p(w′).
Então, se
• an+1: não é um dos colchetes temos f(w′) e p(w′) dadas pelas interpretação
anteriormente apresentada na secção 3.4 e, também, m(w′) = m(w).
• an+1 = [: se m(w) = (n, R) em que R = (R1, ..., Rn) então m(w′) = ((n + 1), R′)
em que R′ = (R1, ..., Rn, p(w)) e neste caso existe mais uma ramificação na
posição p(w).
• an+1 =]: se m(w) = (n, R) então m(w′) = (n− 1, R′) em que R′ = (R1, ..., Rn−1)
e neste caso p(w′) = Rn e f(w′) = f(w).9
Isto significa intuitivamente que a tartaruga saltou para o último ponto de
ramificação.
A originalidade destes sistemas-L reside no facto das plantas serem ramificadas. São
necessários novos comandos para que no decorrer da interpretação gráfica do sistema-L
a tartaruga preserve a ramificação.
Os símbolos usados são ’[’ e ’]’ que funcionam em conjunto e permitem que a tartaruga
siga por um momento uma filial e depois retome a extremidade onde começou a
ramificar. O seguinte exemplo mostra uma simples ramificação, onde um "tronco
principal" exibe filiais laterais:
Axioma: F
Regras: F → F [+F ]F
N=10
9Está-se a supor que m(∅) = (0, (0, 0)).
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 48
Isto pode ser visto como a substituição de cada bordo pela seguinte configuração:
Figura 3.16: Ramificações simples
Observe-se na figura seguinte a sequência produzida .
Figura 3.17: Gerações de ramificações
Nas Figuras 3.18 e 3.19 são apresentados alguns resultados da aplicação dos sistemas-L
à modelação de plantas. O sistema-L da Figura 3.18, resultou da aplicação da regra
F → F [+F ] F [−F ] F ao axioma F , com um ângulo de rotação δ = 24 (N = 15).
Quanto ao sistema-L da Figura 3.19, resultou da aplicação da regra F → FF −
[−F + F + F ] + [+F − F − F ] ao axioma F , com um ângulo de rotação de 15o (N =
24).
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 49
Figura 3.18: Exemplo de sistemas-L aplicado ao crescimento de plantas, erva.
Figura 3.19: Exemplo de sistema-L aplicado ao crescimento de plantas, arbusto.
Como se vê os sistemas-L permitem gerar imagens que simulam plantas bidmensionais
que podem ser encaradas como a projecção no plano de árvores reais.
Existe um vasto reportório de sistemas de Lindenmayer definidos para gerar plantas
(consultar [24]).
As figuras seguintes são a prova desta diversidade.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 50
Figura 3.20: Exemplo de sistemas-L aplicado ao crescimento de um arbusto.
Figura 3.21: Exemplo de sistemas-L aplicado ao crescimento de um arbusto.
CAPÍTULO 3. SISTEMAS DE LINDENMAYER 51
Figura 3.22: Exemplo de sistemas-L aplicado ao crescimento de um arbusto.
Capítulo 4
Maple 10
"O Maple 10 traz as últimas conquistas para a solução de problemas ma-
temáticos e disponibiliza tecnologias afins. Interactivo e de fácil uso, este
novo Maple oferece a mais avançada tecnologia para se instrumentalizar
Matemática".
http : //www.aprendanet.com.br/texto.php?idtexto = 1
4.1 Introdução
O software MapletTM é um poderoso sistema que pode ser usado para resolver proble-
mas matemáticos complexos. Pode também ser usado para criar documentos profissi-
onais de qualidade, e recursos computacionais interactivos úteis em ambiente Maple.
O Maple 10 possui diversas ferramentas voltadas para a educação e para a solução
de problemas ligados a ciências exactas. Baseado num extraordinário conhecimento
específico, é uma ferramenta conhecida mundialmente capaz de proporcionar desde
uma nova abordagem educacional até à resolução de problemas científicos complexos:
permite o cálculo de avançadas questões algébricas e numéricas apoiadas em docu-
mentação, botões, sliders, gráficos e animações.
52
CAPÍTULO 4. MAPLE 10 53
A principal missão do Maple é ajudar a iniciar, resolver e explorar as nossas necessi-
dades matemáticas sem recorrer a comandos complicados ou intensa programação. A
área de trabalho onde é efectuada a sessão de Maple designada por Modo Documento
permite solucionar problemas sem o uso de comandos; possui um Editor de Equações
e Janelas onde se pode digitar o problema com a notação padrão de matemática;
possui uma Janela de Reconhecimento Manuscrito para encontrar o símbolo correcto;
os Menus de Contexto ao serem estendidos possuem um amplo conjunto de rotinas
computacionais, incluindo operações para manipulação de unidades; possui Templates
- problemas do tipo preencha as lacunas com mais de 200 tarefas diferentes; Assistentes
Interativos de Tarefas para importação e análise de dados; e o Maplet Builder para a
criação de aplicações Maplet com o recurso arrasta-e-solta, entre muitas outras altera-
ções gráficas, melhorias computacionais e inovações tecnológicas que visam facilitar o
seu manuseamento, permitindo criar documentos capazes de integrar textos, cálculos,
gráficos e interactividade.
Podemos aceder ao motor computacional do Maple através de várias interfaces que
ficam disponíveis depois da instalação completa deste software:
CAPÍTULO 4. MAPLE 10 54
Interface Descrição
Standard Worksheet
Interface com rosto gráfico que oferece configurações que
permitem a criação de documentos electrónicos. Estes
mostram todas as suposições, cálculos e possíveis erros
nos nossos resultados; ou esconde o computado para
permitir que o leitor se concentre no cerne do problema
e nos resultados finais. As avançadas configurações
que apresenta ajudam a criar o documento que que-
remos, porque os parâmetros dos documentos podem
ser facilmente reeditados e, com o clicar de um botão
computados os novos resultados.
Classic Worksheet
Ambiente de trabalho básico que vem de versões anteri-
ores e é recomendado para computadores com recursos
mais limitados.
MaplesoftTM
Graphing Calculator
Interface de uma calculadora gráfica que usa o motor
computacional do Maple.
MapletTM Applicati-
ons
Mecanismo que permite construir interfaces com o uti-
lizador de modo a obter aplicações, que correm como
qualquer outro, no sistema operativo do utilizador e,
permitem aceder às funções presentes no Maple.
As Maplets baseiam-se numa package com o mesmo nome e, podem ser acedidas de
duas formas distintas:
1. Standard Worhsheet ou Classic Worksheet
2. Maplet Builder
CAPÍTULO 4. MAPLE 10 55
Usando o Maplet Builder, podemos definir uma aplicação Maplet, arrastando e sol-
tando botões, sliders, caixas de texto e outros elementos; aceder ao conjunto de
propriedades do elemento e alterá-las por movimentos de selecção; associar acções
aos elementos e ainda fazer "correr" a Maplet.
O Maplet Builder é indicado para criar Maplets simples. O package Maplets possuí
mais capacidades, controles e opções é por isso indicado para criar aplicações Maplets
mais complicadas.
Neste trabalho, será usada a interface Standard Worksheet no modo usual
(Worksheet) que nos permite escrever comandos de programação de modo simples.
Existe também o modo Document que apresenta um maior embelezamento das
expressões matemáticas com notação standard mas que requer um maior recurso
ao rato. De facto, a folha de trabalho (worksheet) é onde são escritos e executados
comandos do Maple. Neste caso particular, será o meio para gravar e ler os
procedimentos indispensáveis ao código da Maplet.
Esboçar uma aplicação Maplet é similar à construção de uma casa. Quando se
constrói uma casa, primeiro começamos pela construção da estrutura esqueleto (ou
seja, fundações, andares e corredores) e depois prosseguimos adicionando as janelas e
portas. Construir uma Maplet não é diferente. Primeiro definimos as linhas e colunas
da aplicação Maplet e só depois é que adicionamos os elementos ao corpo da janela
(por exemplo, botões, caixas de texto e zonas gráficas).
CAPÍTULO 4. MAPLE 10 56
4.2 Especificidades do Maplet Builder
4.2.1 A interface do Maplet Builder
Para iniciar o Maplet Builder, no Maple, devemos abrir o menu «Tools», seleccionar
«Assistants», e por fim «Maplet Builder».
O Maplet Builder é um assistente que permite construir as Maplets sem se ter de
conhecer de forma profunda o código Maple. De modo muito intuitivo, o utilizador
depara-se com uma Maplet "virgem" e com diferentes ferramentas à esquerda. Este só
tem que introduzir os elementos que desejar juntar/acrescentar na Maplet ao centro.
Os elementos são automaticamente criados e preparados. Encontram-se, entre outros
elementos, os botões, as etiquetas, os sliders, as caixas de texto, as zonas gráficas,
as caixas de diálogo, os menus, etc. Os elementos aí apresentados são comparáveis
às ferramentas que se encontra na «Caixa de Ferramentas Controlos» do programa
Microsoft Excel.
Na coluna da direita, o utilizador pode encontrar um a um cada elemento da sua
Maplet, localizando-o segundo a referência que especificou para cada elemento. Logo,
que o faça, as opções do elemento são lhe propostas, e o utilizador pode as mudar de
acordo com as suas preferências. Pode-se alterar, por exemplo, a cor de fundo, o nome
de referência, o tamanho da zona ou a acção associada ao elemento nestas opções.
Por fim, a zona em baixo do Maplet Builder, sob a Maple "virgem", encerra de maneira
visual todas as acções ou propriedades definidas no programa.
Assim, se verifica que o Maplet Builder é dividido em quatro diferentes regiões (a
designação das regiões será mantida em inglês, uma vez que o Maple não tem tradução
para o português e poder-se-ia criar interpretações dúbias):
• A Palette que dispõem de sub-paletes, as quais contém elementos Maplet
organizados por sete categorias1;
• O Layout mostra os elementos visuais da Maplet;1Na secção seguinte veremos com mais pormenor cada elemento.
CAPÍTULO 4. MAPLE 10 57
Figura 4.1: Interface do Maplet Builder
• O Command onde se encontram os comandos e as correspondentes acções
definidas na Maplet;
• As Properties donde consta as propriedades imediatas definidas para os elemen-
tos da Maplet.
No menu «File», encontra-se o comando «Run». Este comando funciona somente para
Maplets simples. Se a Maplet é mais complexa (por exemplo, contém uma zona tipo
MathMl) devemos guardar a Maplet, deixar o Maplet Builder e voltar à nossa folha
de trabalho. O código Maplet (que o Maplet Builder gentilmente escreve por nós)
aparece nessa folha. Daí, não termos senão que executar o bloco de instruções como
que com outras instruções quaisquer do Maple e a Maplet aparece alguns segundos
depois.
Quando se trabalha com o Maplet Builder deve-se ir guardando muitas vezes sob vários
CAPÍTULO 4. MAPLE 10 58
nomes de ficheiros, pois o Maplet Builder não tem as acções «Anular» ou «Ctrl+z».
Um erro é assim, à priori, irreparável. O desbloqueamento do código é também
desagradável pois é preciso ir estudar o código "escondido" na folha de trabalho
para descobrir o problema e resolvê-lo. Torna-se assim infrutífero se se considerar que
a primeira função do Maplet Builder é, justamente, de não obrigar os utilizadores a
dominarem um código de programação tão rico como o do Maple.
4.2.2 Os elementos da Divisão Palette
A Divisão Palette possui sete sub-paletes que organizam os elementos. Assim, cada
elemento pertence a uma das sete seguintes categorias:
(i) Elementos do Corpo da Janela (Body Elements)
(ii) Elementos do Dialog (Dialog Elements)
(iii) Elementos do Menu
(iv) Elementos da barra de botões (Toolbar Elements)
(v) Outros elementos
(vi) Elementos do Layout
(vii) Elementos de comando
(i) Elementos do corpo da janela
Button (Botão): Define o botão que pode aparecer na janela de uma Maplet.
Check Box (Caixa de Selecção): Mostra uma caixa na janela Maplet que ao ser
seleccionada fica com uma marca de selecção.
CAPÍTULO 4. MAPLE 10 59
Combo Box : Mostra uma caixa, onde o utilizador pode seleccionar uma opção
de uma lista predefinida, ou então, escrever um novo item.
Drop-Down Box : Mostra uma caixa, onde o utilizador pode apenas
seleccionar duma lista pré-definida.
Label : Pode conter uma linha de texto ou uma imagem.
List Box : Mostra uma caixa onde o utilizador pode seleccionar mais do que
uma opção de uma lista pré-definida.
MathML Viewer : Com este elemento, as expressões aparecem no formato
MathMl, ou seja, as expressões são vistas em formato de notação matemática em vez
de na sintaxe do Maple.
MathML Editor : Com este elemento, podemos editar expressões no formato
MathMl, ou seja, as expressões são vistas em formato de notação matemática em vez
de na sintaxe do Maple.
Plotter : Define o espaço gráfico que apresenta o traçado ou a animação de uma
função.
Radio Button : Mostra um círculo na janela da Maplet que ao ser seleccionado
fica com uma marca de selecção.
CAPÍTULO 4. MAPLE 10 60
Slider : Idêntico a uma régua que permite ao utilizador escolher um valor inteiro
num certo intervalo.
Table : Permite inserir os dados em linhas e colunas.
Text Box : Define uma caixa com múltiplas linhas de entrada e saída de texto.
Text Field : Define uma caixa com uma linha de texto.
Toggle Button : Define um botão de selecção, o utilizador pode premir para
activar a sua selecção, ou premir novamente para a desactivar. Assim, podem estar
seleccionados os botões que se desejar, nenhum ou todos.
(ii) Elementos do Dialog
Alert Dialog: É um aviso ou mensagem de alerta que possuí dois botões (Ok) e
(Cancel). Seleccionando (Ok) o utilizador ignora o aviso e continua, pelo contrário
premindo o botão (Cancel) o utilizador toma atenção ao aviso.
Color Dialog: Mostruário de cores para uma fácil selecção.
Confirm Dialog: Permite ao utilizador responder ’Yes’ (Sim) e continua, ’No’
(Não) mas continua ou ’Cancel’ e não continua uma dada pergunta.
File Dialog: É uma janela standard para aceder a ficheiros do sistema.
CAPÍTULO 4. MAPLE 10 61
Input Dialog: Idêntico ao Alert Dialog só que este possuí uma caixa de texto,
na qual o utilizador pode escrever ou modificar dados, e possuí ainda dois botões o
’OK’ e o ’Cancel’.
Message Dialog: Mostra ao utilizador uma mensagem de informação com um
único botão ’Ok’, que seve para fechar a janela.
Question Dialog: Coloca uma pergunta ao utilizador e permite que este
responda ’Yes’ (Sim) ou ’No’ (Cancel).
(iii) Elementos de Menu
Uma aplicação pode conter uma barra de menus. Cada barra de menus pode conter
um ou mais menus, cada um pode conter itens definidos com o Menu Item, Check Box
Menu Item, Radio Button Menu Item e Menu Separator. Podemos ainda adicionar um
menu extra a um Text Field ou Text Box activado quando se clica no botão direito do
rato quando temos o cursor em cima de uma dessas caixas, este menu designa-se por
Pop-Up Menu.
Check Box Menu: É um item do menu que funciona com uma Check Box.
Menu: Define uma janela de barra de menu.
Menu Item: Define itens/barra de menus.
CAPÍTULO 4. MAPLE 10 62
Menu Separator: Cria uma linha horizontal separadora ’dentro’ de um menu.
Pop-Up Menu: Define um menu extra sob uma caixa de texto.
Radio Button Menu: É um item do menu que funciona como um Radio
Button.
(iv) Elementos da Barra de Botões
Uma barra de botões pode conter um qualquer número de botões. E estes podem ser
agrupados em grupos diferentes usando um separador que cria um espaço entre botões
adjacentes.
Toolbar: Define uma janela de barra de botões.
Toolbar Button: Define um botão numa barra de botões.
Toolbar Separator: Define um separador de botões.
(v) Outros elementos
Action: Define uma acção numa Maplet.
Argument: Especifica o argumento de uma função no Maple.
CAPÍTULO 4. MAPLE 10 63
Button Group: Permite associar botões de modo que apenas um seja
seleccionado.
Font: Especifica um tipo de letra num elemento.
Image: Especifica uma imagem do tipo jpeg ou gift numa Maplet.
Return: Agrupa um conjunto de valores que são enviados para a sessão do
Maple (worksheet) quando uma Maplet é fechada.
Return Item: Especifica que valores são enviados para a sessão do Maple
quando a Maplet é fechada.
(vi) Elementos do Layout
Uma janela Maplet admite duas formas de layout diferentes: o Box Layout e o
Grid Layout. Estas descrevem como é que os vários elementos de uma Maplet são
posicionados.
Box Cell: Especifica a entrada numa Box Column, Box Row ou Box
Layout.
Box Layout: Layout em que se pode controlar onde os itens aparecem
horizontalmente ou verticalmente relativamente a outros elementos.
Grid Cell: Especifica a entrada de uma linha numa layout.
CAPÍTULO 4. MAPLE 10 64
Grid Layout: Os elementos dispõem-se como se tivessem numa espécie de
grelha.
Horizontal Glue: Adiciona um espaçamento horizontal flexível numa Box
Row.
Vertical Glue: Adiciona um espaçamento vertical flexível numa Box Column.
(vii) Elementos de Comando
Close Window: Fecha a janela que está a ser executada.
Evaluate: Executa um procedimento do Maple com um dado conjunto de
argumentos na sessão do Maple.
Run Dialog: Abre uma janela do ’dialog’ e aceita apenas a opção ’dialog’ que é
referência à janela que vai ser executada.
Run Window: Abre uma janela e aceita apenas a opção ’window’ que é a
referência à janela que vai ser executada.
Set Option: Permite que valores de certas opções possam ser modificados
enquanto que uma Maplet está a ser executada.
Shutdown: Fecha a Maplet que está a ser executada.
CAPÍTULO 4. MAPLE 10 65
Nesta secção pretendeu-se dar a conhecer os elementos disponíveis na Palette. É claro,
que para cada Maplet se deve adequar a escolha dos elementos. A nossa Maplet utiliza,
essencialmente, Elementos do Corpo da Janela.
4.3 Criar uma Maplet Simples usando o Maplet
Builder
O acesso ao assistente Maplet Builder faz-se através da barra de menus do programa
Maple. Como se trata da criação de uma Maplet Simples o utilizador não precisa de
abrir nenhuma sessão no Maple, terá apenas que aceder ao software Maple10 como
habitualmente faz para abrir a maior parte dos programas para windows, depois na
barra de menus abrir o menu «Tools», seleccionar «Assistants» e por fim «Maplet
Builder».
Surge, então, a Maplet "virgem" que irá ser alterada pelo autor da aplicação Maplet.
É exemplo de uma Maplet Simples a aplicação que desenha o gráfico de uma função
depois de o utilizador introduzir a sua expressão analítica e accionar o botão ’Gráfico’
que constrói o seu traçado.
O aspecto de tal aplicação é o seguinte:
CAPÍTULO 4. MAPLE 10 66
Figura 4.2: Interface da Maplet
Como se pode observar, para criar a janela da aplicação que esboça o gráfico são
usados os seguintes elementos da paleta Body.
Figura 4.3: Elementos do corpo da janela usados para definir a Maplet
Seguem-se os passos necessários à construção da Maplet:
Definir o número de linhas da Maplet
1. Na divisão Properties (zona à direita no interface Maplet Builder):
a. ir à lista drop-down e seleccionar Box Column1;
b. alterar para 2 no campo numrows.
CAPÍTULO 4. MAPLE 10 67
Figura 4.4: Definir o número de linhas da Maplet
Adicionar um espaço gráfico na primeira linha
1. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento Plotter e
soltá-lo sob a primeira linha na zona Layout (região ao centro).
Figura 4.5: Adicionar um gráfico na primeira linha
CAPÍTULO 4. MAPLE 10 68
Adicionar colunas na segunda linha
1. Na divisão Properties :
a. ir à lista drop-down e seleccionar BoxRow2;
b. alterar para 3 o campo numcolumns.
Figura 4.6: Adicionar colunas na segunda linha
Adicionar uma ’etiqueta’ na segunda linha
1. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento Label e
soltá-lo sob a coluna da esquerda na zona Layout.
2. Na divisão Properties :
a. ir à lista drop-down e seleccionar Label1;
b. mudar o campo caption para ’Introduza uma função em x’.
CAPÍTULO 4. MAPLE 10 69
Figura 4.7: Adicionar o elemento Label na segunda linha
Adicionar uma caixa de texto na segunda linha
1. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento TextField
para a coluna do meio. Este elemento permite que o utilizador insira um dado
que pode ser recuperado para ser usado numa acção.
2. Se necessário, redimensionar a janela do Maplet Builder para visualizar toda a
zona Layout.
Adicionar um botão na segunda linha
1. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento Button e
soltá-lo sob a coluna da direita na zona Layout.
2. Na divisão Properties :
a. ir à lista drop-down e seleccionar Button1;
b. mudar o campo caption para ’Gráfico’;
c. na lista drop-down associada ao campo onclick, seleccionar <Evaluate>.
CAPÍTULO 4. MAPLE 10 70
Figura 4.8: Adicionar uma caixa de texto na segunda linha
Figura 4.9: Adicionar um botão na segunda linha
3. É nos apresentada uma pequena janela (dialog) designada por Evaluate
Expression. Desta, constam os elementos alvo (Target), ou seja, aqueles para
os quais é possível enviar informação. Neste caso, os elementos são o Plotter1
e o TextField1 que estão organizados por uma lista drop-down. Seguem-se,
duas caixas de texto localizadas numa aba, Command Form, a primeira caixa
é designada por Expression e a segunda List na qual estão definidos quais
os elementos recuperadores de informação. Neste caso, o único elemento é o
TextField1.
CAPÍTULO 4. MAPLE 10 71
a. ir à lista drop-down do Target e seleccionar Plotter1;
b. na aba Command Form, introduzir o comando ’Plot(TextField1, x =
−10...10)’ na caixa Expression. É possível, também, através de um duplo
clique "chamar" o TextField1 da segunda caixa de texto e inseri-lo na sintaxe
do comando a cima descrito;
c. pressionar o botão Ok.
Figura 4.10: Janela Evaluate Expression
Fazer ’correr’ a Maplet
1. No menu «File» seleccionar «Run». Somos incitados a guardar a Maplet. Uma
aplicação Maplet criada com recurso ao interface Maplet Builder é guardada
num ficheiro com extensão .maplet.
2. Premir o botão ’Yes’ (Sim) e navegar para a localização onde se vai guardar a
Maplet.
CAPÍTULO 4. MAPLE 10 72
Depois de concretizados todos estes passos fica concluída a construção de uma Maplet
que esboça o gráfico de uma função e cuja janela, em termos de aparência, fica com o
seguinte aspecto:
Figura 4.11: Interface da Maplet
A sequência descrita anteriormente é de fácil execução e permite criar uma janela
com a funcionalidade de traçar o gráfico de funções de uma variável real. Com
ligeiras alterações é possível recriar uma outra janela na qual o utilizador da
maplet pode definir o domínio da função. Apresentamos como exemplo o seguinte
interface cujas modificações foram realizadas a partir da aplicação anterior. As
alterações incidiram na estrutura e na indicação a introduzir na aba para efeito de
definir a acção do botão Gráfico. Ou seja, depois de criadas mais duas caixas de
texto para o valor mínimo de x e valor máximo de x, TextField1 e TextField2,
respectivamente, o comando introduzido na aba é redefinido para ’Plot(TextField1,
x = TextField1...TextField2)’.
CAPÍTULO 4. MAPLE 10 73
Figura 4.12: Interface da Maplet
Capítulo 5
Maplet para a interpretação gráfica
de sistemas-L
Neste capítulo apresentamos a elaboração da aplicação Fractmaplet que
permite se visualizar graficamente um fractal gerado através de um sistema-
L.
Na construção da Maplet será usado o assistente de programação Maplet
Builder e, paralelamente, uma folha de trabalho (worksheet) usual do
Maple que comportará as rotinas de programação. No final teremos
uma folha de trabalho que contém o código do programa. Este código
pode ser separado em duas partes: na primeira parte serão definidos os
procedimentos e a segunda parte constituída por um bloco de execução
bastante volumoso contendo o código da Maplet. O programa é passível
de ser modificado ou complementado, uma vez que o ficheiro produzido é
uma folha de trabalho perfeitamente aberta às modificações que cada um
queira aí aplicar.
74
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L75
5.1 Procedimentos no Maple 10
A linguagem do Maple é semelhante a numerosas outras linguagens de programação.
E como em todas essas linguagens de computação numérica e simbólica, o Maple
possui particularidades ao nível da sua sintaxe e do seu vocabulário. Para qualquer
novo utilizador é aconselhável percorrer as fichas do Maple Help respeitantes a
programação, bem como, os completos manuais que estão acessíveis através do menu
«Help».
5.1.1 Iniciar uma sessão de Maple
Para iniciar uma sessão de Maple, no sistema Windows, procede-se como para a maior
parte dos programas para Windows. Basta fazer duplo-clique no símbolo do Maple
10−Standard Worksheet se este se encontrar no ambiente de trabalho, através do menu
iniciar ou através do ficheiro executável Maple 10.exe, como habitualmente. Depois
de abrir o programa aparece uma janela com menus, várias paletas, alguns botões e a
folha de trabalho para edição dos comandos Maple.
A interface Standard Worksheet nesta versão possui dois modos: o modo Document
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L76
e o modo Worksheet. Por defeito, ao iniciar o programa, a folha de trabalho está no
modo Document, para mudar para o modo worksheet acedemos ao menu <File>,
seleccionamos <New> e por fim <Worksheet Mode>. Esta alteração deverá ser
realizada para se poder usar os comandos com as funcionalidades mais avançadas
do Maple.
5.1.2 Área de trabalho
É na área de trabalho (Worksheet) onde são escritos e executados os comandos do
Maple.
Neste documento estão destacados dois códigos de programação diferentes: o primeiro,
contendo os procedimentos e o segundo, contendo um bloco de execução de comandos
do código Maplet.
Numa primeira fase será dado destaque à parte onde estão descritos os procedimentos.
Estes estão organizados por quatro secções distintas. Não está contemplado nos
objectivos deste trabalho justificar a impregabilidade de determinada sintaxe ou
linguagem de programação, mas sim de tornar claro o que descreve determinado
ciclo(s) ou procedimento(s).
Em todo o caso, não é demais referir que o Maple inclui um sistema de ajuda que pode
ser acedido a partir da worksheet. Basta, para isso, preceder o assunto a pesquisar
com um sinal de interrogação e executar a instrução.
5.1.3 Procedimentos da Worksheet
O código da primeira parte do programa está organizado em quatro secções distintas.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L77
A primeira secção começa com o comando ’Restart’:
Os packages indicados foram chamados com o comando With pois vão ser
usados elementos e comandos destas packages. Em particular, as packages
Maplets[Elements] e Maplets [Tools] são necessárias para a execução de
comandos do código da segunda parte.
É recomendável que num procedimento se tenha cuidado com o tipo de valores que
são usados. Por exemplo, pode gerar resultados pouco animadores utilizar números
fraccionários num procedimento que efectua cálculos com números inteiros. Nos
procedimentos, podemos restringir as variáveis ao tipo desejado. Podemos assim
evitar que o Maple execute todo o procedimento, para no final nos dar a indicação de
erro. Se forem introduzidos valores que não se adeqúem aos cálculos do procedimento,
ao restringirmos as variáveis, o Maple não chega a executar o procedimento avisando
que as varáveis não são do tipo desejado.
No procedimento ’GRÁFICO(a, b)’ é feita a interpretação geométrica1 de vários símbolos
dispostos numa palavra (s), que vão indicando o movimento da tartaruga. Este
procedimento espera 2 parâmetros de entrada. Neste caso, na posição a, ’GRÁFICO’
espera a entrada da palavra (s) e, na posição b, ’numerdir’ é esperada o número de
direcções. Neste procedimento, só é aceite uma string como formatação da variável1De acordo com a definição indutiva apresentada nas secções 3.3 e 3.5 para a função de
interpretação gráfica.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L78
s e valores inteiros (integer) atribuídos à variável numerdir. Se forem dados outros
valores, o procedimento não chega a ser executado. Isto faz-nos ganhar tempo, se o
procedimento for relativamente grande.
As variáveis PONTOA, SEGMENTO, ANGULO, ANGSTEP, GRAFICOTEMP e MEM são todas
declaradas locais, pois só vão ser usadas neste procedimento.
A variável PONTOA indicará sempre a posição da tartaruga mesmo que depois de
realizado um movimento (assumirá essa nova posição); a grandeza do espaçamento
no avanço da tartaruga está associada à variável SEGMENTO (será sempre de 1 u.c.
a menos que seja redefinido por sintaxe própria, como veremos mais à frente) e a
amplitude da rotação da tartaruga antes de iniciar um movimento, propriamente dito,
indicado pela variável ANGULO.
Inicialmente os valores atribuídos às variáveis PONTOA, SEGMENTO e ANGULO são,
respectivamente, o ponto de origem (posição inicial de coordenadas Cartesianas (0,0)),
uma unidade e zero.
À variável ANGSTEP é atribuído o valor do quociente 2πnumerdir
pelo que esta aguarda
que venha de fora a informação sobre o número de direcções através da activação
de uma TextField. GRAFICOTEMP é a variável que vai interpretar geometricamente
cada caracter da palavra (s), para se assegurar que no inicio não é nada em termos
geométricos, atribui-se a expressão, ’NULL’. À variável MEM é dada a tarefa de construção
de uma pilha.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L79
Inicia-se um ciclo ’for’ que permite percorrer todos os caracteres de s ’for i from 1
to length(s)’.
Segue-se uma declaração condicional que comporta a sintaxe para definir o símbolo
’F’. Sempre que este símbolo surja na palavra (s). A interpretação da tartaruga
deve ser a de mover uma unidade para a frente. Assim, a nova posição da
tartaruga passa a ser de (x′, y
′ , ANGULO), onde x′
= x+SEGMENTO∗cos(ANGULO)
e y′
= y+SEGMENTO∗sin(ANGULO), sendo (x, y) e (x′, y
′), respectivamente, as
coordenadas cartesianas da variável PONTOA e PONTOB. A nível gráfico (GRAFICOTEMP)
o segmento de recta entre o PONTOA e o PONTOB é desenhado. Finalmente, o PONTOA
assume agora a posição do PONTOB.
Ainda, sob uma condição, é apresentada a sintaxe que é usada para definir o símbolo ’G’
sempre que este surja na palavra (s). Tanto a sintaxe como a interpretação geométrica
é idêntica à que foi descrita para o símbolo ’F’ com a diferença que o rasto da tartaruga
não é desenhado.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L80
As duas primeiras condições definem uma nova direcção para a tartaruga. O símbolo
’+’ indica que esta orienta-se para a esquerda segundo o ângulo de incremento ANGSTEP
e o símbolo ’-’ indica que esta orienta-se para a direita segundo o mesmo ângulo de
incremento ANGSTEP. A variável ANGULO é redefinida. O símbolo ’ !’ inverte o sentido
aos símbolos ’+’ e ’-’.
O símbolo ’|’ indica que a tartaruga "tenta" virar 180o.
A sintaxe ’iquo(numerdir,2)*abs(ANGSTEP)’ determina a possibilidade máxima de
virar até 180o.
O símbolo ’[’ memoriza o actual estado do gráfico, ou seja, os actuais valores
do PONTOA, ANGULO, SEGMENTO e ANGSTEP, o símbolo ’]’ repõe o estado do gráfico
anteriormente memorizado. No primeiro caso, coloca-se na pilha2 MEM o valor das
quatro variáveis anteriormente referidas. No segundo caso, vai-se à pilha MEM buscar
os valores guardados, de acordo com uma lista de quatro valores indexados.
O símbolo ’@’ na linguagem Maple é seguido por um numeral que funciona como um
factor de escala do segmento unitário. Isto é, permite redimensionar o comprimento
desse segmento. O ciclo, tal como descrito, permite ir buscar o valor numeral indicado
a seguir ao símbolo @ em vez de ir procurar outro caracter do sistema-L. Ou seja, não2Entenda-se pilha como um vector representando um empilhamento de objectos. Sempre que se
retira um objecto retira-se o último colocado.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L81
se avança para a interpretação de outro símbolo sem que terminem de ocorrer dígitos
ou ’.’ ponto decimal.
Este procedimento comporta os valores iniciais das variáveis, um grande ciclo com
várias condições, e pequenos ciclos. No fim é ’chamada’ a variável GRAFICOTEMP
que nos dá a interpretação geométrica do rasto da tartaruga, depois de lida toda
a sequência de caracteres da palavra (s) nesse ciclo. Note-se, que não é exibido o
gráfico. Com ’end proc’ conclui-se o procedimento.
Na próxima secção de comandos do Maple descrevemos como é que um sistema-L
gera a sequência de caracteres que modela um fractal. Da caracterização do sistema-L
faz parte o axioma e as regras que o utilizador escreve na janela da Maplet.
Se o utilizador não alterar a regra associada a uma letra do alfabeto, por defeito, a
aplicação assume como regra a mesma letra (exemplo, A → A). Assim, ’regras’ é
um vector que possui todas as letras do alfabeto. Nas posições ímpares, as letras
(substituídos), e, nas pares, as regras de produção (substitutos).
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L82
É no procedimento ’SISTEMAL’ que se vai gerar algoritmicamente a sequência de
símbolos (a interpretação geométrica de cada símbolo foi realizada no procedimento
anterior) que descreve a imagem fractal. Esta rotina espera 4 parâmetros de entrada.
Neste caso, a posição ’axioma’ espera a entrada do axioma do sistema-L, a posição
’numerdir’ espera o número de direcções, a posição, ’n’ espera o número de gerações,
informação que vem da activação de um slider, e ’regras’ que vem de uma ou mais
instruções que o utilizador escreve na caixa de texto (regrastexto) da aplicação Maplet.
As variáveis LTEMP, i, j, k, LTEMP2 e A são todas declaradas locais, pois só vão ser
usadas neste procedimento.
A variável LTEMP vai conter, momentaneamente, em cada iteração a palavra gerada
pela transformação de cada símbolo na sequência de símbolos definida nas regras de
produção (’regras’). Inicialmente, esta é a sequência de símbolos ou o único símbolo
correspondente ao ’axioma’. Para garantir que tem todos os caracteres maiúsculos
usa-se a sintaxe ’UpperCase’. A variável LTEMP2 vai funcionar como uma pilha que
’guarda’, temporariamente, os caracteres já modificados em cada iteração que depois
vão transitar novamente para LTEMP. E A é uma lista inicialmente nula que vai conter
os "substituídos" de ’regras’.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L83
O ciclo ’for’ aumenta de 2 em 2, para poder percorrer os operandos das posições
ímpares de ’regras’, e ir juntando as letras que ocupam essas posições numa lista
designada por A. Note-se, que essas letras só passam a fazer parte de A depois de
transformadas em maiúsculas.
Inicia-se um novo ciclo que vai criar a pilha LTEMP2. Vai ser revisado cada símbolo
de LTEMP, no sentido de se saber se é uma das letras da lista A ou não. Se o símbolo
for uma das letras (substituído) da lista A então admite uma regra de produção
(substituto localizado em ’regras’) e é o operando que ocupa a posição com índice
igual ao dobro da indexação do correspondente elemento em A. Depois de localizado,
traz-se para a pilha LTEMP2 a transformação da letra na sequência de símbolos que
a regra de produção define, ou seja, o substituto. Se pelo contrário, o símbolo
que está a ser revisado, pertencente a LTEMP, não for uma das letras da lista A
(por exemplo, o símbolo ’+’) este é inserido na pilha LTEMP2 sem sofrer qualquer
modificação. Este ciclo é executado até serem percorridos todos os caracteres de LTEMP.
A pilha LTEMP2 possui agora a sequência de símbolos que correspondem ao primeiro
iterado, mas com os caracteres ordenados de forma inversa. Neste momento, "esvazia-
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L84
se" a lista LTEMP e procede-se á sua constituição colocando todos os caracteres de
LTEMP2 ordenados correctamente. Assim, LTEMP é a sequência de caracteres que
compõem o primeiro iterado.
Inicia-se outra vez, o ciclo que vai criar uma nova pilha LTEMP2. Vai ser revisado cada
símbolo de LTEMP (já não comporta o axioma mas sim o primeiro iterado), no sentido
de saber se é uma das letras da lista A ou não. Se o símbolo é uma das letras da
lista A então insere-se na pilha LTEMP2, previamente inicializada, a transformação da
letra na sequência de símbolos que a correspondente regra de produção define. Se o
símbolo não é uma das letras da lista A é ele que é inserido na pilha LTEMP2.
A pilha LTEMP2 possui agora a sequência de símbolos que correspondem ao segundo
iterado, mas com os caracteres ordenados de forma invertida. Neste momento, volta-se
a "esvaziar" a lista LTEMP e procede-se à sua reformulação listando os caracteres de
forma ordenada. Assim, LTEMP corresponde à sequência de caracteres que compõem
o segundo iterado.
Procede-se de modo similar tantas vezes quanto o número de iterações indicadas pelo
utilizador quando activou o slider na janela da Maplet. No final, LTEMP corresponderá
à sequência de todos os símbolos que descreve a imagem fractal e que foi gerada pelo
sistema-L.
Para exibir o gráfico, imagem do fractal, é necessário usar o comando display. Neste
caso, teremos de fazer display(GRAFICO(LTEMP,numerdir));. Com ’end proc’
conclui-se o procedimento.
A próxima secção de comandos do Maple possui três procedimentos que convertem
opções e acções da janela em instruções que o Maple compreende, para as poder usar.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L85
Assim, o procedimento axiomastring recebe a expressão que o utilizador insere na
TextField (’axioma’) e concerte-a numa string.
Depois de o utilizador aceder à Drop Down Box (’listavar’) e seleccionar uma
letra, este procedimento recebe a informação da letra escolhida, converte-a numa
string, procura essa letra no vector regras e envia a informação da correspondente
regra de produção de volta.
Depois de exibida numa caixa de texto a regra de produção associada à letra que
o utilizador escolheu na Drop Down Box (’listavar’), este pode mantê-la ou
modificá-la para a instrução que lhe convier. Para que o Maple assuma tal alteração
é necessário o procedimento ’criaregras’ que converte a informação dada pelo
utilizador na TextField (’regrastexto’) numa string e "entende" a alteração feita
na regra de produção.
Portanto, até este ponto ainda não está iniciada a construção da Maplet, pois tal só
ocorre quando surgir o seguinte comando:
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L86
O bloco de execução de comandos que se segue é o código da Maplet que
"gentilmente" o Maplet Builder escreve por nós.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L87
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L88
Este bloco de instruções foi inserido na folha de trabalho depois de:
• criada a aplicação Maplet e atribuído o nome de ’Fractmaplet’;
• guardada a aplicação num ficheiro com extensão .maplet;
• aberta a aplicação numa secção do Maple que mostrou todo o volumoso bloco
de comandos escondidos por trás da Maplet;
• copiados os comandos e colados na folha de trabalho.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L89
Como já foi referido anteriormente o Maplet Builder apresenta algumas limitações na
construção de Maplets mais complexas, e como tal, foi necessário fazer alguns ajustes
no código produzido. Estas diferenças serão exibidas depois de exemplificar como é
que a aplicação Fractmaplet foi construída.
5.2 Construção da aplicação Fractmaplet
No inicio, começou-se por idealizar apenas uma janela base onde fosse possível inserir o
axioma, a regra, o número de direcções, o número de gerações e clicar num botão para
a imagem fractal aparecer. No final, a aplicação teria de ter mais alguns elementos, e
a aparência da aplicação Maplet, em termos de aspecto, viria a ser o seguinte:
Figura 5.1: Interface da Fractmaplet
Como se pode observar, a estrutura-esqueleto da janela é de duas colunas, a primeira
subdividida em 4 espaços e a segunda com 2 espaços distintos: a zona gráfica e a zona
dos botões, como são dois botões intui-se que terá aí de haver também uma subdivisão.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L90
Para criar a janela da aplicação que esboça a imagem fractal são necessários os
seguintes elementos da paleta Body.
Figura 5.2: Elementos do corpo da janela usados para definir a Maplet
Seguem-se os passos necessários à construção da Maplet:
Definir a estrutura da janela (número de colunas e linhas) da Maplet
1. Na divisão Properties :
a. ir à lista drop-down e seleccionar Window1,
a1. alterar para Fractmaplet no campo title;
b. ir à lista drop-down e seleccionar BoxLayout1,
b1. alterar para 2 no campo numcolumns;
c. ir à lista drop-down e seleccionar BoxColumn1,
c1. alterar para 4 no campo numrows;
d. ir à lista drop-down e seleccionar BoxColumn2,
d1. alterar para 2 no campo numrows;
e. ir à lista drop-down e seleccionar BoxRow6,
e1. alterar para 2 no campo numcolumns.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L91
Não é possível mudar a legenda às Box Rows, por defeito, esta propriedade não vem
especificada nas Properties do elemento, também não é possível activar o bordo das
mesmas caixas.3
Figura 5.3: A estrutura da Maplet
No passo seguinte é criada a caixa de texto onde o utilizador pode introduzir a
sequência de símbolos ou um único símbolo que corresponde ao axioma. As alterações
das propriedades de qualquer elemento é realizada na zona da direita do interface do
Maplet Builder depois de clicarmos sob o elemento já inserido no Layout.
Formatar a primeira linha da Column1
1. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento TextField
e soltá-lo sob a primeira linha da primeira coluna.
a. alterar para ’axioma’ no campo reference;3A legendagem e a activação dos bordos será feita no próprio código que a Maplet irá produzir.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L92
b. alterar para ’F’ no campo value4.
Figura 5.4: A caixa de texto para o axioma
A segunda linha terá todos os elementos necessários para que o utilizador possa criar
as regras de produção do sistema-L. Terá de seleccionar de uma lista a letra para a
qual vai definir uma regra; a sequência de caracteres que define a regra de produção é
escrita numa caixa de texto, e premindo um botão guardada.
Formatar a segunda linha da Column1
1. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento Label e
soltá-lo sob a segunda linha da primeira coluna.
a. alterar para ’Regras’ no campo Caption.
2. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento DropDown-
Box e soltá-lo junto da etiqueta.4 Por defeito o valor do campo passa a ser ’F’
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L93
a. alterar para ’listavar’ no campo reference;
b. inserir os itens da lista, para tal no campo itemlist introduzir todas as letras
do alfabeto separadas por ’,’ e sem deixar espaços;
c. alterar para ’F’ no campo value.
A acção associada a este elemento será definida depois de criar o próximo
elemento.
3. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento TextField
e soltá-lo junto à lista.
a. alterar para ’regrastexto’ no campo reference;
b. alterar para ’F + F −−F + F ’ no campo value.5
4. Seleccionar o elemento referenciado por ’listavar’ e definir a acção que lhe está
associada.
a. no campo onchange seleccionar <Evaluate>, surge uma pequena janela. Nesta,
teremos de indicar qual o elemento alvo e a instrução que será executada. Neste
caso, a letra que o utilizador seleccionar na lista Drop Down Box entrará como
informação no procedimento do Maple designado por ’obterregra’ e deste virá de
volta a regra de produção que lhe está associada que será visualizada na Text-
Field2 referenciada por ’regrastexto’. Assim, na lista Target seleccionamos
TextField2 e na primeira caixa designada por Expression da aba Command
Form, escrevemos ’obterregra()’. É ainda possível mudar o nome dado à
acção, para tal basta seleccionar o ícone da acção na zona dos comandos da
janela e no campo reference alterar para ’mudaregra’.
5. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento Button e
soltá-lo o mais à direita possível na segunda linha.
a. mudar o campo caption para ’Guardar Regras’;5 Por defeito o valor do campo passa a ser ’F + F −−F + F ’.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L94
b. na lista do campo onclick, seleccionar <Evaluate>. Este botão tem como função
guardar a nova regra de produção, para tal terá de enviar a informação para o
procedimento do Maple designado por ’criarregras’, mas não precisa de recuperar
nenhuma informação para a aplicação. Como, por defeito, o Maplet Builder
assume sempre algum elemento alvo teremos de estar atentos ao código produzido
pela Maplet e apagar essa instrução.
Assim, na ’dialog’ teremos apenas de escrever a sintaxe do procedimento que vai
ser executado ’criarregras()’.
Figura 5.5: Activação do botão ’Guardar Regras’
A formatação da terceira linha desta coluna é muito simples, basta inserir uma caixa
de texto na qual o utilizador irá indicar o número de direcções e uma etiqueta que
mostra o cálculo para determinar o ângulo de orientação da tartaruga antes de iniciar
um movimento. Embora seja de simples formatação, este dado vai ser usado em
muitos dos procedimentos do Maple para a leitura gráfica da sequência de símbolos
que descreve a imagem fractal.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L95
Formatar a terceira linha da Column1
1. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento Label e
soltá-lo sob a terceira linha da primeira coluna.
a. alterar para ’360o/N ’ no campo caption.
2. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento TextField
e soltá-lo sob a terceira linha à direita da etiqueta.
a. alterar para ’numerdir’ no campo reference;
b. alterar para ’6’ no campo value6.
Figura 5.6: A caixa de texto para inserir o número de direcções
Por fim, a informação sobre o número de gerações que o utilizador pretende efectuar
será recuperada quando este arrastar o cursor sobre uma régua. Note-se que o número
máximo de iterações que a Maplet permite que o utilizador escolha é de 8, uma
vez que, a velocidade do processador do computador pode não ser suficiente para
comportar tal instrução ou demorar demasiado tempo a produzir a imagem fractal.
6 Por defeito o valor do campo passa a ser ’6’
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L96
Formatar a quarta linha da Column1
1. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento Slider e
soltá-lo sob a quarta linha da primeira coluna.
a. alterar para ’2’ no campo majorticks. Esta propriedade, de graduação da régua,
indica que o espaçamento entre cada traço maior é de 2;
b. alterar para ’n’ no campo reference;
c. alterar para ’8’ no campo upper.
Figura 5.7: Slider que dá o número da geração da imagem fractal
A segunda coluna da Maplet possui uma região gráfica e dois botões.
Formatar a primeira linha da Column2
1. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento Plotter e
soltá-lo sob a primeira linha da segunda coluna.
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L97
a. alterar para ’300’ no campo height;
b. alterar para ’350’ no campo width.
Estas duas propriedades permitem redimensionar a zona gráfica.
Figura 5.8: Introdução de uma zona gráfica na Maplet
A segunda linha da segunda coluna vai comportar dois botões essenciais. O primeiro
’manda’ executar o gráfico da interpretação geométrica da sequência de símbolos
gerado no sistema-L e o segundo é o botão que fecha a aplicação.
Formatar a segunda linha da Column2
1. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento Button e
soltá-lo sob a segunda coluna da segunda linha à esquerda.
a. mudar o campo caption para ’Desenhar’.
Para definir a acção associada a este botão:
b. na lista do campo onclick, seleccionar <Evaluate>. Ao pressionar o botão
não é enviada nenhuma informação para o Maple, mas sim recuperada a
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L98
informação necessária para executar o procedimento ’SISTEMAL’. O ele-
mento alvo é Plotter1 que exibirá a construção gráfica da sequência de
símbolos gerada no procedimento. Assim, na ’dialog’ teremos de na lista
Target seleccionar Plotter1 e escrever na caixa de texto Expression da
aba Command Form a sintaxe do procedimento que vai ser executado
’SISTEMAL(axiomastring(),numerdir,n,regras)’.
Figura 5.9: Activar o botão ’Desenhar’
2. Usando o recurso arrasta-e-solta trazer da paleta Body o elemento Button e
soltá-lo sob a segunda coluna da segunda linha à direita.
a. mudar o campo caption para ’Fechar’.
A função deste botão é de fechar a janela, pelo que para a associar essa acção
ao botão basta:
b. na lista do campo onclick, seleccionar <Shutdown>. E na pequena janela que
aparece clicar em (Ok).
Todos os elementos visuais que pretendo que a aplicação Fractmaplet contenha são
possíveis de ser introduzidos através do recurso arrasta-e-solta. Também as acções
associadas a cada elemento foram definidas através do Maplet Builder. No entanto,
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L99
há dois "erros" que terão de ser colmatados alterando o código que a Maplet produziu.
Neste momento, a construção está completa. Falta apenas gravar a aplicação, para
isso, abrir o menu «File» e seleccionar «Save As». Guardar a Maplet com o nome
Fractmaplet.maplet na localização que se desejar.
5.2.1 Alteração do código do programa
O Maplet Builder esconde um bloco de execução de comandos que pode ser visualizado
se abrirmos o ficheiro criado com este interface, mas numa sessão de Maple.
O bloco de comandos que a aplicação Fractmaplet criou foi copiado e inserido na
folha de trabalho onde estão descritos todos os procedimentos que tornam funcional
o programa. No entanto, enquanto procedíamos à construção visual da janela da
aplicação detectamos duas limitações que só são possíveis serem ultrapassadas depois
de estudado o código de programação Maplet e feito as respectivas alterações.
Uma das alterações tem haver com o aspecto gráfico do programa. Como vimos não
era possível tornar visível o bordo das caixas nem lhes atribuir uma legenda. O código
que o Maplet Builder escreveu referente a este assunto foi o seguinte:
CAPÍTULO 5. MAPLET PARA A INTERPRETAÇÃO GRÁFICA DE SISTEMAS-L100
Para tornar visível o bordo da caixa temos de inserir a seguinte sintaxe
’border’=’true’ e para atribuir a legenda à caixa ’caption’="...".
A outra alteração tem haver com a descrição da acção atribuída ao botão ’Guardar
Regras’ na qual é preciso limpar o campo Target.
Com estas alterações ficam colmatadas as limitações do interface Maplet Builder e
corrigido todo o código de programação do programa. Agora, este é guardado num
único ficheiro aplicfractmaplet.mw passível de ser alterado sempre que um novo
utilizador entender.
Capítulo 6
Fractmaplet e Geometria Dinâmica
O uso do computador pode trazer grandes benefícios ao ensino da mate-
mática, mas para isso é necessário escolher programas adequados a uma
metodologia que tire proveito das características positivas do computador.
Um bom exemplo deste benefício são os programas computacionais de
Geometria Dinâmica que implementam no computador as construções
geométricas elaboradas com régua e compasso. A utilização de Maplets
que designam as interfaces gráficas amigáveis para o utilizador com a
programação computacional Maple serão apresentadas neste trabalho como
um outro aproveitamento dos recursos computacionais da actualidade.
A geometria é, sob o meu ponto de vista, a área da matemática que mais
benefícios tira com o uso do computador e das suas tecnologias, quando se
considera o ensino-aprendizagem.
Em particular, a geometria fractal tem uma ligação e até dependência
relativamente aos computadores e ao seu uso. É, por um lado, um possível
factor de motivação para alguns alunos estudarem e explorarem estas
formas geométricas e, por outro, uma eventual entrada para o mundo da
programação e da exploração de software(dinâmico) de representação de
imagens fractais. Ao tentarem desenhar uma curva fractal com lápis no
papel, facilmente se aperceberão da utilidade e da necessidade da utilização
101
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 102
de um computador para realizar esta tarefa com maior precisão e rapidez.
6.1 Fractmaplet uma ferramenta para o ensino
A aplicação fractmaplet é uma janela interactiva que permite que os alunos abordem
a construção de fractais através de programação matemática.
O professor deve garantir que todos os alunos dominem um conjunto mínimo de
conhecimentos e técnicas, de forma a permitir que, a partir desse patamar, se possam
desenvolver as competências que lhe estão associadas. Neste sentido, o aluno tem
de ter conhecimento prévio dos símbolos e seu significado na linguagem própria dos
sistemas-L. Usando um alfabeto de apenas três símbolos,’F’,’+’e’-’, o aluno é já capaz
de definir as instruções necessárias para criar uma linha fractal.
Ao utilizar a aplicação Fractmaplet o aluno, além de aprender a construir um
fractal e a verbalizar matematicamente as operações necessárias para tal, utilizando
e trabalhando vários conceitos matemáticos, está também a adquirir a noção de
programação e vai apercebendo-se da importância da matemática e do raciocínio
matemático na criação das ferramentas electrónicas que usa todos os dias. Ao
aprender a programar, o aluno também pode aprofundar a noção de variável, de
concretização de uma variável e perceber como e para quê se criam sub-rotinas, e
se aplicam métodos recursivos. Além disso, pode ainda dar-se conta não só das
capacidades do computador como das suas limitações.
A aplicação Fractmaplet torna-se muito funcional quando o aluno está a desenvolver
uma actividade em que tem de explorar e investigar particularidades de um fractal
em diferentes gerações. Depois de este adquirir os conceitos básicos que permitem
caracterizar o sistema-L, que descreve o fractal em questão, tem apenas de inserir nos
campos indicados para o efeito a sequência de símbolos, ou símbolo inicial ’axioma’,
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 103
a(s) regra(s) de produção, o número de direcções e com o deslocamento fácil de um
cursor sobre uma régua escolher a ordem da geração da imagem fractal.
Por exemplo, para visualizar a linha fractal designada por Curva de Koch preenche-se
os campos da janela do seguinte modo:
A imagem fractal que se pode visualizar na região gráfica corresponde à segunda
geração, para visualizar a linha fractal na sexta geração basta deslocar o cursor do
slider mais quatro unidades para a direita.
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 104
O utilizador facilmente dá conta que demora mais algum tempo a mostrar o fractal,
sendo esta uma das possíveis limitações da máquina.
6.2 A Geometria Dinâmica uma ferramenta para o
ensino
6.2.1 A Geometria Dinâmica
Os programas de Geometria Dinâmica são hoje largamente utilizados no estudo da
Geometria Euclideana. Contrariamente às outras ferramentas de desenho gráfico os
programas de Geometria Dinâmica preservam as relações geométricas entre os objectos
que se vão criando, por exemplo, se se desenha um triângulo o aluno pode mudar a
posição dos vértices e a ferramenta de Geometria Dinâmica, automaticamente, arrasta
os segmentos que unem os vértices formando um novo triângulo definido pela posição
que os vértices passaram a ocupar após a manipulação realizada pelo aluno.
Outro exemplo simples que pode ilustrar o "dinamismo" desta geometria é a
construção da mediatriz de um segmento de recta dados dois pontos, A e B,
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 105
extremidades do segmento. Para construir a mediatriz basta encontrarmos dois pontos
equidistantes de A e de B, e por eles traçar a recta resposta r (mediatriz). Uma vez
efectuada a construção podemos mover os pontos A ou B pela a área de desenho e
o programa que implementa a Geometria Dinâmica, automaticamente, redesenhará
todos os objectos preservando as suas propriedades. Desta forma, a recta r continuará
visualmente a ser a mediatriz de A e B. (Figura 6.1)
Exemplo: Dados dois pontos, A e B, construir a mediatriz do segmento de recta
[AB].
Construção: 1. Construir a circunferência C0, com centro no ponto A e que
contém o ponto B;
2. Construir a circunferência C1, com centro no ponto B e que contém o ponto A;
3. Construir a recta r definida pelos pontos C e D, intersecções entre C0 e C1.
Figura 6.1: Exemplo de construção da mediatriz
Os programas de Geometria Dinâmica facilitam, ainda, a verificação da validade
no formalismo das construções. No exemplo anterior, se o usuário não construiu
correctamente a mediatriz, ao arrastarmos o ponto A (ou B) pela área de desenho
aparecerá algum erro que pode ser identificado visualmente.
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 106
Figura 6.2: Exemplo da mediatriz em diversas configurações
São vários os programas de Geometria Dinâmica que estão ao alcance dos
alunos: Cabri Géomètre, Geometer Sketchpad-GSP, Cinderella e Régua e
Compasso-R.e.C..
6.2.2 R.e.C.
O programa de Geometria Dinâmica que utilizaremos neste trabalho é o programa
Régua e Compasso que é um software desenvolvido pelo professor René Grotheman
da Universidade Católica de Eichstaett na Alemanha. Num regime de código aberto
(as pessoas têm acesso ao código fonte do programa) e de utilização livre (o programa
não necessita do pagamento de qualquer licença para a sua utilização). O nome do
programa R.e.C. surgiu da tradução do alemão Z.u.L. (Zirkel und Lineal) para o
português Régua e Compasso.
A primeira versão do programa R.e.C. foi desenvolvida para um computador Atari ST
em 1988. Quatro anos mais tarde foi lançada a versão R.e.C para Windows. Contudo,
com o surgimento da linguagem Java1 e sua posterior popularização, o professor René
iniciou a reconstrução do programa, na linguagem Java, ficando pronta em 1999.
O software sofre actualizações constantes, que estão disponíveis, no endereço electró-
1Linguagem de programação para Internet lançada em 1995 pela Sun Microsystems
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 107
nico http://mathsrv.ku-eichstaett.de/MGF/homes/grothmann/java/zirkel/doc
−en/index.html, no qual também é possível encontrar informações diversas sobre
o mesmo. A versão actual do programa à data deste trabalho é a versão 6.1 e é
disponibilizada gratuitamente, inclusive o seu código fonte, através da Licença Publica
Geral da GNU (GNU General Public License).2
O interface do programa é suficientemente intuitivo para que o professor seja capaz de
orientar o aluno para as diversas construções geométricas presentes no Currículo do
Programa do Ensino Secundário.
Figura 6.3: Tela do R.e.C com actividades desenvolvidas
Neste trabalho não vamos descrever em pormenor este programa, mas sim apresentar
as construções com ele obtidas e que simulam os fractais obtidos recorrendo à
2Para obter mais informações sobre a GNU General Public License consultar o endereço
http://www.gnu.org/copyleft/gpl.html.
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 108
tecnologia das Maplets.
Deste modo, os fractais podem ser apresentados sem recorrer à ferramenta
computacional Maple que obriga a ter o software MapleNT comercial (pago) instalado.
6.2.3 Fractais construídos em R.e.C
O programa R.e.C. permite desde a realização de construções geométricas simples
até construções bastante complexas. Permite construir imagens fractais através de
rotinas recursivas, mas neste caso o utilizador não programa directamente escrevendo
as ordens numa determinada linguagem de programação- é o programa que faz
um background através das indicações que se dão ao escolher e seleccionar pontos,
segmentos de recta, figuras, etc, e ao realizar-se determinado número de operações
com esses objectos. O programa interpreta um procedimento e "aprende-o" para
voltar a repeti-lo quando solicitado, a partir de outros objectos que se selecciona
previamente.
Este recurso pode ser entendido como um algoritmo para realizar uma construção, ou
seja, o programa R.e.C. dispõe de ferramentas para agrupar passos de construção na
forma de uma função geométrica, designada por ’macro’.
Assim, o uso de recorrência em ’macro’ permite uma elegante introdução ao conceito
de algoritmo sem a necessidade de explicar variáveis ou comandos do tipo ’for’. Em
contrapartida, não é tão fácil que o aluno se dê conta do que é programar.
Uma destas macros é designada por slider e é obtida do seguinte modo:
1. Sob a tela clicar com o botão direito do rato (surge o menu <Padrão>);
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 109
2. Seleccionar a opção slider na lista do menu <Padrão>;
3. Marcar dois pontos sob a tela (surge uma janela que solicita um parâmetro);
4. Quando solicitado, indicar para o valor do parâmetro a, o valor mínimo
pretendido para o slide. Clicar no botão Ok (surge uma nova janela a solicitar
um novo parâmetro);
5. Indicar para o valor do parâmetro b, o valor máximo que deve ter o slide. Clicar
no botão Ok.
O slider é criado de acordo com os parâmetros indicados pelo utilizador.
Nas construções que se seguem foi associado um slider aos passos da construção
do fractal. Assim, quando se anima o ponto no slider actualiza-se na construção a
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 110
ordem da geração do fractal. Comparando os elementos da janela Fractmaplet com as
ferramentas do programa R.e.C. podemos dizer que o axioma, as regras de produção
e o número de direcções são na Maplet o que é a construção da ’macro’ no software
dinâmico. E, em ambos o slider tem a mesma funcionalidade.
1 Conjunto de Cantor
Figura 6.4: Cinco primeiras gerações do fractal Cantor
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 111
2 Triângulo de Sierpinski
Figura 6.5: Sete primeiras gerações do fractal Triângulo de Sierpinski
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 112
3 Tapete de Sierpinski
Figura 6.6: Cinco primeiras gerações do fractal Tapete de Sierpinski
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 113
4 Curva de Koch
Figura 6.7: Sete primeiras gerações do fractal Curva de Koch
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 114
5 Ilha de Koch
Figura 6.8: Cinco primeiras gerações do fractal Ilha de Koch
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 115
6 Curva de Peano
Figura 6.9: Quatro primeiras gerações do fractal Curva de Peano
A abordagem às aplicações Fractmaplet e R.e.C. é realizada de modo diferente. A
primeira é baseada em programação Maple e a segunda na exploração da construção
geométrica proporcionada pelo programa R.e.C.
Na verdade, a imagem final, como era de esperar, é similar nas duas aplicações.
Enquanto que, ao utilizar o R.e.C. o aluno apenas pode manipular os fractais
construídos (Cantor, Triâgulo de Sierpinski, Tapete de Sierpinski, Curva de Koch,
Ilha de Koch e Curva de Peano) visualizando as diferentes gerações, analisando
propriedades e observando as alterações que um fractal sofre quando se modificam
algumas das condições iniciais que lhe dão origem, com a aplicação Fractmaplet
o aluno pode gerar todo o tipo de fractais que podem ser produzidos por um sistema-L.
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 116
Outra divergência entre as duas aplicações, reside nas vantagens que um software de
acesso livre e integralmente desenvolvido em Java, o R.e.C., possui relativamente à
aplicação Fractmaplet que necessita de um software comercial (pago). O programa
R.e.C. pode ser executado em qualquer plataforma e também via internet, permitindo
que quase todos os recursos (a menos os recursos de manipulação de arquivos) estejam
disponíveis em páginas HTML. Estes programas em Java que podem ser interpretados
pela Internet recebem o nome de applet. Assim, para além da portabilidade e
interactividade que este programa oferece, temos a possibilidade de trabalhar com as
imagens gráficas, permitindo em tempo real animações directamente de uma página
da Internet.
Para exportar as construções em R.e.C. para HTML, basta aceder ao menu <Especial>
e seleccionar a opção <Exportar para HTML>, surge uma janela na qual podemos
mudar algumas definições (por exemplo, a cor do fundo da página, o titulo da página,
etc).
Figura 6.10: Exportar uma construção em R.e.C para HTML
CAPÍTULO 6. FRACTMAPLET E GEOMETRIA DINÂMICA 117
Figura 6.11: Applet com o Triângulo de Sierpinski
O usuário do applet pode escolher a ordem da geração na qual pretende visualizar o
fractal e observar as alterações que o fractal sofre quando desloca pela tela os pontos
P1, P2 e P3.
Índice Remissivo
applet, 116
Conjunto de Cantor, 20, 110
Curva de Koch, 22, 34, 113
Combinações de ilhas e lagos, 38
Ilha Quadrática, 36
Ilha Quadrática de Koch, 37
Modificação Quadrática do Floco de
Neve, 37
Floco de Neve, 23
Ilha de Koch, 23, 114
Curva de Peano, 24, 115
Curvas de Preenchimento do Plano, 40
Conjunto de Cantor, 45
Curva de Hilbert, 40
Curva de Peano, 42
Curva Quadrática de Sierpinski, 42
Tapete de Sierpinski, 44
Triângulo de Sierpinski, 43
Fractal, 17
fractal
auto-semelhança, 19
complexidade infinita, 19
dimensão fraccionária, 19
Fractmaplet, 89, 102
Geometria Dinâmica, 101
R.e.C., 106
Maple, 52
folha de trabalho, 55
Maplet Builder, 55
Palette
elementos, 58
Command, 57
Layout, 56
Palette, 56
elementos, 58, 60–64
Properties, 57
Maplets, 55
interface, 56
Maplet Simples, 65
Modelação de Plantas, 46
Modelação gráfica, 29
função de interpretação gráfica, 29
linguagem LOGO, 29
Sistemas de Lindemayer„ 26
Sistemas-L, 26
alfabeto, 26
axioma, 26
definição, 28
118
ÍNDICE REMISSIVO 119
evolução de um sistema-L, 27
palavra, 27, 29
regras de produção, 26
Tapete de Sierpinski, 22, 112
Triângulo de Sierpinski, 21, 111
Bibliografia
[1] BORKE, Paul: L-System User Notes, vs 2.5, New York, 1991;
[2] FERREIRA, Paulo Jorge: Modelação de tráfego em redes de telecomunicações:
modelos Markovianos e baseados em sistemas de Lindenmayer, Tese de Doutora-
mento, UA, 2005 (pág.63-68);
[3] ABELSON, H. e diSESSA, A. A.: Turtle geometry, M.I.T. Press, Cambridge, 1982;
[4] LAUREWENER, Hans: Fractals: Endlessly Geometrical Figure, Princeton,
University Press, New Jersey, 1991;
[5] LINDENMAYER, A.: Mathematical models for cellular interaction in develop-
ment, Parts I and II. Journal of Theoretical Biology, 18:280–315, 1968.
[6] MANDELBROT, Benoît: The Fractal Geometry of Nature, W. H. Freeman and
Company, 1983;
[7] MCWORTER, William: Fractint L-Systems Tutorial, vs 1.4, 1997;
[8] MINISTÉRIO DA EDUCAÇÃO: A Matemática na Educação Básica, Lisboa, 1999
(pág.55-56);
[9] PONTE, J. P.: O Ensino da Matemática na sociedade da informação in Educação
e Matemática, no45, APM;
[10] PEITGEN, Heins-Otto, JÜRGENS, Hartmut e SAUPE, Dietmar: Chaos and
Fractals- New Frontiers of Science, Springer-Verlag, New York, 1992;
120
BIBLIOGRAFIA 121
[11] PRUNSINKIEWICZ, Przemyslaw: Graphical applications of L-systems, Procee-
dings of Graphics Interface ’86 / Vision Interface ’86 (pág.247-263);
[12] PRUNSINKIEWICZ, Przemyslaw e LINDENMAYER, Arist: The Algorithmic
Beaty of plants, Springer-Verlag, New York, 1990 (pág.1-40);
[13] REFORMA DO ENSINO SECUNDÁRIO in http://www.dgic.min-edu.pt;
[14] SAGAN, Hans Space-filling curves, Springer, Berlim, 1994.
[15] SALOMAA, A.: Formal languages, Academic Press, New York, 1973.
[16] SOUSA, Avelino J. R.: Maplets- Modelos Interactivos no Ensino da Matemática,
FCUP, 2003;
[17] STEWART, Ian: The Problems of Mathematics, Oxford University Press, 1987;
[18] WMINC: Maple 10: Getting Started Guide, 2005;
[19] WMINC: Maple 10: Maple Quick Start, 2005;
[20] WMINC: Maple 10: Maple User Manual, 2005;
[21] WRIGHT, David J.: Dynamical Sistems and Fractals Lectune Notes ;
[22] www.maplesoft.com/applications/index.aspx;
[23] http://ecademy.agnesscott.edu/ lriddle/ifs/ifs.html;
[24] http://local.wasp.uwa.edu.au/ pbourke/fractals/;