import java.awt.*;
import javax.swing.JFrame;
import javax.swing.*;
//import javax.swing.JOptionPane.showMessageDialog();
import java.awt.event.*;
import javax.swing.*;
class ProyectoFinal extends Frame {
//Constructor de la clase
//****TRAZADOR CUBICO PATRICIO ESTRELLA***
public ProyectoFinal()
{
this.setTitle("Patricio Estrella");
this.setSize(800,500);
this.setBackground(Color.white);
this.setVisible(true);
}
public static void main (String[] args) {
new ProyectoFinal();
}
public void paint(Graphics g){
g.drawLine(0+10, 250-250, 0+10, 250+250);
g.drawLine(0, 480-0, 800, 0+480);
int numeCurvas_aux;
int numeroCurvas=48;
double []derivadas = new double[96];
int []tam_arreglos = new int[48];
tam_arreglos[0]=6;
tam_arreglos[1]=15;
tam_arreglos[2]=15;
tam_arreglos[3]=5;
tam_arreglos[4]=7;
tam_arreglos[5]=6;
tam_arreglos[6]=2;
tam_arreglos[7]=2;
tam_arreglos[8]=2;
tam_arreglos[9]=4;
tam_arreglos[10]=6;
tam_arreglos[11]=5;
tam_arreglos[12]=2;
tam_arreglos[13]=2;
tam_arreglos[14]=2;
tam_arreglos[15]=2;
tam_arreglos[16]=2;
tam_arreglos[17]=2;
tam_arreglos[18]=2;
tam_arreglos[19]=2;
tam_arreglos[20]=2;
tam_arreglos[21]=2;
tam_arreglos[22]=2;
tam_arreglos[23]=2;
tam_arreglos[24]=2;
tam_arreglos[25]=2;
tam_arreglos[26]=2;
tam_arreglos[27]=2;
tam_arreglos[28]=2;
tam_arreglos[29]=2;
tam_arreglos[30]=2;
tam_arreglos[31]=2;
tam_arreglos[32]=2;
tam_arreglos[33]=2;
tam_arreglos[34]=2;
tam_arreglos[35]=2;
tam_arreglos[36]=2;
tam_arreglos[37]=2;
tam_arreglos[38]=2;
tam_arreglos[39]=2;
tam_arreglos[40]=2;
tam_arreglos[41]=2;
tam_arreglos[42]=2;
tam_arreglos[43]=2;
tam_arreglos[44]=2;
tam_arreglos[45]=2;
tam_arreglos[46]=2;
tam_arreglos[47]=2;
derivadas[0]=7.115369722;
derivadas[1]=0;//3.487414444;
derivadas[2]=0;//-2.246036774;
derivadas[3]=-2.747477419;
derivadas[4]=0;//-11.4300523;
derivadas[5]=-2.747477419;
derivadas[6]=-3.077683537;
derivadas[7]=0;//-1.428148007;
derivadas[8]=0;
derivadas[9]=0;
derivadas[10]=0;
derivadas[11]=-3.077683537;
derivadas[12]=1.2348971557;
derivadas[13]=-0.383864035;
derivadas[14]=0;//1;
derivadas[15]=0;//3.077683537;
derivadas[16]=0;//-5.144554016;
derivadas[17]=0;//-5.144554016;
derivadas[18]=0;
derivadas[19]=1.804047755;
derivadas[20]=1;
derivadas[21]=-5.67128182;//1.804047755;
derivadas[22]=1;
derivadas[23]=1.804047755;
derivadas[24]=-1.191753593;
derivadas[25]=1;
derivadas[26]=-0.7002075382;//-1.191753593;
derivadas[27]=.8390996312;
derivadas[28]=-0.7002075382;//-1.191753593;
derivadas[29]=.8390996312;
derivadas[30]=0;
derivadas[31]=0;
derivadas[32]=0;
derivadas[33]=0;
derivadas[34]=-1;
derivadas[35]=1;
derivadas[36]=-0.3639702343;
derivadas[37]=0.5773502692;
derivadas[38]=-0.5;
derivadas[39]=2;
derivadas[40]=0;
derivadas[41]=0;//11.4300523;
derivadas[42]=-2.8;//-1.191753593;
derivadas[43]=-0.0817;//11.4300523;
derivadas[44]=0;
derivadas[45]=0;
derivadas[46]=0;
derivadas[47]=0;
derivadas[48]=0;
derivadas[49]=0;
derivadas[50]=0;
derivadas[51]=0;
derivadas[50]=0;
derivadas[52]=0;
derivadas[53]=0;
derivadas[54]=0;
derivadas[55]=0;
derivadas[56]=0;
derivadas[57]=1;
derivadas[58]=0;
derivadas[59]=0;
derivadas[60]=1;
derivadas[61]=0;
derivadas[62]=0;
derivadas[63]=0;
derivadas[64]=0;
derivadas[65]=0;
derivadas[66]=0;
derivadas[67]=0;
derivadas[68]=0;
derivadas[69]=0;
derivadas[70]=-1.7;
derivadas[71]=1.19;
derivadas[72]=-1.7;
derivadas[73]=1.19;
derivadas[74]=-1.7;
derivadas[75]=1.19;
derivadas[76]=-1.7;
derivadas[77]=1.19;
derivadas[78]=3.7474;
derivadas[79]=2.7474;
derivadas[80]=-0.732050808;
derivadas[81]=0.8390996312;
derivadas[82]=-0.732050808;
derivadas[83]=0.8390996312;
derivadas[84]=-0.732050808;
derivadas[85]=0.8390996312;
derivadas[86]=-0.732050808;
derivadas[87]=0.8390996312;
derivadas[88]=0.732050808;
derivadas[89]=4.8390996312;
derivadas[90]=-0.732050808;
derivadas[91]=0.8390996312;
derivadas[92]=-3.732050808;
derivadas[93]=3.8390996312;
derivadas[94]=-3.732050808;
derivadas[95]=3.8390996312;
int aux_derivadas=0;
for(numeCurvas_aux=0; numeCurvas_aux<numerocurvas numecurvas_aux="">
{
int tam= tam_arreglos[numeCurvas_aux];
double []x = new double [tam];
double []a = new double[tam];
double FPO=derivadas[aux_derivadas];
double FPN=derivadas[aux_derivadas +1];
aux_derivadas +=2;
int n=tam-1;
double []b= new double[n+1];
double []c= new double[n+1];
double []d= new double[n+1];
double []h= new double[n+1];
double []L= new double[n+1];
double []z= new double[n+1];
double []u= new double[n+1];
double []alfa = new double[n+1];
double factor = 8;
int j,i;
if(numeCurvas_aux==0)
{
x[0]=7.8;
x[1]=8.1;
x[2]=8.9;
// x[3]=9.5;
// x[4]=10;
// x[5]=11;
// x[6]=11.8;
// x[7]=12.8;
// x[8]=13.3;
// x[9]=13.8;
// x[10]=14.5;
x[3]=14.5;
x[4]=15.6;
// x[13]=16;
x[5]=16.3;
a[0]=21.5;
a[1]=22.5;
a[2]=23.5;
// a[3]=24.3;
// a[4]=25;
// a[5]=26;
// a[6]=27;
// a[7]=28;
// a[8]=29;
// a[9]=30;
// a[10]=31;
a[3]=31;
a[4]=33;
// a[13]=34;
a[5]=34.8;
}
if(numeCurvas_aux==1)
{
x[0]=16;
x[1]=16.1;
// x[2]=16.2;
// x[3]=16.3;
x[2]=16.4;
// x[2]=16.5;
// x[3]=16.6;
x[3]=17;
x[4]=18;
x[5]=19;
x[6]=20;
x[7]=21;
x[8]=22;
x[9]=23;
x[10]=24;
x[11]=24.5;
x[12]=25;
x[13]=25.5;
x[14]=25.8;
a[0]=36;
a[1]=35.8;
// a[2]=35.4;
// a[3]=35;
a[2]=34.6;
// a[2]=34.2;
// a[3]=33.8;
a[3]=33.4;
a[4]=33;
a[5]=33.2;
a[6]=33.8;
a[7]=33.5;
a[8]=32.8;
a[9]=32.8;
a[10]=33.2;
a[11]=33.6;
a[12]=34;
a[13]=35;
a[14]=36;
}
if(numeCurvas_aux==2)
{
x[0]=16;
x[1]=16.1;
x[2]=16.4;
x[3]=17;
x[4]=18;
x[5]=19;
x[6]=20;
x[7]=21;
x[8]=22;
x[9]=23;
x[10]=23.5;
x[11]=24.5;
x[12]=25;
x[13]=25.5;
x[14]=25.8;
a[0]=36;
a[1]=36.1;
a[2]=37;
a[3]=37.8;
a[4]=38.4;
a[5]=38.9;
a[6]=38.9;
a[7]=38;
a[8]=38.1;
a[9]=38.8;
a[10]=38.8;
a[11]=38.5;
a[12]=38;
a[13]=37;
a[14]=36;
}
if(numeCurvas_aux==3)
{
x[0]=1.8;
x[1]=2;
x[2]=3;
x[3]=7;
x[4]=9.5;
a[0]=36;
a[1]=35;
a[2]=32.2;
a[3]=27;
a[4]=24.5;
}
if(numeCurvas_aux==4)
{
x[0]=1.8;
x[1]=2;
x[2]=2.4;
x[3]=3;
x[4]=3.5;
x[5]=6.1;
x[6]=14.5;
a[0]=36;
a[1]=37;
a[2]=37.5;
a[3]=37.6;
a[4]=37.5;
a[5]=36.2;
a[6]=31;
}
if(numeCurvas_aux==5)
{
x[0]=18.5;
x[1]=21.9;
x[2]=24.6;
x[3]=27.3;
x[4]=29.8;
// x[5]=30.4;
// x[6]=31;
x[5]=31.1;
a[0]=38.8;
a[1]=43.1;
a[2]=46;
a[3]=47.8;
a[4]=48.6;
// a[5]=48.5;
// a[6]=48;
a[5]=47;
}
if(numeCurvas_aux==6)
{
// x[0]=29.1;
// x[1]=29.75;
// x[2]=30.21;
x[0]=30.9;
x[1]=31.1;
// a[0]=43.9;
// a[1]=44.48;
// a[2]=45;
a[0]=45.3;
a[1]=47;
}
if(numeCurvas_aux==7)
{
x[0]=29.1;
x[1]=30.9;
a[0]=43.9;
a[1]=45.3;
}
if(numeCurvas_aux==8)
{
x[0]=28.5;
x[1]=29.1;
// x[3]=29.8;
// x[4]=30.6;
a[0]=41.5;
a[1]=43.9;
// a[3]=33.5;
// a[4]=30.3;
}
if(numeCurvas_aux==9)
{
x[0]=28.5;
x[1]=29;
x[2]=29.5;
x[3]=30.3;
a[0]=41.5;
a[1]=36.5;
a[2]=33.5;
a[3]=30.3;
}
if(numeCurvas_aux==10)
{
x[0]=28.5;
x[1]=30.3;
// x[2]=34;
x[2]=39;
x[3]=42;
x[4]=44;
// x[4]=43.5;
// x[5]=44;
x[5]=44.5;
a[0]=28.9;
a[1]=30.3;
// a[2]=32.2;
a[2]=36;
a[3]=37.8;
a[4]=37;
// a[4]=36.6;
// a[5]=36.5;
a[5]=35;
}
if(numeCurvas_aux==11)
{
x[0]=33;
x[1]=34.5;
x[2]=41;
x[3]=43.5;
// x[4]=44.3;
x[4]=44.5;
a[0]=21.9;
a[1]=23.5;
a[2]=30;
a[3]=33.5;
// a[4]=34.7;
a[4]=35;
}
if(numeCurvas_aux==12)
{
x[0]=34.5;
x[1]=35.8;
a[0]=23.5;
a[1]=19.2;
}
if(numeCurvas_aux==13)
{
x[0]=7.8;
x[1]=35.8;
a[0]=21.5;
a[1]=19.2;
}
if(numeCurvas_aux==14)
{
x[0]=7.7;
x[1]=35.9;
a[0]=20.5;
a[1]=18.2;
}
if(numeCurvas_aux==15)
{
x[0]=7.7;
x[1]=7.8;
a[0]=20.5;
a[1]=21.5;
}
if(numeCurvas_aux==16)
{
x[0]=35.8;
x[1]=35.9;
a[0]=19.2;
a[1]=18.2;
}
if(numeCurvas_aux==17)
{
x[0]=20;
x[1]=21;
a[0]=33.8;
a[1]=38;
}
if(numeCurvas_aux==18)
{
x[0]=16.5;
x[1]=26.5;
a[0]=31.2;
a[1]=32.3;
}
if(numeCurvas_aux==19)
{
x[0]=14.5;
x[1]=26.5;
a[0]=27.8;
a[1]=32.3;
}
if(numeCurvas_aux==20)
{
x[0]=15.3;
x[1]=17.5;
a[0]=27.2;
a[1]=30.9;
}
if(numeCurvas_aux==21)
{
x[0]=7.7;
// x[1]=9.6;
// x[2]=13;
x[1]=21.5;
a[0]=20.5;
// a[1]=12.7;
// a[2]=11;
a[1]=9;
}
if(numeCurvas_aux==22)
{
x[0]=8;
x[1]=9;
a[0]=32.5;
a[1]=32.4;
}
if(numeCurvas_aux==23)
{
x[0]=27;
x[1]=27.5;
a[0]=44.5;
a[1]=45;
}
if(numeCurvas_aux==24)
{
x[0]=19.5;
x[1]=21.5;
a[0]=40.9;
a[1]=41.2;
}
if(numeCurvas_aux==25)
{
x[0]=19.6;
x[1]=21.6;
a[0]=40.4;
a[1]=40.8;
}
if(numeCurvas_aux==26)
{
x[0]=24.1;
x[1]=25.6;
a[0]=40.9;
a[1]=40;
}
if(numeCurvas_aux==27)
{
x[0]=23.9;
x[1]=25.3;
a[0]=40.4;
a[1]=39.5;
}
if(numeCurvas_aux==28)
{
x[0]=25.5;
x[1]=27.5;
a[0]=32.6;
a[1]=31.5;
}
if(numeCurvas_aux==29)
{
x[0]=17.1;
x[1]=21;
a[0]=26.5;
a[1]=28;
}
if(numeCurvas_aux==30)
{
x[0]=20.5;
x[1]=24.2;
a[0]=27.1;
a[1]=28.6;
}
if(numeCurvas_aux==31)
{
x[0]=15;
x[1]=16;
a[0]=24.5;
a[1]=25.2;
}
if(numeCurvas_aux==32)
{
x[0]=10;
x[1]=11;
a[0]=21;
a[1]=22;
}
if(numeCurvas_aux==33)
{
x[0]=20.5;
x[1]=21;
a[0]=19.5;
a[1]=20;
}
if(numeCurvas_aux==34)
{
x[0]=36;
x[1]=37;
a[0]=28;
a[1]=28.9;
}
if(numeCurvas_aux==35)
{
x[0]=15;
x[1]=16;
a[0]=20;
a[1]=19.9;
}
if(numeCurvas_aux==36)
{
x[0]=14;
x[1]=17;
a[0]=20;
a[1]=19.5;
}
if(numeCurvas_aux==37)
{
x[0]=19;
x[1]=19.01;
a[0]=36;
a[1]=36;
}
if(numeCurvas_aux==38)
{
x[0]=22.99;
x[1]=23;
a[0]=36;
a[1]=36;
}
if(numeCurvas_aux==39)
{
x[0]=8.1;
x[1]=10;
a[0]=10;
a[1]=15;
}
if(numeCurvas_aux==40)
{
x[0]=8.1;
x[1]=17.5;
a[0]=10;
a[1]=8.1;
}
if(numeCurvas_aux==41)
{
x[0]=17;
x[1]=17.5;
a[0]=9.5;
a[1]=8.1;
}
if(numeCurvas_aux==42)
{
x[0]=21.8;
x[1]=22.3;
a[0]=10.2;
a[1]=8.1;
}
if(numeCurvas_aux==43)
{
x[0]=22.3;
x[1]=32;
a[0]=8.1;
a[1]=9;
}
if(numeCurvas_aux==44)
{
x[0]=31;
x[1]=35.9;
a[0]=11;
a[1]=18.2;
}
if(numeCurvas_aux==45)
{
x[0]=32;
x[1]=32.2;
a[0]=9;
a[1]=11.3;
}
if(numeCurvas_aux==46)
{
x[0]=9.8;
x[1]=16;
a[0]=8.5;
a[1]=7.5;
}
if(numeCurvas_aux==47)
{
x[0]=23.7;
x[1]=30.3;
a[0]=7.2;
a[1]=7.8;
}
for( i=0; i
{
g.setColor(Color.pink);
g.fillOval((int)(x[i] * factor)+ 200 ,500 - (int)(a[i]*factor),4,4); //dibujamos los puntos
}
//-----------------------------1era Etapa-------------------------------//
for(i=0; i<n i="">
h[i]=x[i+1] - x[i];
//-----------------------------2a Etapa----------------------------------//
alfa[0]=(3*(a[1]-a[0]))/h[0] -3*FPO;
alfa[n]=3*FPN-((3*(a[n]-a[n-1]))/h[n-1]);
//-----------------------------3era Etapa-------------------------------//
for(i=1; i<n i="">
alfa[i]=(3/h[i])*(a[i+1]-a[i]) - (3/h[i-1])*(a[i]-a[i-1]);
//-----------------------------4a Etapa---------------------------------//
L[0]=2*h[0];
u[0]=0.5;
z[0]=alfa[0]/L[0];
//-----------------------------5a Etapa---------------------------------//
for(i=1; i<n i="">
{
L[i]=2*(x[i+1]-x[i-1])- h[i-1]*u[i-1];
u[i]=h[i]/L[i];
z[i]=(alfa[i]-h[i-1]*z[i-1])/L[i];
}
//-----------------------------6a Etapa---------------------------------//
L[n]= h[n-1]*(2-u[n-1]);
z[n]=(alfa[n]-h[n-1]*z[n-1])/L[n];
c[n]=z[n];
//-----------------------------7a Etapa---------------------------------//
for(j=n-1; j>=0; j--)
{
c[j]=z[j]-u[j]*c[j+1];
b[j]=(a[j+1]-a[j])/h[j] -(h[j]*(c[j+1] + 2*c[j]))/3;
d[j]=(c[j+1]-c[j])/(3*h[j]);
}
double x_evaluacion;
i=0;
for(x_evaluacion=x[0]; x_evaluacion
{
if((x_evaluacion >=x[i])&&(x_evaluacion
{
double y= a[i]+b[i]*(x_evaluacion-x[i])+c[i]*Math.pow(x_evaluacion-x[i],2)+d[i]*Math.pow(x_evaluacion-x[i],3);
g.setColor(Color.magenta);
g.fillOval((int)(x_evaluacion*factor)+ 200,500-(int)(y*factor) ,1,1);
}
else i++;
}
}// fin del for para el numero de curvas
} //Fin void paint
}
</n>
No hay comentarios:
Publicar un comentario