   CDIGO FONTE PARA O ARTIGO "MATEMTICA EM JAVA"
Java Magazine 19 - (c) 2004 Osvaldo Pinali Doederlein
-----------------------------------------------------

GUIA DO USURIO

Durante a execuo da applet, o label no topo exibe as coordenadas do plano
complexo correspondentes ao canto superior esquerdo e inferior direito.

No label inferior, ao final de cada passo do clculo do fractal, ser exibido
algo como "3:double-strict 2.984" onde "double-strict"  o algoritmo de
clculo (kernel); "3"  a tecla associada a este algoritmo, e "2.984"  o
tempo de clculo (parcial, ou total se j executou todos os passos).

Durante o clculo, tambm  exibida uma barra amarela no canto esquerdo do
fractal, mostrando at onde o clculo j foi feito.  Observe que se o
fractal possui um eixo de simetria, ou seja, se a coordenada y=0  visvel,
a regio simtrica  calculada somente uma vez e espelhada, portanto essa
barra amarela poder no percorrer todo o caminho no eixo Y.

Para fazer zoom, clique com o mouse na regio do fractal.  Aparecer um
retngulo que indica a rea a ser expandida.  Sem largar o boto do mouse,
use as teclas "+" e "-" para aumentar ou diminuir o fator de zoom (1X-10X).
Enquanto estiver no "modo de zoom", o label inferior exibe as coordenadas
selecionadas pelo retngulo de zoom.  Solte o boto para confirmar o zoom.
Para fazer um zoom-out, segure a tecla SHIFT enquanto solta o boto.

Para alternar o algoritmo de clculo, use as teclas "0" a "9"; observe que
no label inferior, vai aparecer o cdigo e o nome do algoritmo.

 isso - divirta-se.

A APLICAO MANDELBROT

O cdigo original desta aplicao  um dos primeiros programas grficos
que fiz em Java, l nos tempos do JDK 1.0.x. Portanto, no repare na falta
de Swing, ou mesmo de programao AWT decente :)  Na poca, a idia era
somente implementar em Java o algoritmo de gerao do fractal multi-passo:
o fractal  gerado rapidamente com baixa resoluo, produzindo um feedback
rpido para o usurio; e depois, com passos subsequentes,  refinado em
resolues maiores, mas sem repetir nenhum clculo do passo anterior.
Inspirado em geradores de fractais "profissionais" como o FractInt; deve
ter sido a primeira implementao disso em Java.

Agora, para a JM19, modifiquei o cdigo para suportar diversos "kernels"
de clculo de forma flexvel, e para fazer benchmark de desempenho.
Tambm melhorei um pouco a GUI, acrecentando os Label superior e inferior
para exibir as coordenadas e outras informaes de forma mais organizada.
Outras melhorias de GUI, correes, etc. ficam como exerccio para o leitor.
Infelizmente o cdigo no est muito estruturado, isso foi escrito numa
poca em que Java era lento e uma programao de baixo nvel era essencial
para melhorar o desempenho...

Alis, agradeo tambm aos autores do FractInt pelo arquivo "DEFAULT.MAP"
que contm a palette de cores que utilizei.  Voc pode substituir esse
arquivo por qualquer outra palette no padro do FractInt/WinFract para
obter resultados ainda mais espetaculares.  Qualquer interessado pelo
assunto de fractais precisa conhecer o FractInt:
http://spanky.triumf.ca/www/fractint/fractint.html
Este programa pioneiro at hoje no foi superado na variedade de fractais,
efeitos especiais, flexibilidade para criar fractais customizados, etc.
Infelizmente no tem sido atualizado h vrios anos, provavelmente devido
ao uso extensivo de cdigo Assembly e outras tcnicas de baixo nvel.
