Buenas,
Alguien sabe como graficar una función f(x) en 2 dimensiones.
Desde ya se agradece toda ayuda.
jsavoila
Buenas,
Alguien sabe como graficar una función f(x) en 2 dimensiones.
Desde ya se agradece toda ayuda.
jsavoila
Buenas!
Yo para gráficas he usado: http://www.jfree.org/jfreechart/
Hace tiempo que no se actualiza la versión pero si no quieres nada hacer algo muy complejo yo creo que te servirá.
Un saludo.
Desde mi punto de vista el JFreeChart es la mejor solucion por la calidad que tiene.
A continuacion un ejemplo de como hacer un graficador con JFreeChart.
En este caso graficare la sigueinte funcion f(x)=4sen(x).
=====================================================================
/* * Autor: Roberto Perez * Potosi - Bolivia. */ import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; import java.awt.Dimension; public class Graficador extends ApplicationFrame{ public Graficador(){ super("Graficador"); XYDataset paresDeDatos = generarDatos(); JFreeChart diagrama = crearDiagrama(paresDeDatos); ChartPanel chartPanel = new ChartPanel(diagrama); setContentPane(chartPanel); } private XYDataset generarDatos(){ //le pasamos una funcion generadora f(x) XYSeries datos = new XYSeries("Linea Funcion"); for(double x=0.0; x<=50.0; x+=0.2) datos.add(x,f(x)); XYSeriesCollection conjuntoDatos = new XYSeriesCollection(); conjuntoDatos.addSeries(datos); return conjuntoDatos; } private JFreeChart crearDiagrama(XYDataset conjuntoDatos){ JFreeChart diag = ChartFactory.createXYLineChart( "Graficador", //Titulo Grafica "X", // Leyenda eje X "Y", // Leyenda eje Y conjuntoDatos, // Los datos PlotOrientation.VERTICAL, //orientacion false, // ver titulo de linea false, //tooltips false //URL ); return diag; } //aqui definimos la funcion que desees, en esta caso la f(x) = 4sen(x) private double f(double x){ } Graficador miGraficador = new Graficador(); miGraficador.pack(); RefineryUtilities.centerFrameOnScreen(miGraficador); miGraficador.setVisible(true); } }
=============================
Ten en cuenta que debes tener instaldo las paquetes de JFreeChart de forma correcta
Para que veas como queda subi la imagen de la ejecucion en la siguiente enlace:
Hola quetal a todos estoy iniciandome en java, eh investigado mucho sobre el jfreechart es una buena herramienta, yo lo que quisiera hacer es que no solo me grafique el seno como en el codigo que publico FIURER87, pues lo estoy adaptando pero quiero recibir el valor de X por el usuario y pues creando el constructor me sale error alguien podria ayudarme???
private double x;// miembro de la clase graficador //mi constructor Graficador(double valor) { x=valor; }
No se si te entiendo bien, pero con un solo valor de x, no tienes una función, tienes un punto...
y = f(x)
¿Que pretendes hacer con la x que le pasas, obtenida del usuario?
Un saludo.
un constructor debe ser antepuesto por la palabra reservada public
public class Graficador{ private double x; //constructor public Graficador(double valor){ x = valor; } }
gracias por responder, bueno lo que quiero hacer es que desde ese valor de X obtenido del usuario con el for, dado el limite que yo le coloque me vaya generando la grafica, aunque por ahora solo puedo hacer que me grafique sen(x) o cos(x) y las demas funciones trigonometricas, pero tengo otra duda ahora como podria hacer para que grafique por ejemplo: 1+ sen(x)+ cos(x) , alguna idea?
You must log in to post.