que es un 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. El término fue introducido en AppleScript en 1993.
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.
Por otra parte, la diferencia entre una aplicación JAVA y un applet radica en cómo se ejecutan. Para cargar una aplicación JAVA se utiliza el intérprete de JAVA (pcGRASP de Auburn University, Visual J++ de Microsoft, Forte de Sun de Visual Café). En cambio, un applet se puede cargar y ejecutar desde cualquier explorador que soporte JAVA (Netscape, Internet Explorer, Mozilla Firefox...).
ciclo de vida de un applet
Ciclo de vida de un Applet
El navegador interpreta la página HTML donde se encuentra insertado el applet. Cuando encuentra la etiqueta APPLET el navegador descarga del mismo servidor donde se encontraba la página HTML el bytecode donde la clase indicada en la etiqueta APPLET.
Se crea una instancia de la clase que controla el applet.
El applet se inicializa (ejecución del método init ())
El applet comienza a ejecutarse (ejecucion del método start ())
El applet se visualiza en pantalla (ejecucion de método paint())
Cuando se abandona la página, el applet detiene la ejecución, ejecutando el método stop.
Cuando se regresa a la página que contiene el applet, se ejecuta el método start del applet y reanuda la ejecución.
Finalmente cuando se cierra la ventana del navegador, se termina la ejecución del applet, y se liberan todos los recursos ocupados por el applet antes de salir del navegador.
Durante todo el tiempo de vida del applet, éste continuará recibiendo llamadas de métodos por parte del navegador que le irán informando de los distintos eventos que se vayan produciendo (por ejemplo: maximizar y minimizar el navegador, abandono de la página HTML, etc).
bibliografia
Obtenido de "http://es.wikipedia.org/wiki/Applet"
http://www.wikilearning.com/tutorial/tutorial_de_java-ciclo_de_vida_de_un_applet/3938-48
martes, 24 de noviembre de 2009
domingo, 22 de noviembre de 2009
m.r.u.v
CLASE MATRIZ
public class Matriz {
public int numeroFilas;
public int numeroColumnas;
public double [][]matriz;
/**
* constructor sin parametros
*/
public Matriz(){
//arreglo de filas y columnas
}
/**
* Constructor de parametros
* @param nF numero de Filas
* @param nC numero de Columnas
*/
public Matriz(int nF, int nC){
numeroFilas=nF;
numeroColumnas=nC;
matriz=new double[numeroFilas][numeroColumnas];//construyo un sitio para almacenar ceros for(int i=0;i for(int j=0; j < numeroColumnas; j++)
matriz [i][j]=0;
}
/**
* Metodo de suma de matrices
* @param B primer sumando
* @return matriz resultado de suma
*/
public Matriz suma(Matriz b){
Matriz resultado;
//probar q el numero de fila y columnas de la primera matriz sea = al numero de
//filas y columnas de la segunda
//this referencia a un objeto que aun no esta creado pero que alguien algun momento lo va a crear
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("DIMENSIONES DE LAS MATRICES INCORRECTAS");
resultado=null; return resultado;
}
/**
* Metodo de resta de matrices
* @return matriz resultado de resta
*/
public Matriz resta(Matriz b){
Matriz resultado;
if ((this.numeroFilas == b.numeroFilas)&(this.numeroFilas == b.numeroColumnas)){
resultado = new Matriz (this.numeroFilas,this.numeroColumnas);
//construyo la caja donde almaceno el resultado
for(int i = 0;i for(int j=0;j resultado.matriz[i][j] = this.matriz[i][j]-b.matriz[i][j];
return resultado;
}
else{
System.out.println(" DIMENSIONES DE LAS MATRICES INCORRECTAS");
resultado=null;
return resultado;
}
/**
* Metodo para transpuesta de una matriz
* @return
*/
//el numero de filas se cambia al numero de columnas
public Matriz Transpuesta(){
Matriz resultado;
resultado=new Matriz(this.numeroColumnas,this.numeroFilas);
for(int i=0; i < this.numeroFilas; i++)
for(int j=0; j < this.numeroColumnas; j++)
resultado.matriz[j][i]=this.matriz[i][j];
return resultado;
}
/**
* Metodo para multiplicaci�n entre matrices
* @return
*/
public Matriz Multiplicacion(Matriz b){
Matriz resultado;
if(this.numeroColumnas==b.numeroFilas){
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.numeroColumnas; k++)
resultado.matriz[i][j]+=this.matriz[i][k]*b.matriz[k][j];
}
}
return resultado;
}
else
System.out.println(" DIMENSIONES DE LAS MATRICES INCORRECTAS");
resultado=null;
return resultado;
}
}
/**
* Devuelve el objeto matriz en texto
* @return
*/
public String toString(){
String aux="\n\n";
for(int i=0; i for(int j=0; j aux+=matriz[i][j]+" ";
}
aux+="\n";
}
aux+=" "; return aux;
}
}
.............................................................................................................................................
CLASE VECTOR3D
public class Vector3D extends Matriz{
double coorX;
double coorY;
double coorZ;
public Vector3D(){//constructor de la clase
super(1,3);//llamo a la clase superior de la q estoy heredando
//es decir q llama a la clase matriz utilizando como datos
//2 parametros matriz[][]
}
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;
coorX = x;
coorY = y;
coorZ = z;
}
/**
*Primer metodo para obtener la magnitud de un vector
*/
public double magnitud(){
double resultado = 0; for(int i=0; i<3; i++){//menor a 3 por numero de coordenadas
resultado += this.matriz[0][i]*this.matriz[0][i];
}
resultado = Math.sqrt(resultado);
return resultado;
}
/**
*Segundo m�todo para obtener la magnitud de un vector
*/
public double magnitud1(){
double resultado;
resultado = Math.pow(this.coorX,2)+Math.pow(this.coorY,2)+Math.pow(this.coorZ,2);
resultado = Math.sqrt(resultado);
return resultado;
}
/**
*Obtener el unitario de un vector
*/
public Vector3D unitario(){
Vector3D unitario = new Vector3D();
for(int i=0; i<3; i++)
unitario.matriz[0][i] = this.matriz[0][i]/this.magnitud();
return unitario;
//unitario =(Vector3D)this.multiplicaEscalar(1/(this.magnitud()));
//(VECTOR3D)CASTING entre vector y matriz es valido porque son matrices
}
/**
*Producto escalar
*/
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;
}
/**
*Producto vectorial o cruz
*/
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 Vector3D productoVectorEscalar(double a){
Vector3D resultado;
resultado = new Vector3D();
for(int i = 0; i < 3; i++) resultado.matriz[0][i] = this.matriz[0][i]*a;
return resultado;
}
public static void main(String args[]){
Vector3D v1 = new Vector3D(-1,1,-1);
Vector3D v2 = new Vector3D(0,2,0);
System.out.println("\nVector 1 = "+v1);
System.out.println("\nVector 2 = "+v2);
System.out.println("\nCoordenada en X= "+v1.coorX);
System.out.println("\nSuma de Vectores: "+(v1.suma(v2)));
System.out.println("\nMagnitud del Vector1 = "+v1.magnitud());
System.out.println("\nMagnitud del Vector1 = "+v1.magnitud1());
System.out.println("\nMagnitud del Vector2 = "+v2.magnitud1());
System.out.println("\nVector Unitario = "+v1.unitario());
System.out.println("\nComprobaci�n Vector Unitario = "+v1.unitario().magnitud()); System.out.println("\nProducto Escalar entre V1 y V2 = "+v1.productoEscalar(v2)); System.out.println("\nProducto Cruz entre V1 y V2 = "+v1.productoCruz(v2));
}
}
............................................................................................................................
CLASE MRUV
public class MRUV {
Matriz posicion;//llamo a la clase matriz porq contiene las operciones q necesito Matriz velocidad;
Matriz velocidad1;
Matriz aceleracion;
Matriz resultado;
/**
* Constructor sin parametros
*/
public MRUV(){
}
public MRUV(Vector3D pos, Vector3D vel, Vector3D ace, Vector3D res){
posicion = pos;
velocidad = vel;
aceleracion = ace;
resultado = res;
}
public void calcularPosicionMRUV(Vector3D r0, Vector3D vel, Vector3D v0,double t,Vector3D ace){
posicion = r0.suma(v0.productoVectorEscalar(t).suma(ace.productoVectorEscalar(Math.pow(t,2)/2)));
}
public void calcularVelocidadMRUV(Vector3D v0,double t,Vector3D r0,Vector3D ace){
velocidad = v0.suma(ace.productoVectorEscalar(t));
}
public static void main (String args []){
MRUV e = new MRUV();
Vector3D r0 = new Vector3D(1,0,-2);
Vector3D v0 = new Vector3D(0,1,0);//EN EL EJE Y Vector3D v = new Vector3D(-2,0,1); Vector3D a = new Vector3D(3,0,0);
double t = 2;
/**
*utilizando los metodos
*/
e.calcularPosicionMRUV(r0,v,v0,t,a);
e.calcularVelocidadMRUV(v0,t,r0,a);
System.out.println("Posicion a 2 segundos: "+e.posicion);
System.out.println("\nVelocidad a t = 2s\n"+e.velocidad);
System.out.println("\nAceleración = "+a);
}
}
public class Matriz {
public int numeroFilas;
public int numeroColumnas;
public double [][]matriz;
/**
* constructor sin parametros
*/
public Matriz(){
//arreglo de filas y columnas
}
/**
* Constructor de parametros
* @param nF numero de Filas
* @param nC numero de Columnas
*/
public Matriz(int nF, int nC){
numeroFilas=nF;
numeroColumnas=nC;
matriz=new double[numeroFilas][numeroColumnas];//construyo un sitio para almacenar ceros for(int i=0;i for(int j=0; j < numeroColumnas; j++)
matriz [i][j]=0;
}
/**
* Metodo de suma de matrices
* @param B primer sumando
* @return matriz resultado de suma
*/
public Matriz suma(Matriz b){
Matriz resultado;
//probar q el numero de fila y columnas de la primera matriz sea = al numero de
//filas y columnas de la segunda
//this referencia a un objeto que aun no esta creado pero que alguien algun momento lo va a crear
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("DIMENSIONES DE LAS MATRICES INCORRECTAS");
resultado=null; return resultado;
}
/**
* Metodo de resta de matrices
* @return matriz resultado de resta
*/
public Matriz resta(Matriz b){
Matriz resultado;
if ((this.numeroFilas == b.numeroFilas)&(this.numeroFilas == b.numeroColumnas)){
resultado = new Matriz (this.numeroFilas,this.numeroColumnas);
//construyo la caja donde almaceno el resultado
for(int i = 0;i for(int j=0;j resultado.matriz[i][j] = this.matriz[i][j]-b.matriz[i][j];
return resultado;
}
else{
System.out.println(" DIMENSIONES DE LAS MATRICES INCORRECTAS");
resultado=null;
return resultado;
}
/**
* Metodo para transpuesta de una matriz
* @return
*/
//el numero de filas se cambia al numero de columnas
public Matriz Transpuesta(){
Matriz resultado;
resultado=new Matriz(this.numeroColumnas,this.numeroFilas);
for(int i=0; i < this.numeroFilas; i++)
for(int j=0; j < this.numeroColumnas; j++)
resultado.matriz[j][i]=this.matriz[i][j];
return resultado;
}
/**
* Metodo para multiplicaci�n entre matrices
* @return
*/
public Matriz Multiplicacion(Matriz b){
Matriz resultado;
if(this.numeroColumnas==b.numeroFilas){
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.numeroColumnas; k++)
resultado.matriz[i][j]+=this.matriz[i][k]*b.matriz[k][j];
}
}
return resultado;
}
else
System.out.println(" DIMENSIONES DE LAS MATRICES INCORRECTAS");
resultado=null;
return resultado;
}
}
/**
* Devuelve el objeto matriz en texto
* @return
*/
public String toString(){
String aux="\n\n";
for(int i=0; i for(int j=0; j aux+=matriz[i][j]+" ";
}
aux+="\n";
}
aux+=" "; return aux;
}
}
.............................................................................................................................................
CLASE VECTOR3D
public class Vector3D extends Matriz{
double coorX;
double coorY;
double coorZ;
public Vector3D(){//constructor de la clase
super(1,3);//llamo a la clase superior de la q estoy heredando
//es decir q llama a la clase matriz utilizando como datos
//2 parametros matriz[][]
}
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;
coorX = x;
coorY = y;
coorZ = z;
}
/**
*Primer metodo para obtener la magnitud de un vector
*/
public double magnitud(){
double resultado = 0; for(int i=0; i<3; i++){//menor a 3 por numero de coordenadas
resultado += this.matriz[0][i]*this.matriz[0][i];
}
resultado = Math.sqrt(resultado);
return resultado;
}
/**
*Segundo m�todo para obtener la magnitud de un vector
*/
public double magnitud1(){
double resultado;
resultado = Math.pow(this.coorX,2)+Math.pow(this.coorY,2)+Math.pow(this.coorZ,2);
resultado = Math.sqrt(resultado);
return resultado;
}
/**
*Obtener el unitario de un vector
*/
public Vector3D unitario(){
Vector3D unitario = new Vector3D();
for(int i=0; i<3; i++)
unitario.matriz[0][i] = this.matriz[0][i]/this.magnitud();
return unitario;
//unitario =(Vector3D)this.multiplicaEscalar(1/(this.magnitud()));
//(VECTOR3D)CASTING entre vector y matriz es valido porque son matrices
}
/**
*Producto escalar
*/
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;
}
/**
*Producto vectorial o cruz
*/
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 Vector3D productoVectorEscalar(double a){
Vector3D resultado;
resultado = new Vector3D();
for(int i = 0; i < 3; i++) resultado.matriz[0][i] = this.matriz[0][i]*a;
return resultado;
}
public static void main(String args[]){
Vector3D v1 = new Vector3D(-1,1,-1);
Vector3D v2 = new Vector3D(0,2,0);
System.out.println("\nVector 1 = "+v1);
System.out.println("\nVector 2 = "+v2);
System.out.println("\nCoordenada en X= "+v1.coorX);
System.out.println("\nSuma de Vectores: "+(v1.suma(v2)));
System.out.println("\nMagnitud del Vector1 = "+v1.magnitud());
System.out.println("\nMagnitud del Vector1 = "+v1.magnitud1());
System.out.println("\nMagnitud del Vector2 = "+v2.magnitud1());
System.out.println("\nVector Unitario = "+v1.unitario());
System.out.println("\nComprobaci�n Vector Unitario = "+v1.unitario().magnitud()); System.out.println("\nProducto Escalar entre V1 y V2 = "+v1.productoEscalar(v2)); System.out.println("\nProducto Cruz entre V1 y V2 = "+v1.productoCruz(v2));
}
}
............................................................................................................................
CLASE MRUV
public class MRUV {
Matriz posicion;//llamo a la clase matriz porq contiene las operciones q necesito Matriz velocidad;
Matriz velocidad1;
Matriz aceleracion;
Matriz resultado;
/**
* Constructor sin parametros
*/
public MRUV(){
}
public MRUV(Vector3D pos, Vector3D vel, Vector3D ace, Vector3D res){
posicion = pos;
velocidad = vel;
aceleracion = ace;
resultado = res;
}
public void calcularPosicionMRUV(Vector3D r0, Vector3D vel, Vector3D v0,double t,Vector3D ace){
posicion = r0.suma(v0.productoVectorEscalar(t).suma(ace.productoVectorEscalar(Math.pow(t,2)/2)));
}
public void calcularVelocidadMRUV(Vector3D v0,double t,Vector3D r0,Vector3D ace){
velocidad = v0.suma(ace.productoVectorEscalar(t));
}
public static void main (String args []){
MRUV e = new MRUV();
Vector3D r0 = new Vector3D(1,0,-2);
Vector3D v0 = new Vector3D(0,1,0);//EN EL EJE Y Vector3D v = new Vector3D(-2,0,1); Vector3D a = new Vector3D(3,0,0);
double t = 2;
/**
*utilizando los metodos
*/
e.calcularPosicionMRUV(r0,v,v0,t,a);
e.calcularVelocidadMRUV(v0,t,r0,a);
System.out.println("Posicion a 2 segundos: "+e.posicion);
System.out.println("\nVelocidad a t = 2s\n"+e.velocidad);
System.out.println("\nAceleración = "+a);
}
}
sábado, 14 de noviembre de 2009
vector 3d
VECTOR 3D Clase Matriz
/**
*
* @author program
*/
public class Matriz {
public int numeroFilas;
public int numeroColumnas;
public double [][]matriz;
/**
* constructor sin parametros
*/
public Matriz(){
}
/**
* Constructor de parametros
* @param nF numero de Filas
* @param nC numero de Columnas
*/
public Matriz(int nF, int nC){
numeroFilas=nF;
numeroColumnas=nC;
matriz=new double[numeroFilas][numeroColumnas];
for(int i=0;i < numeroFilas;i++)
for(int j=0; j < numeroColumnas; j++)
matriz [i][j]=0;
}
/**
* Metodo de suma de matrices
* @param B primer sumando
* @return matriz resultado de suma
*/
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 DIMENSIONES DE LAS MATRICES");
resultado=null;
return resultado;
}
/**
* Metodo de resta de matrices
* @return matriz resultado de resta
*/
public Matriz resta(Matriz b){
Matriz resultado;
if ((this.numeroFilas == b.numeroFilas)&(this.numeroFilas == 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 DIMENSIONES DE LAS MATRICES");
resultado=null;
return resultado;
}
}
* Metodo para multiplicación entre matrices
* @return
*/
public Matriz Multiplicacion(Matriz b){
Matriz resultado;
if(this.numeroColumnas==b.numeroFilas){
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.numeroColumnas; k++)
resultado.matriz[i][j]+=this.matriz[i][k]*b.matriz[k][j];
}
}
return resultado;
}
elseSystem.out.println("ERROR EN DIMENSIONES DE LAS MATRICES");resultado=null;return resultado;
}
/**
* Devuelve el objeto matriz en texto
* @return
*/
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;
}
}
***********************************************
Clase Vector3D
/*
* To change this template, choose Tools Templates
* and open the template in the editor.
*/
/**
*
* @author program
*/
public class Vector3D extends Matriz{
double coorX;
double coorY;
double coorZ;
public Vector3D(){//constructor de la clase
super(1,3);//llamo a la clase superior de la q estoy heredando
//es decir q llama a la clase matriz utilizando como datos
//2 parametros matriz[][]
}
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;
coorX = x;
coorY = y;
coorZ = z;
}
/**
*Primer metodo para obtener la magnitud de un vector
*/
public double magnitud(){
double resultado = 0;
for(int i=0; i < 3; i++){//menor a 3 por numero de coordenadas
resultado += this.matriz[0][i]*this.matriz[0][i];
}
resultado = Math.sqrt(resultado);
return resultado;
}
/**
*Segundo método para obtener la magnitud de un vector
*/
public double magnitud1(){
double resultado;
resultado = Math.pow(this.coorX,2)+Math.pow(this.coorY,2)+Math.pow(this.coorZ,2);
resultado = Math.sqrt(resultado);
return resultado;
}
/**
*Obtener el unitario de un vector
*/
public Vector3D unitario(){
Vector3D unitario = new Vector3D();
for(int i=0; i < 3; i++)
unitario.matriz[0][i] = this.matriz[0][i]/this.magnitud();
return unitario;
//unitario =(Vector3D)this.multiplicaEscalar(1/(this.magnitud()));
//(VECTOR3D)CASTING entre vector y matriz es valido porque son matrices
}
/**
*Producto escalar
*/
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;
}
/**
*Producto vectorial o cruz
*/
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(-1,1,-1);
Vector3D v2 = new Vector3D(0,2,0);
System.out.println("\nVector 1 = "+v1);System.out.println("\nVector 2 = "+v2);
System.out.println("\nCoordenada en X= "+v1.coorX);System.out.println("\nSuma de Vectores: "+(v1.suma(v2)));
System.out.println("\nMagnitud del Vector1 = "+v1.magnitud());
System.out.println("\nMagnitud del Vector1 = "+v1.magnitud1());
System.out.println("\nMagnitud del Vector2 = "+v2.magnitud1());
System.out.println("\nVector Unitario = "+v1.unitario());
System.out.println("\nComprobación Vector Unitario = "+v1.unitario().magnitud());
System.out.println("\nProducto Escalar entre V1 y V2 = "+v1.productoEscalar(v2));
System.out.println("\nProducto Cruz entre V1 y V2 = "+v1.productoCruz(v2));
}
}
/**
*
* @author program
*/
public class Matriz {
public int numeroFilas;
public int numeroColumnas;
public double [][]matriz;
/**
* constructor sin parametros
*/
public Matriz(){
}
/**
* Constructor de parametros
* @param nF numero de Filas
* @param nC numero de Columnas
*/
public Matriz(int nF, int nC){
numeroFilas=nF;
numeroColumnas=nC;
matriz=new double[numeroFilas][numeroColumnas];
for(int i=0;i < numeroFilas;i++)
for(int j=0; j < numeroColumnas; j++)
matriz [i][j]=0;
}
/**
* Metodo de suma de matrices
* @param B primer sumando
* @return matriz resultado de suma
*/
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 DIMENSIONES DE LAS MATRICES");
resultado=null;
return resultado;
}
/**
* Metodo de resta de matrices
* @return matriz resultado de resta
*/
public Matriz resta(Matriz b){
Matriz resultado;
if ((this.numeroFilas == b.numeroFilas)&(this.numeroFilas == 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 DIMENSIONES DE LAS MATRICES");
resultado=null;
return resultado;
}
}
* Metodo para multiplicación entre matrices
* @return
*/
public Matriz Multiplicacion(Matriz b){
Matriz resultado;
if(this.numeroColumnas==b.numeroFilas){
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.numeroColumnas; k++)
resultado.matriz[i][j]+=this.matriz[i][k]*b.matriz[k][j];
}
}
return resultado;
}
elseSystem.out.println("ERROR EN DIMENSIONES DE LAS MATRICES");resultado=null;return resultado;
}
/**
* Devuelve el objeto matriz en texto
* @return
*/
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;
}
}
***********************************************
Clase Vector3D
/*
* To change this template, choose Tools Templates
* and open the template in the editor.
*/
/**
*
* @author program
*/
public class Vector3D extends Matriz{
double coorX;
double coorY;
double coorZ;
public Vector3D(){//constructor de la clase
super(1,3);//llamo a la clase superior de la q estoy heredando
//es decir q llama a la clase matriz utilizando como datos
//2 parametros matriz[][]
}
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;
coorX = x;
coorY = y;
coorZ = z;
}
/**
*Primer metodo para obtener la magnitud de un vector
*/
public double magnitud(){
double resultado = 0;
for(int i=0; i < 3; i++){//menor a 3 por numero de coordenadas
resultado += this.matriz[0][i]*this.matriz[0][i];
}
resultado = Math.sqrt(resultado);
return resultado;
}
/**
*Segundo método para obtener la magnitud de un vector
*/
public double magnitud1(){
double resultado;
resultado = Math.pow(this.coorX,2)+Math.pow(this.coorY,2)+Math.pow(this.coorZ,2);
resultado = Math.sqrt(resultado);
return resultado;
}
/**
*Obtener el unitario de un vector
*/
public Vector3D unitario(){
Vector3D unitario = new Vector3D();
for(int i=0; i < 3; i++)
unitario.matriz[0][i] = this.matriz[0][i]/this.magnitud();
return unitario;
//unitario =(Vector3D)this.multiplicaEscalar(1/(this.magnitud()));
//(VECTOR3D)CASTING entre vector y matriz es valido porque son matrices
}
/**
*Producto escalar
*/
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;
}
/**
*Producto vectorial o cruz
*/
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(-1,1,-1);
Vector3D v2 = new Vector3D(0,2,0);
System.out.println("\nVector 1 = "+v1);System.out.println("\nVector 2 = "+v2);
System.out.println("\nCoordenada en X= "+v1.coorX);System.out.println("\nSuma de Vectores: "+(v1.suma(v2)));
System.out.println("\nMagnitud del Vector1 = "+v1.magnitud());
System.out.println("\nMagnitud del Vector1 = "+v1.magnitud1());
System.out.println("\nMagnitud del Vector2 = "+v2.magnitud1());
System.out.println("\nVector Unitario = "+v1.unitario());
System.out.println("\nComprobación Vector Unitario = "+v1.unitario().magnitud());
System.out.println("\nProducto Escalar entre V1 y V2 = "+v1.productoEscalar(v2));
System.out.println("\nProducto Cruz entre V1 y V2 = "+v1.productoCruz(v2));
}
}
Suscribirse a:
Comentarios (Atom)