Ayuda urgente con este codigo en Java

felminem
19 de Abril del 2009
Hola a todos, tengo un gran problema necesito poder crear un applet de Java el cual consiste en graficar un cubo, ya tengo la mayor parte del codigo hecha solo tiene unos errores que no puedo resolver, me gustaria que me ayudaran a corregirlos de verdad se los agradeceria, lo hice en Netbeans 6.1.

/****************************************************/
package LibraryFunciones;
import java.awt.*;
import java.io.*;
/**
*
* @author Administrador
*/
public class Funciones {

public void paint(Graphics g){

}
public void update(Graphics g){

}
public void Size(Dimension d){

}





public static float alfa1;
public static float alfa2;
public static float alf1;
public static float alf2;
public static int ope;
public static double VE=0.5;


public static float norma(float k, float l, float m)
{
float kk;
float ll;
float mm;
float res;
double nor;
kk =k *k;
ll =l *l;
mm =m *m;
nor =kk+ll+mm;
res =(float) Math.pow(nor,0.5);
return(res);
}

public static int checacoor(float a, float b, float c)
{
int t=0;
if(a==0 && b==0 && c==0)
{
t=1;
}
else
{

t=0;
}
return(t);
}

public static float cuad(float x)
{
float r=(float) 0.0;
r =x *x;
return (r);
}

//SE IMPLEMENTA LA OBTENCION DE COORDENADAS DE PANTALLA, SE CALCULA ALFA Y BETA

public static void formula1(float a, float b, float c, int x, int y, int z)
{
float j =(float) 0.0;
float jj =(float) 0.0;
float ii =(float) 0.0;
float i =(float) 0.0;
float fact =(float) 0.0;
float f =(float) 0.0;
float aux1;
float aux2;
jj =norma(a, b, c);
fact =(cuad(b)+cuad(c));
i =(fact *x)-(a *b *y)-(a *c *z);
ii =Math.abs(c);
aux1 =(ii *jj)*y;
aux2 =(ii *jj *b)/c;
j =aux1+(aux2 *z);
f =(float) (jj / Math.pow(fact, 0.5));
alfa1 =i *f;
alfa2 =j *f;
}

//CALCULO DE ALFA Y BETA CON EL TEOREMA 4.6

public static void formula2(float a, float b, float c, int x, int y, int z)
{
float j =(float) 0.0;
float jj =(float) 0.0;
float ii =(float) 0.0;
float i =(float) 0.0;
float fact =(float) 0.0;
float f =(float) 0.0;
jj =norma(a, b, c);
fact =cuad(b)+cuad(c);
i =(fact *x)-(a *b *y)-(a *c *z);
ii =Math.abs(b);
jj =(((ii *jj *c)/b)*y)-(ii *jj *z);
f =(float) (jj / Math.pow(fact, 0.5));
alfa1 =i *f;
alfa2 =j *f;
}

//CALCULO DE ALFA Y BETA CON EL TEOREMA 4.6

public static void formula3(float a, float b, float c, int x, int y, int z)
{
float j =(float) 0.0;
float jj =(float) 0.0;
float ii =(float) 0.0;
float i =(float) 0.0;
float fact =(float) 0.0;
float f =(float) 0.0;
jj =norma(a, b, c);
fact =cuad(a)+cuad(c);
i =(-a *b *x)+(fact *y)-(b *c *z);
ii =Math.abs(a);
j =(((ii *jj *c)/a)*x)-(ii *jj *z);
f =(float) (jj / Math.pow(fact, 0.5));
alfa1 =i *f;
alfa2 =j *f;
}

//CALCULO DE ALFA Y BETA CON EL TEOREMA 4.6

public static void formula4(float a, float b, float c, int x, int y, int z)
{
float j =(float) 0.0;
float jj =(float) 0.0;
float ii =(float) 0.0;
float i =(float) 0.0;
float fact =(float) 0.0;
float f =(float) 0.0;
jj =norma(a, b, c);
fact =cuad(a)+cuad(c);
ii =Math.abs(c);
i =(-a *b *x)+(fact *y)-b *c *z;
j =(jj *ii *x)+((jj *ii *a *z)/c);
f =(float) (jj / Math.pow(fact, 0.5));
alfa1 =i *f;
alfa2 =j *f;
}

//CALCULO DE ALFA Y BETA CON EL TEOREMA 4.6

public static void formula5(float a, float b, float c, int x, int y, int z)
{
float j =(float) 0.0;
float jj =(float) 0.0;
float ii =(float) 0.0;
float i =(float) 0.0;
float fact =(float) 0.0;
float f =(float) 0.0;
jj =norma(a, b, c);
fact =cuad(a)+cuad(b);
ii =Math.abs(b);
j =(-a *c *x)-(b *c *y)+(fact *z);
i =(-jj *ii *x)+((a *ii *jj *y)/b);
f =(float) (jj / Math.pow(fact, 0.5));
alfa1 =i *f;
alfa2 =j *f;
}

//CALCULO DE ALFA Y BETA CON EL TEOREMA 4.6

public static void formula6(float a, float b, float c, int x, int y, int z)
{
float j =(float) 0.0;
float jj =(float) 0.0;
float ii =(float) 0.0;
float i =(float) 0.0;
float fact =(float) 0.0;
float f =(float) 0.0;
jj =norma(a, b, c);
fact =cuad(a)+cuad(b);
ii =Math.abs(a);
i =(-a *c *x)-(b *c *y)+(fact *z);
j =((b *ii *jj *x)/a)+(ii *jj *y);
f =(float) (jj / Math.pow(fact, 0.5));
alfa1 =i *f;
alfa2 =j *f;
}

//FUNCION QUE TRANSFORMA LA COORDENADA EN X, EN UN PUNTO DE COORDENADA DE
//PANTALLA, DE ACUERDO CON REFERENCIA A LO SPIXELES DE LA PANTALLA

int obt_x(float xl, int fx)
{
int f;
xl=(float) ((float) xl * (VE));
f=(int) (xl + fx);
return(f);
}

//FUNCION QUE TRANSFORMA LA COORDENADA EN X, EN UN PUNTO DE COORDENADA DE
//PANTALLA, DE ACUERDO CON REFERENCIA A LO SPIXELES DE LA PANTALLA

int obt_y(float yl, int fy)
{
int l,f;
yl=(float) (yl * VE);
f=(int) (yl - fy);
l=Math.abs(f);
return(l);
}

void grafpuntos(float a1[], float a2[], int fx, int fy)
{
int i, j;
int[] x = new int[8];
int[] y = new int[8];
for(i=0;i<8;i++) //
{ //grafica los cubos de los ejes de referencia
x[i]=obt_x(a1[i],fx); //
y[i]=obt_y(a2[i],fy); //
}
Graphics g;
g.dispose();
g.setColor(Color.YELLOW);
g.drawString("O", fx, fy);
g.drawLine(fx, fy, fx+90, fy);
g.drawLine(fx,fy,fx,fy-90);
g.setColor(Color.WHITE);

for(i=0;i<3;i++)
{
g.drawLine(x[i],y[i],x[i+1],y[i+1]);
for(i=4;i<7;i++)
{
g.drawLine(x[i],y[i],x[i+1],y[i+1]);
g.drawLine(x[0],y[0],x[3],y[3]);
g.drawLine(x[4],y[4],x[7],y[7]);
g.drawLine(x[0],y[0],x[4],y[4]);
g.drawLine(x[1],y[1],x[5],y[5]);
g.drawLine(x[2],y[2],x[6],y[6]);
g.drawLine(x[3],y[3],x[7],y[7]);
//getch();
}
}
}
//height es altura y width es anchura
void pantalla()
{
Graphics g;
Dimension d;
g.setColor(Color.BLUE);
g.drawLine(10,10,d.getSize().width-10,10);
g.drawLine(10, 10, 10, d.getSize().height-10);
g.drawLine(d.getSize().width-10,10,d.getSize().width-10,d.getSize().height-10);
g.drawLine(10,d.getSize().height-10,d.getSize().width-10,d.getSize().height-10);
g.drawLine(10,d.getSize().height/2,d.getSize().width-10,d.getSize().height/2);
g.drawLine(208,10,208,d.getSize().height-10);
g.drawLine(416,10,416,d.getSize().height-10);
g.setColor(Color.RED);
g.drawString("FORMULA 1",50,230);
g.drawString("FORMULA 2",248,230);
g.drawString("FORMULA 3",456,230);
g.drawString("FORMULA 4",50,458);
g.drawString("FORMULA 5",248,458);
g.drawString("FORMULA 6",456,458);
g.setColor(Color.WHITE);
}

void panta()
{
Graphics g;
Dimension d;
int mx,my;
int dx=d.getSize().width;
int dy=d.getSize().height;
g.setColor(Color.BLUE);
g.drawLine(10,10,dx-10,10);
g.drawLine(10,10,10,dy-10);
g.drawLine(dx-10,10,dx-10,dy-10);
g.drawLine(10,dy-10,dx-10,dy-10);
mx=dx/2;
my=dy/2;
g.setColor(Color.YELLOW);
g.drawString("O",mx,my);
g.drawLine(mx,my,mx+200,my);
g.drawLine(mx,my,mx,my-200);
g.setColor(Color.WHITE);
}

//void grafi(float[][] als1 = new float[8][6],float[][] als2 = new float[8][6])
//void grafi(float als1[8][6],float als2[8][6])
void grafi(float[][] als1, float[][] als2)
{
als1 = new float[8][6];
als2 = new float[8][6];
Dimension d;
Graphics g;
int[] x = new int[8];
int[] y = new int[8];
int i,j,fx,fy,cont;
String cade;
int dx=d.getSize().width/2;
int dy=d.getSize().width/2;
g.setColor(Color.YELLOW);
g.drawString("O",fx,fy);
g.drawLine(fx,fy,fx+90,fy);
g.drawLine(fx,fy,fx,fy-90);
g.setColor(Color.WHITE);
cont=0;
do{
for(i=0;i<8;i++)
{
// x[i]=obt_x(als1[i],fx);
// y[i]=obt_y(a2[i],fy);
x[i]=obt_x(als1[i][cont],fx);
y[i]=obt_y(als2[i][cont],fy);
}
for(i=0;i<3;i++)
g.drawLine(x[i],y[i],x[i+1],y[i+1]);
for(i=4;i<7;i++)
g.drawLine(x[i],y[i],x[i+1],y[i+1]);
g.drawLine(x[0],y[0],x[3],y[3]);
g.drawLine(x[4],y[4],x[7],y[7]);
g.drawLine(x[0],y[0],x[4],y[4]);
g.drawLine(x[1],y[1],x[5],y[5]);
g.drawLine(x[2],y[2],x[6],y[6]);
g.drawLine(x[3],y[3],x[7],y[7]);
//getch();
for(i=0;i<8;i++)
{
//x[i]=int null;
//y[i]=int null;
x[i]=0;
y[i]=0;
}
cont++;
}while(cont<ope);
//itoa(ope,cade,10);
g.drawString("Grafica de los",50,400);
g.drawString(cade,170,400);
g.drawString("cubos en el mismo plano",200,400);
//getch();
}
//AQUI EMPIEZA EL METODO MAIN :(
void main()
{
BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
String entrada;


int i;
int j;
int[] x = new int[8];
int[] y = new int[8];
int[] z = new int[8];
int l;
float[] al1 = new float[8];
float[] al2 = new float[8];
float a;
float b;
float c;
float[][] alfs1 = new float[8][6];
float[][] alfs2 = new float[8][6];
byte resp =null;
byte opc =null;
//clrscr();
System.out.print("n****NORMAS NO UNITARIAS****nn");
System.out.print("nPROGRAMA REALIZADO POR: LIRA PARAMO MA. CONCEPCION n");
System.out.print("nSANCHEZ LOO MARIA ADRIANAn");
System.out.print("REINGENIERIA: LOPEZ AGUIRRE FELIPE DE JESUS");
System.out.print("nJIMENEZ ALONSO IVAN ANTONIO");
do
{
System.out.print("n Introduzca los vertices del cubon");
for(i =0;i<8;i++)
{
System.out.printf("x%d=",i+1);
//scanf("%d", x[i]);
entrada=teclado.readLine();
x[i]=(int) Float.parseFloat(entrada);
System.out.printf("y%d=",i+1);
entrada=teclado.readLine();
y[i]=(int) Float.parseFloat(entrada);
System.out.printf("z%d=",i+1);
entrada=teclado.readLine();
z[i]=(int) Float.parseFloat(entrada);
}
do
{
do
{
l =0;
System.out.print("nIntroduzca las coordenadas del observador:n");
System.out.print("a=");
entrada=teclado.readLine();
a=Float.parseFloat(entrada);
//scanf("%f", a);
System.out.print("b=");
entrada=teclado.readLine();
b=Float.parseFloat(entrada);
System.out.print("c=");
entrada=teclado.readLine();
c=Float.parseFloat(entrada);
if(checacoor(a,b,c))
{
System.out.print("La coordenada no es adecuada.");
l=1;
}
}while(l ==1);
//iniciar_gra();
pantalla();

ope=0;
if(c!=0)
{
for(i =0;i<8;i++)
{
formula1(a,b,c,x[i],y[i],z[i]);
al1[i] =alfa1;
al2[i] =alfa2;
}
grafpuntos(al1,al2,104,120);
//getch();
for(i =0;i<8;i++)
{
alfs1[i][ope] =al1[i];
al1[i]=null;
alfs2[i][ope] =al2[i];
al2[i]=null;
}
ope++;
for(i =0;i<8;i++)
{
formula5(a,b,c,x[i],y[i],z[i]);
al1[i] =alfa1;
al2[i] =alfa2;
}
grafpuntos(al1,al2,312,360);
//getch();
for(i =0;i<8;i++)
{
alfs1[i][ope] =al1[i];
al1[i] =null;
alfs2[i][ope] =al2[i];
al2[i] =null;
}
ope++;
}

if(b!=0)
{
for(i =0;i<8;i++)
{
formula2(a,b,c,x[i],y[i],z[i]);
al1[i] =alfa1;
al2[i] =alfa2;
}
grafpuntos(al1,al2,312,120);
//getch();
for(i =0;i<8;i++)
{
alfs1[i][ope] =al1[i];
al1[0] =null;
alfs2[i][ope] =al2[i];
al2[0] =null;
}
ope++;
for(i =0;i<8;i++)
{
formula4(a,b,c,x[i],y[i],z[i]);
al1[i] =alfa1;
al2[i] =alfa2;
}
grafpuntos(al1,al2,104,360);
//getch();
for(i =0;i<8;i++)
{
alfs1[i][ope] =al1[i];
al1[i] =null;
alfs2[i][ope] =al2[i];
al2[i] =null;
}
ope++;
}
if(a!=0)
{
for(i =0;i<8;i++)
{
formula3(a,b,c,x[i],y[i],z[i]);
al1[i] =alfa1;
al2[i] =alfa2;
}
grafpuntos(al1,al2,520,120);
//getch();
for(i =0;i<8;i++)
{
alfs1[i][ope] =al1[i];
al1[i] =null;
alfs2[i][ope] =al2[i];
al2[i] =null;
}
ope++;
}

if(a!=0)
{
for(i =0;i<8;i++)
{
formula3(a,b,c,x[i],y[i],z[i]);
al1[i] =alfa1;
al2[i] =alfa2;
}
grafpuntos(al1,al2,520,120);
//getch();
for(i =0;i<8;i++)
{
alfs1[i][ope] =al1[i];
al1[i] =null;
alfs2[i][ope] =al2[i];
al2[i] =null;
}
ope++;
//******
for(i =0;i<8;i++)
{
formula6(a,b,c,x[i],y[i],z[i]);
al1[i] =alfa1;
al2[i] =alfa2;
}
grafpuntos(al1,al2,520,360);
//getch();

for(i =0;i<8;i++)
{
alfs1[i][ope] =al1[i];
al1[i]=null;
alfs2[i][ope] =al2[i];
al2[i]=null;
}
ope++;
}
//getch();
//cleardevice();
panta();
grafi(alfs1,alfs2);

//closegraph();
System.out.print("nn Desea cambiar coordenadas del observador? (S/N)");
//resp =getche();

}while(resp =='S'||resp =='s');
System.out.print("nn Desea graficar otro cubo? (S/N)");
//opc =getche();
}while(opc =='S'||opc =='s');
//clrscr();
}
}
/************************************************************/