ecucaoines en java
Publicado por OHAG (2 intervenciones) el 22/11/2009 23:41:11
hola, estoy haciendo un programa en java el cual tiene que ingresar una ecuacion primero en una caja de texto y graficar la ecuacion ingresada en el plano cartesiano, el plano ya lo tengo hecho pero no tengo idea de como ingresar la ecuacion y hacer que grafique en el plano, por ejemplo ingreso 2x+y-6=0 y esto tiene que salir graficado en el plano
aqui mi codigo
import java.applet.Applet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.*;
public class ECUACIONES extends Applet
{
int x0,y0, xn, yn;
int ancho,alto;
int esX, esY;
double max,min;
Font ft7=new Font("French Script MT",Font.PLAIN,10);
public void init()
{
this.setSize(800,600);
ancho = getSize().width-10;
alto=100*getSize().height/100;
x0=ancho/2;
y0=alto/2;
esX=20;
esY=20;
setBackground(Color.black);
}
public void paint(Graphics g)
{
super.paint(g);
Graficar(g,x0,y0);
}
void Graficar (Graphics os, int xo, int yo )
{
int i=0,castmin,castmax,ycastmin,ycastmax ;
Graphics2D g=(Graphics2D)os;
//xo toma el valor de x0=400, yo toma el valor de y0=300
g.setColor(Color.RED);
g.drawLine(xo,0,xo,alto);
g.drawLine(10,yo,ancho-10,yo);
min=-1.0*xo/esX;
max=(1.0*(ancho-xo)/esX);
castmin=(int)Math.round(min);
castmax=(int)Math.round(max);
ycastmin=(int)Math.round(1.0*(yo-alto)/esY);
ycastmax=(int)Math.round(1.0*yo/esY);
g.setColor(Color.LIGHT_GRAY);
g.setFont(ft7);
int numpixel=ancho;
if(esX>5)
{
for(i=castmin+1;i<castmax;i++)
{
g.drawLine(xo+i*esX,yo-2,xo+i*esX,yo+2);
if(i>0)
g.drawString(""+i,xo+i*esX-2,yo+12);
if(i<0)
g.drawString(""+i,xo+i*esX-6,yo+12);
}
}
if (esY>5)
{
for(i=castmin+1;i<castmax;i++)
{
g.drawLine(xo-2,yo-i*esY,xo+2,yo-i*esY);
if(i>0)
g.drawString(""+i,xo-12,yo-i*esY+3);
if(i<0)
g.drawString(""+i,xo-14,yo-i*esY+3);
}
}
double ecuacion;
double x,y;
int x1,x2,y1,y2,j1,j2,retorno;
double valorx,valorx1,valory,valory1;
String formula=" ";
formula=JOptionPane.showInputDialog("INGRESE ECUACION");
ecuacion=Double.parseDouble(formula);
for(i=0;i<numpixel;i++)
{
ESTA PARTE NO SE COMO INTERPRETARLA EN EL PLANO
SI ALGUIEN ME PUEDE AYUDAR
GRACIAS
OHAG
aqui mi codigo
import java.applet.Applet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.*;
public class ECUACIONES extends Applet
{
int x0,y0, xn, yn;
int ancho,alto;
int esX, esY;
double max,min;
Font ft7=new Font("French Script MT",Font.PLAIN,10);
public void init()
{
this.setSize(800,600);
ancho = getSize().width-10;
alto=100*getSize().height/100;
x0=ancho/2;
y0=alto/2;
esX=20;
esY=20;
setBackground(Color.black);
}
public void paint(Graphics g)
{
super.paint(g);
Graficar(g,x0,y0);
}
void Graficar (Graphics os, int xo, int yo )
{
int i=0,castmin,castmax,ycastmin,ycastmax ;
Graphics2D g=(Graphics2D)os;
//xo toma el valor de x0=400, yo toma el valor de y0=300
g.setColor(Color.RED);
g.drawLine(xo,0,xo,alto);
g.drawLine(10,yo,ancho-10,yo);
min=-1.0*xo/esX;
max=(1.0*(ancho-xo)/esX);
castmin=(int)Math.round(min);
castmax=(int)Math.round(max);
ycastmin=(int)Math.round(1.0*(yo-alto)/esY);
ycastmax=(int)Math.round(1.0*yo/esY);
g.setColor(Color.LIGHT_GRAY);
g.setFont(ft7);
int numpixel=ancho;
if(esX>5)
{
for(i=castmin+1;i<castmax;i++)
{
g.drawLine(xo+i*esX,yo-2,xo+i*esX,yo+2);
if(i>0)
g.drawString(""+i,xo+i*esX-2,yo+12);
if(i<0)
g.drawString(""+i,xo+i*esX-6,yo+12);
}
}
if (esY>5)
{
for(i=castmin+1;i<castmax;i++)
{
g.drawLine(xo-2,yo-i*esY,xo+2,yo-i*esY);
if(i>0)
g.drawString(""+i,xo-12,yo-i*esY+3);
if(i<0)
g.drawString(""+i,xo-14,yo-i*esY+3);
}
}
double ecuacion;
double x,y;
int x1,x2,y1,y2,j1,j2,retorno;
double valorx,valorx1,valory,valory1;
String formula=" ";
formula=JOptionPane.showInputDialog("INGRESE ECUACION");
ecuacion=Double.parseDouble(formula);
for(i=0;i<numpixel;i++)
{
ESTA PARTE NO SE COMO INTERPRETARLA EN EL PLANO
SI ALGUIEN ME PUEDE AYUDAR
GRACIAS
OHAG
Valora esta pregunta


0