domingo, 29 de noviembre de 2009

Calculo del Movimiento Rectilíneo Uniformemente Variado (MRUV)

Se va a usar el mismo programa que para Vectores 3D
Main. ClaseMatriz

public class Matriz {
public int numerofilas;
public int numerocolumnas;
public double [][]matriz;

public Matriz(){
}

public Matriz(int nf, int nc){
numerofilas = nf;
numerofolumnas = nc;
matriz = new double [numerofilas][numerocolumnas];

for(int i=0; i < numerofilas; i++)
for(int j=0; j < numerocolumnas; j++)
matriz[i][j]=0;
}

public Matriz suma(Matriz b){
Matriz resultado;

if((this.numerofilas == b.numerofilas)&& (this.numerocolumnas == b.numerocolumnas)){
resultado = new Matriz(this.numerofilas, this.numerocolumnas);
for(int i=0; i < this.numerofilas; i++)
for(int j=0; j < this.numerocolumnas; j++)
resultado.matriz[i][j] = this.matriz[i][j]+ b.matriz[i][j];
return resultado;
}
else
System.out.println("Error en las dimensiones de las matrices");
resultado=null;
return resultado;
}

public Matriz multiplicacion(Matriz b){
Matriz resultado;
if(this.numerofilas == b.numerocolumnas){
resultado=new Matriz(this.numerofilas,b.numerocolumnas);
for(int i=0; i < this.numerofilas; i++){
for(int j=0; j < b.numerocolumnas; j++){
for(int k=0; k < this.numerofilas; k++)
resultado.matriz[i][j] += (this.matriz[i][k]*b.matriz[k][j]);
}
}
return resultado;
}
else
System.out.println("Error en dimensiones de las matrices");
resultado = null;
return resultado;
}

public String toString(){
String aux="\n[\n";
for(int i=0; i < numeroFilas; i++){
for(int j=0; j < numeroColumnas; j++){
aux += matriz[i][j]+" ";
}
aux+="\n";
}
aux+= "]";
return aux;
}
}

Main.ClaseVector
public class Vector3D extends Matriz{
double coorX;
double coorY;
double coorZ;

public Vector3D(){
super(1,3);
}

public Vector3D(double x, double y, double z){
super(1,3);
this.matriz[0][0] = x;
this.matriz[0][1] = y;
this.matriz[0][2] = z;
coordenadaX = x;
coordenadaY = y;
coordenadaZ = z;
}

public double magnitud(){
double resultado = 0;
for(int i=0; i < 3; i++){
resultado + = this.matriz[0][i]*this.matriz[0][i];
}
resultado = Math.sqrt(resultado);
return resultado;
}

public double magnitud1(){
double resultado;
resultado = this.coorX*this.coorX+this.coorY*this.coorY+this.coorZ*this.coorZ;
resultado = Math.sqrt(resultado);
return resultado;
}

//Otra forma de calcular la magnitud
public double magnitud2(){
double resultado;
resultado = Math.pow(this.coorX, 2)+Math.pow(this.coorY, 2)+Math.pow(this.coorZ, 2);
resultado = Math.sqrt(resultado);
return resultado;
}

//Calculo del unitario
public Vector3D uni(){
Vector3D uni = new Vector3D();
for(int i=0; i < 3; i++)
uni.matriz[0][i] = this.matriz[0][i]/this.magnitud2();
return uni;
}

public double productoEscalar(Vector3D v){
double resultado = 0;
for(int i=0; i < 3; i++)
resultado += this.matriz[0][i]*v.matriz[0][i];
return resultado;
}

public Vector3D productoCruz(Vector3D v){
Vector3D resultado;
resultado = new Vector3D();
resultado.matriz[0][0] = this.matriz[0][1]*v.matriz[0][2]-this.matriz[0][2]*v.matriz[0][1];
resultado.matriz[0][1] = this.matriz[0][2]*v.matriz[0][0]-this.matriz[0][0]*v.matriz[0][2];
resultado.matriz[0][2] = this.matriz[0][0]*v.matriz[0][1]-this.matriz[0][1]*v.matriz[0][0];
return resultado;
}


public static void main(String args[]){
Vector3D v1 = new Vector3D(3,2,-1);
Vector3D v2 = new Vector3D(1,2,2);
System.out.println(v1+"\n"+v2);
System.out.println("La coordenada en x es: "+v1.coordenadaX);
System.out.println("\nLa suma de los vectores es: "+(v1.suma(v2)));
System.out.println("\nLa magnitud del vector es: "+v1.magnitud());
System.out.println("\nLa magnitud del vector es: "+v1.magnitud1());
System.out.println("\nLa magnitud del vector es: "+v1.magnitud2());
System.out.println("\nEl vector unitario es: "+v1.unitario());
System.out.println("\nEl producto escalar entre los vectores es: "+v1.productoEscalar(v2));
System.out.println("\nEl producto cruz entre los vectores es: "+v1.productoCruz(v2));
}
}



Main.ClaseMRUV
public class MRUV extends Vector3D{
Matriz posicion;
Matriz velocidad;
Matriz aceleracion;
Matriz desplazamiento;
Matriz velocidad2;

public MRUV(){
}

public MRUV (Vector3D pos, Vector3D veli, Vector3D ace, Vector3D des){
posicion = pos;
velocidad = veli;
aceleracion = ace;
desplazamiento = des;
}

public void calcularPosicion(Vector3D ri, Vector3D veli, Vector3D ace, double t){
posicion = ri.suma((vel0.productoEscalarVector(t)).suma((ace.productoEscalarVector(Math.pow(t,2))).productoEscalarVector(1/2)));
}

public void calcularVelocidad(Vector3D veli, double t, Vector3D ace){
velocidad = veli.suma(ace.productoEscalarVector(t));
}

public void calcularDesplazamiento(Vector3D veli, double t, Vector3D ace){
desplazamiento = (veli.productoEscalarVector(t)).suma((ace.productoEscalarVector(Math.pow(t, 2))).productoEscalarVector(1/2));
}

/*public void calcularVelocidad2(Vector3D veli, Vector3D ace, Vector3D des){
velocidad2 = (Math.pow(vel0, 2)).suma((ace.productoCruz(desplazamiento)).productoEscalarVectorial(2));
}*/

public static void main(String args[]){
MRUV m = new MRUV();
Vector3D ri = new Vector3D (2,1,-1);
Vector3D veli = new Vector3D (0,1,6);
Vector3D ace = new Vector3D (3,-10,4);
double t = 3;
System.out.println("La posicion cuando: t = 3s; ri = 2i+j-k; vi = j+6k; a = 3i-10j+4k es: \n" +m.calcularPosicion(ri, veli, ace, t));
System.out.println("La velocidad cuando: t = 3s; vi = j+6k; a = 3i-10j+4k; es: \n" +m.calcularVelocidad(veli, t, ace));
System.out.println("El desplazamiento cuando: t = 3s; vi = j+6k; a = 3i-10j+4k es: \n" +m.calcularDesplazamiento(veli, t, ace));
}

}

martes, 24 de noviembre de 2009

Applet

Un applet es un componente de una aplicación que se ejecuta en el contexto de otro programa, por ejemplo un navegador web. El applet debe ejecutarse en un contenedor, que lo proporciona un programa anfitrión, mediante un plugin, o en aplicaciones como teléfonos móviles que soportan el modelo de programación por applets.
A diferencia de un programa, un applet no puede ejecutarse de manera independiente, ofrece información gráfica y a veces interactúa con el usuario, típicamente carece de sesión y tiene privilegios de seguridad restringidos. Un applet normalmente lleva a cabo una función muy específica que carece de uso independiente.
Ejemplos comunes de applets son las Java applets y las animaciones Flash. Otro ejemplo es el Windows Media Player utilizado para desplegar archivos de video incrustados en los navegadores como el Internet Explorer. Otros plugins permiten mostrar modelos 3D que funcionan con una applet.
Un Java applet es un código JAVA que carece de un método main, por eso se utiliza principalmente para el trabajo de páginas web, ya que es un pequeño programa que es utilizado en una página HTML y representado por una pequeña pantalla gráfica dentro de ésta.
Applet Java
Un applet Java es un applet escrito en el lenguaje de programación Java. Los applets de Java pueden correr en un navegador web utilizando la Java Virtual Machine (JVM), o en el AppletViewer de Sun.
Entre sus características podemos mencionar un esquema de seguridad que permite que los applets que se ejecutan en el equipo no tengan acceso a partes sensibles (por ej. no pueden escribir archivos), a menos que uno mismo le dé los permisos necesarios en el sistema; la desventaja de este enfoque es que la entrega de permisos es engorrosa para el usuario común, lo cual juega en contra de uno de los objetivos de los Java applets: proporcionar una forma fácil de ejecutar aplicaciones desde el navegador web.
En Java un applet (Subprograma), es un programa que puede incrustarse en un documento HTML; es decir en una página Web. Cuando un Navegador carga una página Web que contiene un Applet, éste se descarga en el navegador Web y comienza a ejecutarse. Esto nos permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la página Web en su navegador.
El Navegador que carga y ejecuta el applet se conoce en términos genéricos como el contenedor de Applets. El kit de desarrollo de Software para java 2 (J2SDK) 1.4.1 incluye el contenedor de Applets, llamado appletviewer, para probar los applets antes de incrustarlos en una página Web.

Bibliografia

http://es.wikipedia.org/wiki/Applet_Java
http://es.wikipedia.org/wiki/Applet

sábado, 14 de noviembre de 2009

Vectores en tres dimensiones

Main. ClaseMatriz

public class Matriz {
public int numerofilas;
public int numerocolumnas;
public double [][]matriz;

public Matriz(){
}

public Matriz(int nf, int nc){
numerofilas = nf;
numerofolumnas = nc;
matriz = new double [numerofilas][numerocolumnas];

for(int i=0; i < numerofilas; i++)
for(int j=0; j < numerocolumnas; j++)
matriz[i][j]=0;
}

public Matriz suma(Matriz b){
Matriz resultado;

if((this.numerofilas == b.numerofilas)&& (this.numerocolumnas == b.numerocolumnas)){
resultado = new Matriz(this.numerofilas, this.numerocolumnas);
for(int i=0; i < this.numerofilas; i++)
for(int j=0; j < this.numerocolumnas; j++)
resultado.matriz[i][j] = this.matriz[i][j]+ b.matriz[i][j];
return resultado;
}
else
System.out.println("Error en las dimensiones de las matrices");
resultado=null;
return resultado;
}

public Matriz multiplicacion(Matriz b){
Matriz resultado;
if(this.numerofilas == b.numerocolumnas){
resultado=new Matriz(this.numerofilas,b.numerocolumnas);
for(int i=0; i < this.numerofilas; i++){
for(int j=0; j < b.numerocolumnas; j++){
for(int k=0; k < this.numerofilas; k++)
resultado.matriz[i][j] += (this.matriz[i][k]*b.matriz[k][j]);
}
}
return resultado;
}
else
System.out.println("Error en dimensiones de las matrices");
resultado = null;
return resultado;
}

public String toString(){
String aux="\n[\n";
for(int i=0; i < numerofilas; i++){
for(int j=0; j < numerocolumnas; j++){
aux += matriz[i][j]+" ";
}
aux+="\n";
}
aux+= "]";
return aux;
}
}

Main.ClaseVector
public class Vector3D extends Matriz{
double coorX;
double coorY;
double coorZ;

public Vector3D(){
super(1,3);
}

public Vector3D(double x, double y, double z){
super(1,3);
this.matriz[0][0] = x;
this.matriz[0][1] = y;
this.matriz[0][2] = z;
coordenadaX = x;
coordenadaY = y;
coordenadaZ = z;
}

public double magnitud(){
double resultado = 0;
for(int i=0; i < 3; i++){
resultado + = this.matriz[0][i]*this.matriz[0][i];
}
resultado = Math.sqrt(resultado);
return resultado;
}

public double magnitud1(){
double resultado;
resultado = this.coorX*this.coorX+this.coorY*this.coorY+this.coorZ*this.coorZ;
resultado = Math.sqrt(resultado);
return resultado;
}

//Otra forma de calcular la magnitud
public double magnitud2(){
double resultado;
resultado = Math.pow(this.coorX, 2)+Math.pow(this.coorY, 2)+Math.pow(this.coorZ, 2);
resultado = Math.sqrt(resultado);
return resultado;
}

//Calculo del unitario
public Vector3D uni(){
Vector3D uni = new Vector3D();
for(int i=0; i < 3; i++)
uni.matriz[0][i] = this.matriz[0][i]/this.magnitud2();
return uni;
}

public double productoEscalar(Vector3D v){
double resultado = 0;
for(int i=0; i < 3; i++)
resultado += this.matriz[0][i]*v.matriz[0][i];
return resultado;
}

public Vector3D productoCruz(Vector3D v){
Vector3D resultado;
resultado = new Vector3D();
resultado.matriz[0][0] = this.matriz[0][1]*v.matriz[0][2]-this.matriz[0][2]*v.matriz[0][1];
resultado.matriz[0][1] = this.matriz[0][2]*v.matriz[0][0]-this.matriz[0][0]*v.matriz[0][2];
resultado.matriz[0][2] = this.matriz[0][0]*v.matriz[0][1]-this.matriz[0][1]*v.matriz[0][0];
return resultado;
}


public static void main(String args[]){
Vector3D v1 = new Vector3D(3,2,-1);
Vector3D v2 = new Vector3D(1,2,2);
System.out.println(v1+"\n"+v2);
System.out.println("La coordenada en x es: "+v1.coordenadaX);
System.out.println("\nLa suma de los vectores es: "+(v1.suma(v2)));
System.out.println("\nLa magnitud del vector es: "+v1.magnitud());
System.out.println("\nLa magnitud del vector es: "+v1.magnitud1());
System.out.println("\nLa magnitud del vector es: "+v1.magnitud2());
System.out.println("\nEl vector unitario es: "+v1.unitario());
System.out.println("\nEl producto escalar entre los vectores es: "+v1.productoEscalar(v2));
System.out.println("\nEl producto cruz entre los vectores es: "+v1.productoCruz(v2));
}
}