
import java.applet.Applet;
import java.awt.*;
import javax.swing.JApplet;
import javax.swing.JOptionPane;
public class PlanoInclinado extends Applet {
public void init(){
}
public void paint(Graphics g){
String aux=JOptionPane.showInputDialog(null,"INGRESE EL VALOR DE LA BASE","BASE",JOptionPane.DEFAULT_OPTION);
double base=Double.parseDouble(aux);
String aux2=JOptionPane.showInputDialog(null,"INGRESE EL VALOR DE LA ALTURA","ALTURA",JOptionPane.DEFAULT_OPTION);
double altura=Double.parseDouble(aux2);
double angulo;
g.drawLine(30,150,(int) base+30,150 );
g.drawLine((int)base+30, 150,(int)base+30,150-(int)altura);
g.drawLine(30, 150, (int)base+30, 150-(int)altura);
double tan=altura/base;
angulo=Math.atan(tan);
angulo=Math.toDegrees(angulo);
String aux8=JOptionPane.showInputDialog(null,"INGRESE LA DISTANCIA a DE LA MASA","INGRESE DISTANCIA a",JOptionPane.DEFAULT_OPTION);
double ab=Double.parseDouble(aux8);
double c=ab*Math.cos(angulo*Math.PI/180);
double xo=30+c;
double l=ab*Math.sin(angulo*Math.PI/180);
double yo=150-l;
double d=20*Math.cos(angulo*Math.PI/180);
double xo1=xo+d;
double m=(c+d)*Math.tan(angulo*Math.PI/180);
double yo1=150-m;
double dx=10*Math.sin(angulo*Math.PI/180);
double dy=10*Math.cos(angulo*Math.PI/180);
double xo2=xo1-dx;
double yo2=yo1-dy;
g.drawLine((int)xo1,(int)yo1,(int)xo2,(int)yo2);
g.drawLine((int)xo2,(int)yo2,(int)(xo-dx),(int)(yo-dy));
g.drawLine((int)(xo-dx),(int)(yo-dy),(int)xo,(int)yo);
String aux3=JOptionPane.showInputDialog(null,"INGRESE EL VALOR DE LA FUERZA","FUERZA EN NEWTONS",JOptionPane.DEFAULT_OPTION);
double fuerza=Double.parseDouble(aux3);
String aux4=JOptionPane.showInputDialog(null,"INGRESE EL VALOR DE LA MASA","MASA EN KILOGRAMOS",JOptionPane.DEFAULT_OPTION);
double masa=Double.parseDouble(aux4);
String aux5=JOptionPane.showInputDialog(null,"INGRESE EL VALOR DEL COEFICIENTE DE ROZAMIENTO","COEFICIENTE DE ROZAMIENTO",JOptionPane.DEFAULT_OPTION);
double miu=Double.parseDouble(aux5);
String aux6=JOptionPane.showInputDialog(null,"INGRESE EL TIEMPO","TIEMPO EN SEGUNDOS",JOptionPane.DEFAULT_OPTION);
double tiempo=Double.parseDouble(aux6);
double gravedad=9.8;
double aceleracion;
aceleracion=(fuerza/masa)-(gravedad*((miu*Math.cos(angulo*Math.PI/180))+Math.sin(angulo*Math.PI/180)));
System.out.println(" "+aceleracion);
double desplazamiento= aceleracion*0.5*tiempo*tiempo;
System.out.println(" "+desplazamiento);
double xn=desplazamiento*Math.cos(angulo*Math.PI/180);
System.out.println(" "+xn);
double yn=desplazamiento*Math.sin(angulo*Math.PI/180);
System.out.println(" "+yn);
g.setColor(Color.RED);
g.drawLine((int)(xo+xn),(int)(yo-yn), (int)(xo1+xn), (int)(yo1-yn));
g.drawLine((int)(xo1+xn),(int)(yo1-yn),(int)(xo2+xn),(int)(yo2-yn) );
g.drawLine((int)(xo2+xn),(int)(yo2-yn),(int)(xo+xn-dx),(int)(yo-yn-dy) );
g.drawLine((int)(xo+xn-dx),(int)(yo-yn-dy),(int)(xo+xn),(int)(yo-yn) );
g.setColor(Color.BLACK);
double yb=5*Math.sin((angulo)*Math.PI/180);
double xb=5*Math.cos((angulo)*Math.PI/180);
double frx=0.1*miu*masa*gravedad*Math.cos(angulo*Math.PI/180);
double fry=0.1*miu*masa*gravedad*Math.sin(angulo*Math.PI/180);
g.drawLine((int)(xo+xn-xb+(0.5*d)),(int)(yo-yn-yb-dx),(int)(xo+xn-xb+(0.5*d)-frx),(int)(yo-yn-yb-dx+fry) );
g.drawString("fr",(int)(xo+xn-xb+(0.5*d)-frx-15),(int)(yo-yn-yb-dx+fry));
g.setColor(Color.BLUE);
double ny=0.1*masa*gravedad*Math.cos(angulo*Math.PI/180);
double nx=0.1*masa*gravedad*Math.sin(angulo*Math.PI/180);
g.drawLine((int)(xo+xn-xb+(0.5*d)),(int)(yo-yn-yb-dx),(int)(xo+xn-xb+(0.5*d)-nx),(int)(yo-yn-yb-dx-ny) );
g.drawString("FN",(int)(xo+xn-xb+(0.5*d)-nx-20),(int)(yo-yn-yb-dx-ny));
g.setColor(Color.LIGHT_GRAY);
double fx=0.1*fuerza*Math.cos(angulo*Math.PI/180);
double fy=0.1*fuerza*Math.sin(angulo*Math.PI/180);
g.drawLine((int)(xo+xn-xb+(0.5*d)),(int)(yo-yn-yb-dx),(int)(xo+xn-xb+(0.5*d)+fx),(int)(yo-yn-yb-dx-fy) );
g.drawString("F",(int)(xo+xn-xb+(0.5*d)+fx-15),(int)(yo-yn-yb-dx-fy));
g.setColor(Color.GRAY);
double peso=0.1*masa*gravedad;
g.drawLine((int)(xo+xn-xb+(0.5*d)),(int)(yo-yn-yb-dx),(int)(xo+xn-xb+(0.5*d)),(int)(yo-yn-yb-dx+peso) );
g.drawString("P",(int)(xo+xn-xb+(0.5*d)-15),(int)(yo-yn-yb-dx+peso));
for(int i=0;i<10;i++){
}
g.drawString("Fuerza", 202,44);
g.drawString(""+fuerza, 322,44);
g.drawString("Masa", 202,59);
g.drawString(""+(int)masa, 322,59);
g.drawString("Tiempo", 202,74);
g.drawString(""+tiempo, 322,74);
g.drawString("U", 202,89);
g.drawString(""+miu, 322,89);
g.drawString("Aceleracion", 202,104);
g.drawString(""+(short)aceleracion, 322,104);
g.drawString("Desplasamiento", 202,119);
g.drawString(""+(short)desplazamiento, 322,119);
g.drawString("F.R. ", 202,134);
g.drawString(""+(short)(miu*masa*gravedad*Math.cos(angulo*Math.PI/180)), 322,134);
g.drawString("Angulo", 202,149);
g.drawString(""+(short)angulo, 322,149);
g.drawString("F. Normal", 202,164);
g.drawString(""+masa*gravedad*Math.cos(angulo*Math.PI/180), 322,164);
g.drawString("Peso", 202,179);
g.drawString(""+masa*9.8, 322,179);
}
}

esta bien hecho el deber.. es una buena aplicacion nos puede servir para hacer algunos deberes
ResponderEliminarBUEN PROGRAMA, PERO DEBERIAS PONER MEJOR UN DIBUJITO PA VERLO MEJOR
ResponderEliminarEncuentro muy completo tu programa, me parece que podrías añadirle un dibujo para visualizar mejor con las lineas de Fuerza, friccion peso y normal... el codigo es entendible buen trabajo
ResponderEliminarmuy bien el codigo.. esta muy organizado... felicitaciones.. se entiende q funciones empleas en el ejercicio..
ResponderEliminarEs un buen programa pues muestra en forma práctica la resolución de un sistema de fuerzas que actúan sobre un bloque de subida, aunque se podria definir un limite para cuando la fuerza es muy grande de tal manera que el gráfico no se salga del applet.
ResponderEliminarEncuentro muy completo tu programa, me parece que podrías corregirle la linea de "niu" es friccion te corrijo. La tabla esta muy entendible, buen trabajo
ResponderEliminarEncuentro muy completo tu programa, me parece que podrías corregirle la linea de "niu" es friccion te corrijo. La tabla esta muy entendible, buen trabajo
ResponderEliminarBueno el programa ya tendria un enfocque en que basarme ya que mi trabajo es el contrario al mio osea es de bajada
ResponderEliminar