El post que buscas se encuentra eliminado, pero este también te puede interesar

Convertidor de Vectores en Java (NetBeans)

Anuncios

Bienvenidos a mi post
El día de hoy les voy a mostrar como programar un convertidor de vectores en java (NetBeans IDE 7.0.1)

INTERFAZ
1- En la página de inicio de NetBeans nos vamos a File --> NewProject --> Java Deskopt Application
2- Luego de esto, hacemos la interfaz gráfica del convertidor (cajas de texto, botones, etcétera)...ver video


link: http://www.youtube.com/watch?v=CZDhbPUWPvM&feature=youtu.be


3- Teniendo todos los botones es recomendable que les pongan un nombre que puedan reconocer a la hora de programar, ese nombre es el que está en la ventanita de code (Variable Name) cuando seleccionan uno de los componentes.
4- Antes de entrar en la parte de programación, asegúrese que tenga etiquetas (labels) que indiquen qué es cada parte de la interfaz, además de jtextfields para que el usuario ingrese los datos, y botones (OK) para que ejecuten las acciones de calcular.

CODIGO

DE COMPONENTES A VECTOR



Primero debemos considerar los pasos que el programa debe seguir para completar la tarea; se le está pidiendo que dando un determinado valor en un jtextfield sea capaz de calcular cierto valor, por lo que se tienen que hacer lo siguiente:



2) Como el campo de texto (jtextfield) interpreta lo escrito como un texto (string), debemos transformar lo que el usuario digite por un valor numérico (int, float, double). Para ello hacemos lo siguiente:

String Cx= jTextField1.getText();
double x= new Double(Cx);

Donde Cx es el nombre de la nueva string que defines y jTextField1.getText() significa que lea lo que el usuario puso en el jTextField1, es decir, el string Cx (que tu mismo definistes) es igual a lo que el usuario haya escrito en el jTextField1.

Double x es el nombre de un nuevo valor numérico que tu creas, y le asignas el valor de la String Cx, a partir de aquí tomamos lo que el usuario ingresó como double x.

Este paso lo hacemos 2 veces, porque nuestro programa convertirá componentes "x" y "y" en un vector, y magnitud y ángulo en componentes.


3) Cuando ya hemos echo la conversión de string a double, trabajamos con el valor double para hacer los cálculos matemáticos que implica el programa, como vamos a hacer el programa para que convierta de componentes a vector-ángulo y de vector-ángulo a componentes, podemos usar estos códigos:


Matemáticas

Magnitud:

La magnitud de un vector es igual a la raíz cuadrada de x^2 + y^2

La función para sacar raíz cuadrada es Math.sqrt(x);

La función para elevar al cuadrado es Math.pow(x,2)----> x=la base, 2=exponente

Entonces, creamos un valor double magnitud que almacene el valor de (x^2+y^2)^0.5, es decir: Math.sqrt(Math.pow(x,2) + Math.pow(y,2));

Además, creamos un double magnitud= magnitud*1; para no perder datos en el camino.

El DecimalFormat es una función que nos permite restringir el número de decimales del resultado, se expresa así:

DecimalFormat decfor= new DecimalFormat("0.000";
String modulo2= decfor.format(magnitud1);

Como ven, creamos un nuevo String modulo 2, el cual es un valor textual que almacena a magnitud1 con los decimales que nosotros definimos en DecimalFormat (0.000).

Ahora lo unico que queda es imprimir modulo2 en el jTextField, lo cual hacemos así:

jTextField3.setText(modulo2);


Ángulo:

El ángulo de un vector es igual a la tangente inversa de y/x

Para el cálculo del ángulo debemos tomar en cuenta que si x= 0, theta (y/x) se indefine, por lo que debemos definir que pasa si x=0 y si x!=0

Si x!=0
{
La tangente inversa en java es Math.atan(y/x);

Entonces, primeramente definimos un valor double theta que sea igual a y/x, por comodidad.

Luego, definimos un valor double angulo que almacene la tangente inversa de theta, es decir: double angulo= Math.atan(theta);

El resultado de double angulo está en radianes, pero en nuestro caso lo queremos en grados, por lo que hacemos la conversión y definimos un nuevo double que alberge el nuevo valor en grados:

double angulo1= angulo* (180/Math.PI);

y le aplicamos el formato de decimales: String angulo2= decfor.format(angulo1);

Ya calculamos el valor del ángulo y lo convertimos a una valor string en el paso anterior, solo falta imprimirlo en el jTextField correcto: jTextField4.setText(angulo2+"°";
}

Si x=0

{ Lo mejor que podemos decir es indicar que en la jTextField del ángulo aparezca un cero, por lo que escribimos : jTextField4.setText("0.000"+"°";
}




link: http://www.youtube.com/watch?v=QUJc5cicfVU&feature=youtu.be


DE VECTOR A COMPONENTE

Definimos una interfaz similar a la anterior

Lo que cambia es la acción que realizará el botón y obviamente el código.

Este código iría en el actionperformed de un nuevo botón

Lo primero es hacer la conversión de strings a doubles, para lo cual definimos nuevas variables. En este ejemplo, declaré una nueva variable para la magnitud String M y la almacené en un double m.... al igual que una String A para el ángulo y la almacené en una double a.

String M= jTextField5.getText();
double m= new Double(M);
String A= jTextField6.getText();
double a= new Double(A);

Hay un pequeño detalle aquí y es que las funciones de NetBeans trabajan valores en radianes por default, por lo que debemos convertirlas a grados, es por esto que definimos un valor double f que sea igual a el valor del ángulo ingresado por pi/180 (conversión de radianes a grados), con esto nos garantizamos que el valor del ángulo esté en grados.

double f= a * Math.PI/180;

Ahora es hora de calcular las componentes del vector, la componente en X se calcula multiplicando la magnitud del vector por el coseno del ángulo y en Y se calcula multiplicando la magnitud del vector por el seno del ángulo.

La función para el coseno es Math.cos(x);

double ax= m * Math.cos(f);
double xa= ax ;

A la componente en X también le aplicamos formato

DecimalFormat decfor= new DecimalFormat("0.000";
String ax1= decfor.format(xa); -------------> al escribir esto estamos convirtiendo un valor double en uno string y dándole formato.

Ahora solo queda imprimir la componente en X:

jTextField7.setText(ax1);


La función para el seno es Math.sin(x);

double ay= m * Math.sin((a*Math.PI/180)); --------> cálculo componente
double ya= ay * 1; ------------> para no perder datos
String ay1= decfor.format(ya); ---------------> formato y conversión
jTextField8.setText(ay1); -----------> Impresión


No creo que haga falta hacer video de esta parte, se siguen los mismos pasos que cuando programamos la parte anterior. Si necesitan me dicen.

Saludos, gracias

Anuncios

2 comentarios - Convertidor de Vectores en Java (NetBeans)

@VicenzoMoretti
Como el video es de tu autoría te dejo +5
@Ricardo0399
Ahorita subo un segundo video
@dafon81
papa se que es antiguo el tema pero carajo hace el programita explicame