É sabido que o GnuPlot é um excelente programa para gerar gráficos tanto 2D quanto 3D partindo de funções matemáticas ou de um arquivos de dados originados de alguma simulação. Mas agora, com a ajuda do povray, podemos gerar gráfico de beleza mais aprimorada. Vale ressaltar que o pov-ray é um programa de ray tracing disponível para variadas plataformas de computação.
Prontinho. Agora vamos gerar alguns gráficos legais, acompanhe abaixo:
set terminal povray
set xlabel "eixo X"
set ylabel "eixo Y"
set zlabel "eixo Z"
set samples 20
set isosamples 20
set out "graficoA.pov"
splot [-3:3][-3:3 ]
cos(x) + sin(y) with d
! povray +FC +A0.5 graficoA.pov
set terminal povray
set xlabel "eixo X"
set ylabel "eixo Y"
set zlabel "eixo Z"
set samples 20
set isosamples 20
set out "graficoB.pov"
splot [-3:3][-3:3]
log(cos(x)**2 + sin(y)**2) with d
! povray +FC +A0.5 graficoB.pov
set terminal povray
set xlabel "eixo X"
set ylabel "eixo Y"
set zlabel "eixo Z"
set samples 20
set isosamples 20
set out "graficoC.pov"
splot x**2 + y**2 with d,
x**2 - y**2 with d
! povray +FC +A0.5 graficoC.pov
set terminal povray
set xlabel "eixo X"
set ylabel "eixo Y"
set zlabel "eixo Z"
set samples 20
set isosamples 20
set out "graficoD.pov"
splot x + y with d
! povray +FC +A0.5 graficoD.pov
Até agora só foi possível plotar gráficos de funções matemáticas. Mas digamos que você desenvolva um programa que simule algum problema, seja de natureza matemática ou física. Como devemos proceder para visualizar estes dados? Para fim de demonstração fiz um pequeno programa escrito na linguagem C para gerar dados de uma função matemática, o programa segue abaixo:
#include <stdio.h>
#include <math.h>
main (int argc, char **argv)
{
float x, y, z;
FILE *arquivo;
arquivo = fopen ("dados.dat", "w");
for (x = -20; x <= 20; x += 0.3) {
for (y = -20; y <= 20; y += 0.3) {
z = sin (sqrt (pow (x, 2) + pow (y, 2)));
printf ("%f %f %f
", x, y, z);
fprintf (arquivo, "%f %f %f
", x, y, z);
}
}
}
Para compilar basta:
$ gcc programa.c -o programa -lm
$ ./programa
Com isso será gerado um arquivo de nome "dados.dat" no lugar corrente onde você executou o programa compilado. É neste arquivo que estão os dados que queremos visualizar, abaixo segue como proceder:
set terminal povray
set xlabel "eixo X"
set ylabel "eixo Y"
set zlabel "eixo Z"
set samples 20
set isosamples 20
set style data points
set out "graficoE.pov"
splot 'dados.dat' u 1:2:3
! povray +FC +A0.8 graficoE.pov
[1] - Não pretendo neste tutorial resolver possíveis problemas de dependência ou falta de pacotes para uma correta compilação do programa. Apenas uma dica, verifique se existem todos os dev necessários para a compilação, na falta, tente buscar e instalar usando o programa responsável por isso (Yast, Apt, Rpm...) na distro Linux que você usa.
[4] Comentário enviado por franklinbr em 17/01/2007 - 11:55h
Sim, e nao sei como fazer isso, na verdade o que acontece eh que o gnuplot gera um arquivo.pov, correspondente ao grafico. O que se pode fazer eh descobrir como declarar uma imagem em background no codigo do do povray gerado, e isso apesar de nao ser dificil , nao sei :(
[5] Comentário enviado por franklinbr em 17/01/2007 - 11:57h
Mas de qualquer forma tenho uma pista de como fazer, no caso este camarada do link criou tudo na mao, independente do gnuplot, ele fez um programinha em C pra gerar os dados e usou o povray para gerar o grafico.
[6] Comentário enviado por ethraza em 18/01/2007 - 01:26h
Todos os gráficos foram gerados com o comando splot, será que funciona e faz alguma diferença usando o comando plot?
E quanto a velocidade de plotagem, cai muito a performance?
[7] Comentário enviado por franklinbr em 18/01/2007 - 01:51h
Os graficos foram gerados com splot porque sao graficos 3D, pra gerar graficos 2D basta plot, veja a syntax do gnuplot ou algum tutorial, para mais explicacoes
A respeito da resolucao voce pode escolher mudando o valor "+A0.5" do comando abaixo
! povray +FC +A0.5 graficoB.pov
que se nao me engano vai ateh o valor 1, nao tenho certeza, eh necessário um teste para verificar ...
[8] Comentário enviado por sermart em 21/01/2007 - 21:24h
eu achei muito interessante pois já usei o pov ray para linux e não havia testado esta possibilidade, até porque pov vem evoluindo bastante. Parabéns pelo artigo.
[10] Comentário enviado por astha em 10/10/2010 - 18:15h
Estimado Franklin,
Eu nao escrivo muito bem portugues, solamente espanhol. Espero que voce pueda enterderme!!!
Eu ja tenho instalado o Gnuplot 4.2. Eu tenho feito os passos que voce disse, mas cuando quero instalar o Gnuplot 4.0 em uma pasta escolhida como voce diz, não tenho sucesso. Eu fiz
$./configure --prefix=/home/hfs/astha/
ESTO APARECEU NA ULTIMA PARTE
** Configuration summary for gnuplot 4.0.0:
Where is the help file? ${prefix}/share/gnuplot/4.0/gnuplot.gih
Use builtin minimal readline
Enable generation of JPEG files
Enable generation of GIF files
Enable generation of PNG files
using gd driver
Enable TTF fonts with gd driver
Build gnuplot-mode for X/Emacs
Build LaTeX tutorial
Use the X Window System
Enable mouse for X11
Enable pm3d
Enable filledboxes
Enable relative boxwidths
Enable defined(variable) test
Enable fitting error variables
$ make
Mas cuando entro na pasta ASTHA, nenhum arquivo, PORQUE??