DrGeo

DrGeo
Autor Hilaire Fernandes
Lançamento 31 de dezembro de 1996 (1996-12-31)
Versão estável 19.06a (10 de junho de 2019; há 5 anos)
Escrito em Pharo
Sistema operacional Linux, Mac OS X, Windows, Android, iOS
Gênero(s) Software de Geometria Dinâmica
Licença GNU GPL
Estado do desenvolvimento Ativo
Página oficial www.drgeo.eu

DrGeo é um software livre de Geometria Dinâmica criado por Hilaire Fernandes sob a licença GNU LGPL. O projeto foi iniciado em 1996 como um programa para o sistema MS-DOS e portado para a plataforma GNU/Linux em 1999 através do conjunto de ferramentas GTK+[1]. O software está disponível para uma ampla variedade de plataformas e de sistemas operacionais[2], como Linux, Mac OS X, Microsoft Windows, Android, iPads e a interface gráfica educacional Sugar[3].

Além de construções geométricas, o programa permite ao usuário aplicar-lhes transformações, animá-las e utilizar uma linguagem de script e construir macros, o que o torna mais versátil do que outros programas similares, como o Geogebra[4].

O DrGeo tem dois tipos de pontos: um livre, que pode ser movido com o mouse (que pode ser anexado a uma curva), e um ponto dado por suas coordenadas.

Há também a interseção de duas curvas e o ponto médio de um segmento de reta.

O DrGeo é equipado com a reta clássica, o raio, o segmento de reta e o vetor.

Há também o círculo (definido por 2 pontos) e também o menos clássico arco por três pontos. O DrGeo pode construir polígonos (dados por pontos) e o lugar geométrico.

Transformações

[editar | editar código-fonte]

Além das retas paralela e perpendicular através de um ponto, o DrGeo também pode aplicar uma dessas transformações a um ponto:

  1. reflexão
  2. simetria
  3. translação
  4. rotação
  5. homotetia

Quando alguns objetos, chamados finais, dependem de outros objetos, chamados iniciais, é possível criar uma nova transformação enviando os objetos iniciais aos finais. Isso é uma macro. Ela permite adicionar novos objetos ao DrGeo, como polígonos regulares ou novas transformações, como círculo de inversão.

Programação

[editar | editar código-fonte]

O DrGeo vem com uma linguagem de script, chamada Scheme, uma linguagem similar ao Lisp.

Objeto Scheme

[editar | editar código-fonte]

Também é possível criar um objeto Guile, que é um número, mas criado com um script, escrito na sintaxe do Scheme. Ele pode ter uma ou muitas variáveis, as quais são escolhidas na criação do objeto, com cliques do mouse. Os nomes das variáveis são a1, a2 etc. Por exemplo, se alguém quiser o quadrado de um número a1, o script

(define x (getValue a1))
(* x x)

cria um objeto numérico, cujo valor é o quadrado do primeiro número. Se o primeiro número for modificado, o segundo é modificado também.

Se desejarmos implementar o quadrado de um número complexo, deveremos criar dois valores numéricos, um para a parte real, e outro para a parte imaginária. Como , o script para a parte real é (uma vez que tenha sido selecionado um ponto livre)

(define x (car (getCoordinates a1)))
(define y (cadr (getCoordinates a1)))
(- (* x x) (* y y))

e o script para a parte imaginária (com o mesmo ponto selecionado):

(define x (car (getCoordinates a1)))
(define y (cadr (getCoordinates a1)))
(* 2 x y)

getCoordinates a1 produz uma lista porque a1 é um ponto, que tem duas coordenadas. O CAR dessa lista é a primeira coordenada, que é a abscissa, e o CADR da lista do CDR) é a segunda coordenada.

Uma vez feito isso, resta apenas criar um ponto cujas coordenadas sejam os dois números criados pelos scripts. A transformação é então definida. Ele implementa a função e pode ser transformado em uma macro.

Figura gerada por Scheme

[editar | editar código-fonte]

O objeto Guile pode apenas criar um número. Se desejarmos criar uma figura complexa por um script, devemos escrever o script com um editor de texto, salvá-lo com a extensão scm e, então, fazer o DrGeo avaliar o arquivo.

Aqui está como DrGeo cria um Triângulo de Sierpinski recursivamente:

(new-figure "Sierpinski")
(define (sierpin p1 p2 p3 n)

(let* (

    (p4 (Point "" milieu-2pts p2 p1))
    (p5 (Point "" milieu-2pts p2 p3))
    (p6 (Point "" milieu-2pts p3 p1))

    (q1 (Polygone "" npoints p1 p4 p6))
    (q2 (Polygone "" npoints p2 p4 p5))
    (q3 (Polygone "" npoints p3 p5 p6)))

    (if (> n 1)
    (begin
    (envoi q1 masquer)
    (envoi q2 masquer)
    (envoi q3 masquer)))

    (envoi p4 masquer)
    (envoi p5 masquer)
    (envoi p6 masquer)

    (if (> n 0)
    (begin
     (sierpin p1 p4 p6 (- n 1))
     (sierpin p2 p4 p5 (- n 1))
     (sierpin p3 p5 p6 (- n 1))))))

(soit Point "A" free -3 -1)
(soit  Point "B" free 3 -1)
(soit Point "C" free 0 3)

(sierpin A B C 5)

Referências

  1. Hilaire Fernandes. «A Brief History of Dr. Geo» (em inglês). Consultado em 1 de setembro de 2013 
  2. Hilaire Fernandes. «Download». Consultado em 1 de setembro de 2013 
  3. OLPC Foundation (30 de Outubro de 2012). «DrGeo» (em inglês). Consultado em 1 de Setembro de 2013 
  4. Hilaire Fernandes (31 de Julho de 2013). «Review: Dr. Geo» (em inglês). Consultado em 1 de setembro de 2013 

Ligações Externas

[editar | editar código-fonte]
  • Este artigo foi inicialmente traduzido, total ou parcialmente, do artigo da Wikipédia em inglês cujo título é «DrGeo», especificamente desta versão.
Ícone de esboço Este artigo sobre software é um esboço. Você pode ajudar a Wikipédia expandindo-o.