Loading AI tools
Da Wikipédia, a enciclopédia livre
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].
Autor | Hilaire Fernandes |
Lançamento | 31 de dezembro de 1996 |
Versão estável | 19.06a (10 de junho de 2019 | )
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 |
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.
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:
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.
O DrGeo vem com uma linguagem de script, chamada Scheme, uma linguagem similar ao Lisp.
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.
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)
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.