Autoit en español
Aplicaciones con Autoit - Juan Antonio Villalpando
-- Tutorial de iniciación a Autoit --
Volver al índice del tutorial
____________________________
10.- Koda. Componente horizontal y vertical de un vector. Proyecciones.
vectores.exe
- Vamos a descomponer un vector en su proyección horizontal y vertical.
- Tenemos un Vector y el ángulo que forma con la horizontal, como muestro en la imagen.
- La componente X = vector * coseno(angulo)
- La componente Y = vector * seno(angulo)
----------------------------------------------------------------------
- También lo haremos alrevés, tenemos las dos componentes X e Y y queremos obtener el Vector y su ángulo.
[Fíjate que en el nombre de la variable angulo no le pongo acento].
- Vector = raizcuadrada(X^2 + Y^2)
- angulo = arcotangente( Y / X )
-------------------------------------------------------------------------------------
- Hay que tener en cuenta que la mayoría de los lenguajes de programación realizan las funciones trigonométricas en radianes, y nosotros introducimos grados.
- Debemos convertir de uno a otro.
- Sería así:
- g = (r * 360) / (2 * PI) = 57.29578 * r
- r = (g * 2 * PI) / 360 = 0.0174532 * g
- Pero AutoIt tiene las funciones _Radian() y _Degree() que hacen esas operaciones.
- Para que actúen estas funciones es necesario que incluyamos en el código la librería:
#include <Math.au3>
__________________________
- Ejecutamos Koda.
- Cada vez que vayas a crear un nuevo Formulario con Koda, pulsa en el icono de Form.
- La imagen la insertamos mediante Pictures(está en Adicional). Luego en su propiedad Picture ponemos la imagen.
- Los Input tienen el número a la derecha. Para eso en la pestaña Estilo de abajo, como indico en la imagen, marco ES_RIGHT
- Vamos al SciTE, creamos un nuevo archivo.
- Volvemos al Koda. Tools / Generate Form Code...
- Aquí muestro el código del Formulario generado por el Koda y los algoritmos de cálculos.
Código completo: Formulario + código
vectores.au3 |
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Math.au3>
#Region ### START Koda GUI section ### Form=D:\kio4\autoit\programas\vectores.kxf
$Form1 = GUICreate("Vectores - Juan A. Villalpando", 476, 589, 192, 132)
$Label1 = GUICtrlCreateLabel("Vector:", 24, 304, 54, 20)
$Input1 = GUICtrlCreateInput("80", 88, 304, 200, 24, BitOR($GUI_SS_DEFAULT_INPUT,$ES_RIGHT))
$Label2 = GUICtrlCreateLabel("Ángulo en grados: ", 24, 344, 116, 40)
$Input2 = GUICtrlCreateInput("30", 144, 344, 200, 24, BitOR($GUI_SS_DEFAULT_INPUT,$ES_RIGHT))
$Button1 = GUICtrlCreateButton("Calcula las componentes", 24, 384, 185, 49)
$Pic1 = GUICtrlCreatePic("D:\kio4\autoit\programas\vectores.bmp", 32, 16, 400, 249)
$Label3 = GUICtrlCreateLabel("X = ", 32, 448, 25, 28)
$Label4 = GUICtrlCreateLabel("Y = ", 32, 488, 26, 20)
$Button2 = GUICtrlCreateButton("Calcula vector y ángulo", 32, 520, 177, 49)
$Input3 = GUICtrlCreateInput("0", 72, 448, 200, 24, BitOR($GUI_SS_DEFAULT_INPUT,$ES_RIGHT))
$Input4 = GUICtrlCreateInput("0", 72, 488, 200, 24, BitOR($GUI_SS_DEFAULT_INPUT,$ES_RIGHT))
; Juan A. Villalpando
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$x = 0
$y = 0
$vector = 0
$angulo = 0
$radianes = 0
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Button1
$vector = GUICtrlRead($Input1)
$angulo = GUICtrlRead($Input2)
$radianes = _Radian($angulo)
$x = $vector * cos($radianes)
$y = $vector * sin($radianes)
GUICtrlSetData($input3,$x)
GUICtrlSetData($input4,$y)
Case $msg = $Button2
$x = GUICtrlRead($Input3)
$y = GUICtrlRead($Input4)
$vector = sqrt($x^2 + $y^2)
$radianes = atan($y/$x)
$grados = _Degree($radianes)
GUICtrlSetData($input1,$vector)
GUICtrlSetData($input2,$grados)
EndSelect
Wend
Exit
|
- Lo convertimos en autoejecutable mediante Aut2Exe, aqui está: vectores.exe
-------------------------------------------------------------------------------------
- Mejoras.
- Si quieres que salga con dos decimales:
$area = Round($area, 2)
|