martes, 15 de noviembre de 2016

Dibujando a Patricio Estrella en Java

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>
</n>
</n>
</numerocurvas>

No hay comentarios:

Publicar un comentario