// 18/05/2003
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

/* <APPLET CODE="solbdupla.class" CODEBASE="." WIDTH=470 HEIGHT=400> </APPLET> */

public class solbdupla extends Applet implements AdjustmentListener
{ Label     titulo01, rotulo1a, rotulo1b, rotulo1c, rotulo02, rotulo03;
  TextField caixa001, caixa011, caixa002, caixa003;
  Scrollbar sb1, sb2;
  Number nf;
  double    hora, A, Y;

  public void init()
  { titulo01  = new Label("---- Oscilação diária da luz solar -----");	add(titulo01);

    rotulo1a  = new Label("Inverno");      add(rotulo1a);
	sb1 = new Scrollbar(Scrollbar.HORIZONTAL,0,1,1,5); add(sb1); sb1.addAdjustmentListener(this);
	caixa001 = new TextField(String.valueOf(sb1.getValue()),2); add(caixa001); 	caixa001.setEditable(false);
	rotulo1b  = new Label("Verão  ");      add(rotulo1b);
	rotulo1c  = new Label("Estação:");     add(rotulo1c);
	caixa011 =  new TextField("",6);     add(caixa011);  caixa011.setBackground(Color.yellow);
	caixa011.setEditable(false);

	rotulo02  = new Label("Hora:");      add(rotulo02);
	sb2 = new Scrollbar(Scrollbar.HORIZONTAL,8,0,0,25); add(sb2); sb2.addAdjustmentListener(this);
	caixa002 = new TextField(String.valueOf(sb2.getValue()),2); add(caixa002);	caixa002.setEditable(false);

	rotulo03  = new Label("Radiação:");  add(rotulo03);
	caixa003  = new TextField("",4);     add(caixa003);  caixa003.setBackground(Color.yellow);
	caixa003.setEditable(false);
  }

  public void adjustmentValueChanged(AdjustmentEvent e)
  {
    if(e.getAdjustable() == sb1)
    {	 A=(double)sb1.getValue();
         hora=(double)sb2.getValue();
		 Y=A*Math.sin((hora-6)*(2*3.1416/24));
	     if (Y<0.00001) Y=0;
		 caixa001.setText(String.valueOf(A));
		 caixa003.setText(String.valueOf(Y));
		 repaint();
     }
    if(e.getAdjustable() == sb2)
    {	 hora=(double)sb2.getValue();
         A=(double)sb1.getValue();
		 Y=A*Math.sin((hora-6)*(2*3.1416/24));
	     if (Y<0.00001) Y=0;
		 caixa002.setText(String.valueOf(hora));
		 caixa003.setText(String.valueOf(Y));
		 repaint();
     }
   }

  public void paint (Graphics g)
  { double  T, DT, Y0, T0;
    T=0;    DT=0.2;

    Y0=30; T0=15; /* fatores de escala */
    g.drawRect(83,120,360,200);
    g.drawString("Radiação ", 5, 175);
	g.drawString("Tempo (horas)", 270, 335);

    if(A==4.0)      {g.setColor(Color.red);     caixa011.setText("Verão   ");}
	else if(A==3.0) {g.setColor(Color.magenta); caixa011.setText("Outono");}
	else if(A==2.0) {g.setColor(Color.blue);    caixa011.setText("Primavera");}
	else if(A==1.0) {g.setColor(Color.darkGray);caixa011.setText("Inverno");}

    g.drawLine(83, (int)(320-Y*Y0),440,(int)(320-Y*Y0));

	for (T=0.3;T<(24);T=T+DT)
    {
		g.drawOval((int)(80+T*T0),(int)(320-Y*Y0),1,1);
		g.drawLine((int)((hora+5.6)*T0),120,(int)((hora+5.6)*T0),320);
		Y=A*Math.sin((T-6)*(2*3.1416/24));
        if (Y<0) Y=0;
    }
  }
}// Enrique Ortega DEA-FEA-Unicamp 25 abril 2002
