You are on page 1of 14

1) PROBLEMA DE LOS CUATRO PUNTOS - HANSEN

El presente programa consiste en resolver un problema topogrfico denominado, Problema


de los cuatro puntos, en el cual aplicamos variables tales como ngulos, distancias,
azimuts y coordenadas, datos que nos permiten desarrollar y encontrar una solucin al
problema planteado, el cual no presenta tres casos diferentes para su solucin, no
diferendo casi nada uno del otro. Siguiendo una orden de operaciones algebraicas.

Resumen de la aplicacin.

Problema de Hansen es un problema en la topografa plana, llamada as por el astrnomo


Peter Andreas Hansen (1795-1874), que trabaj en el levantamiento geodsico de
Dinamarca. Hay dos puntos conocidos A y B, y dos puntos desconocidos P1 y P2. De P1 y
P2 un observador mide los ngulos formados por las lneas de visin a cada uno de los
otros tres puntos. El problema es encontrar las posiciones de P1 y P2. Vase la figura; los
ngulos medidos son (1, 1, 2, 2).

La presente aplicacin de Visual Basic (Visual Net 2010), para resolver el "Problema de los
cuatro puntos" (Tema referente de la materia de Topografa II CIV 214), nos permite
obtener las soluciones sin necesidad del largo procedimiento, que implica hacer un montn
de operaciones y aplicacin de diferentes frmulas trigonomtricas, para llegar al resultado
correcto, as ahorrndonos tiempo para el desarrollo de otros problemas concernientes a la
materia de Topografa.
Adems la aplicacin incluye un entorno grfico en el cual podemos apreciar con claridad la
situacin del problema y la posicin de las coordenadas halladas en los ejes cartesianos,
los cuales nos brindan una referencia de los puntos cardinales, adems gracias al grfico
de la solucin, podemos ver claramente al caso del problema que presenta.
Teniendo como principales datos las dos coordenadas A y B, determinar las coordenadas P1 y P2 ,
desde los cuales se miden los ngulos , , , .
1) Anlisis y definicin de variables

(a) (b) (c)

a) Clculo de la distancia AB
= 2 + 2

b) Clculo de azimuts

= tan1

1 = +

1. ABP1 + + 1 = 180
+ = 180 1 (1)
Para a:
+ = 180 ( + ) (1a)

Para b:
+ = 180 ( ) (1b)

Para c:
1 + + = 360 ; 1 = 360 ( + )
ngulos internos (360 ) + (360 ) + 1 = 180
+ = 900 ( + ) (1c)

2. AP2 P1
1 2 1
= => sin[180 ( + )] = sin( + )
sin[180 ( + )] sin
3. AP1 BP2
1 2 1
= => sin[180 ( + )] = sin( + )
sin[180 ( + )] sin
4. Igualando 2 y 3

( + ) ( + ) 1 sin ( + )
1 = 1 =
sin sin 1 sin ( + )

5. ABP1
1 1 1 sin
= =
sin sin 1 sin
6. Igualando 4 y 5, clculo del ngulo auxiliar

1 sin sin ( + )
= = = tan
1 sin sin ( + )
7. De la igualdad (6) tomaremos

sin sin 1
= tan =
sin sin tan
Por proporcionalidad de tringulos
sin + sin 1 + tan tan 0.5( + )
= =
sin sin 1 tan tan 0.5( + )
Usando un artificio, multiplicaremos ciertas cantidades por 1 = tan 45
Por trigonometra
tan 0.5( + ) tan 45 + tan
= = tan(45 + )
tan 0.5( + ) 1 tan 45 tan
Utilizando la identidad
tan A + tan B
= tan(A + B)
1 tan A tan B

tan 0.5( + ) tan 0.5( + )


tan(45 + ) = tan 0.5( ) =
tan 0.5( + ) tan(45 + )
8. Solucin del sistema obtenido por las relaciones (1) y (7)
( + ) =
( ) =
9. Clculo de los lados 1 y 1
1 sin
= 1 =
sin sin 1 sin 1
1 sin
= 1 =
sin sin 1 sin 1
10. Control de
1
tan =
1
11. Clculo y control del lado 1 2
( + )
1 2 = 1

( + )
1 2 = 1
sin
12. Clculo de las coordenadas
1 = + 1 cos 1
1 = + 1 sin 1
2 = 1 + 1 2 cos 12
1 = 1 + 1 2 sin 12

2) Diagrama de flujo
3) Aplicacin Visual Basic Net 2010
- Diseo de interface
-

- Codificacin VB
Imports System.Math
Imports System.Drawing
Imports System.Drawing.Drawing2D

Public Class Form1


'Coordenadas conocidas
Dim Ea, Eb, Na, Nb As Single
'Grados, minutos y segundos dados para , , ,
Dim g, m, s As Single
Dim g1, m1, s1 As Single
Dim g2, m2, s2 As Single
Dim g3, m3, s3 As Single
'ngulos medidos: , , ,
Dim , , , , c1, d1, ayb As Single
'ngulos a calcular
Dim t, u, v, u1, v1, t1 As Single
'Azimuts a calcular
Dim Azab, Azap1, Azp1p2 As Single
'Distancias a calcular
Dim AB As Single
'Clculo de los ngulos y
Dim a1, b1 As Single
'Clculo de los lados AP1 y BP1
Dim AP1, BP1, AP2, BP2, P1P2 As Single
'Para el clculo de las coordenadas
Dim Np1, Ep1, Np2, Ep2 As Single
'Variables para la grfica
Dim cenX, cenY As Single
Dim escala As Single

Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles RadioButton1.CheckedChanged
Ea = Val(TextBox2.Text)
Eb = Val(TextBox4.Text)
Na = Val(TextBox1.Text)
Nb = Val(TextBox3.Text)
g = Val(TextBox5.Text)
m = Val(TextBox6.Text)
s = Val(TextBox7.Text)
g1 = Val(TextBox8.Text)
m1 = Val(TextBox9.Text)
s1 = Val(TextBox10.Text)
g2 = Val(TextBox11.Text)
m2 = Val(TextBox12.Text)
s2 = Val(TextBox13.Text)
g3 = Val(TextBox14.Text)
m3 = Val(TextBox15.Text)
s3 = Val(TextBox16.Text)

= ((((s / 60) + m) / 60) + g)


= ((((s1 / 60) + m1) / 60) + g1)
= ((((s2 / 60) + m2) / 60) + g2)
= ((((s3 / 60) + m3) / 60) + g3)

'Comprobar validez de los ngulos


If < 0 Or > 180 Then
MsgBox("El ngulo alpha debe estar entre 0 y 180")
Exit Sub
End If
If < 0 Or > 180 Then
MsgBox("El ngulo beta debe estar entre 0 y 180")
Exit Sub
End If
If < 0 Or > 180 Then
MsgBox("El ngulo gamma debe estar entre 0 y 180")
Exit Sub
End If
If < 0 Or > 180 Then
MsgBox("El ngulo delta debe estar entre 0 y 180")
Exit Sub
End If

'1 Clculo de rumbos y azimuts


Azab = (Abs(Atan((Eb - Ea) / (Nb - Na)))) * (180 / PI)
'2 Clculo de la distancia AB
AB = Abs((Eb - Ea) / (Sin(Azab * (180 / PI))))
AB = Sqrt(((Nb - Na) ^ 2) + ((Eb - Ea) ^ 2))
'3 Clculo de los ngulos y
u = 180 - ( + )
u1 = u / 2
c1 = +
d1 = +
'4
t = Atan(((Sin( * (PI / 180))) * Sin(c1 * (PI / 180))) / (Sin( * (PI / 180)) * Sin(d1
* (PI / 180)))) * (180 / PI)
t1 = 45 + t
v = (Atan(Tan(u1 * (PI / 180)) / (Tan(t1 * (PI / 180))))) * (180 / PI) * 2
'5
a1 = (u + v) / 2 'clculo del ngulo
b1 = u - a1 'clculo del ngulo
'7 Clculo de ls lados AP1 y BP1
ayb = +
AP1 = (AB * (Sin(b1 * (PI / 180))) / (Sin(ayb * (PI / 180))))
BP1 = (AB * (Sin(a1 * (PI / 180))) / (Sin(ayb * (PI / 180))))
'8 Control de P1 y P2
P1P2 = (AP1 * Sin(d1 * (PI / 180)) / Sin( * (PI / 180)))
P1P2 = (BP1 * Sin(c1 * (PI / 180)) / Sin( * (PI / 180)))
'9 Control de
t = (Atan(AP1 / BP1)) * (180 / PI)
'10 Clculo de azimuts
Azap1 = Abs((Azab + a1))
Azp1p2 = Abs((Azap1 + 180 + ))
'Clculo de coordenadas
Np1 = Na + AP1 * Cos(Azap1 * (PI / 180))
Ep1 = Ea + AP1 * Sin(Azap1 * (PI / 180))
Np2 = Np1 + P1P2 * Cos(Azp1p2 * (PI / 180))
Ep2 = Ep1 + P1P2 * Sin(Azp1p2 * (PI / 180))

TextBox17.Text = Str(Np1)
TextBox18.Text = Str(Ep1)
TextBox19.Text = Str(Np2)
TextBox20.Text = Str(Ep2)
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button4.Click
TextBox1.Text = "1723.51"
TextBox2.Text = "-1900.55"
TextBox3.Text = "2667.47"
TextBox4.Text = "2419.40"
TextBox5.Text = "47"
TextBox6.Text = "47"
TextBox7.Text = "50"
TextBox8.Text = "42"
TextBox9.Text = "12"
TextBox10.Text = "30"
TextBox11.Text = "73"
TextBox12.Text = "0"
TextBox13.Text = "40"
TextBox14.Text = "98"
TextBox15.Text = "32"
TextBox16.Text = "20"
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
escala = 0.05
cenX = 250
cenY = 200
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioButton2.CheckedChanged
Ea = Val(TextBox2.Text)
Eb = Val(TextBox4.Text)
Na = Val(TextBox1.Text)
Nb = Val(TextBox3.Text)
g = Val(TextBox5.Text)
m = Val(TextBox6.Text)
s = Val(TextBox7.Text)
g1 = Val(TextBox8.Text)
m1 = Val(TextBox9.Text)
s1 = Val(TextBox10.Text)
g2 = Val(TextBox11.Text)
m2 = Val(TextBox12.Text)
s2 = Val(TextBox13.Text)
g3 = Val(TextBox14.Text)
m3 = Val(TextBox15.Text)
s3 = Val(TextBox16.Text)

= ((((s / 60) + m) / 60) + g)


= ((((s1 / 60) + m1) / 60) + g1)
= ((((s2 / 60) + m2) / 60) + g2)
= ((((s3 / 60) + m3) / 60) + g3)

'Comprobar validez de los ngulos


If < 0 Or > 180 Then
MsgBox("El ngulo alpha debe estar entre 0 y 180")
Exit Sub
End If
If < 0 Or > 180 Then
MsgBox("El ngulo beta debe estar entre 0 y 180")
Exit Sub
End If
If < 0 Or > 180 Then
MsgBox("El ngulo gamma debe estar entre 0 y 180")
Exit Sub
End If
If < 0 Or > 180 Then
MsgBox("El ngulo delta debe estar entre 0 y 180")
Exit Sub
End If

'1 Clculo de rumbos y azimuts


Azab = (Abs(Atan((Eb - Ea) / (Nb - Na)))) * (180 / PI)
'2 Clculo de la distancia AB
AB = Abs((Eb - Ea) / (Sin(Azab * (180 / PI))))
AB = Sqrt(((Nb - Na) ^ 2) + ((Eb - Ea) ^ 2))
'3 Clculo de los ngulos y
u = 180 - ( - )
u1 = u / 2
c1 = +
d1 = +
'4
t = Atan(((Sin( * (PI / 180))) * Sin(c1 * (PI / 180))) / (Sin( * (PI / 180)) * Sin(d1
* (PI / 180)))) * (180 / PI)
t1 = 45 + t
v = (Atan(Tan(u1 * (PI / 180)) / (Tan(t1 * (PI / 180))))) * (180 / PI) * 2
'5
a1 = (u + v) / 2 'calculo del angulo
b1 = u - a1 'calculo del angulo
'7 Clculo de ls lados AP1 y BP1
ayb = +
AP1 = (AB * (Sin(b1 * (PI / 180))) / (Sin(ayb * (PI / 180))))
BP1 = (AB * (Sin(a1 * (PI / 180))) / (Sin(ayb * (PI / 180))))
'8 Control de P1 y P2
P1P2 = (AP1 * Sin(d1 * (PI / 180)) / Sin( * (PI / 180)))
P1P2 = (BP1 * Sin(c1 * (PI / 180)) / Sin( * (PI / 180)))
'9 Control de
t = (Atan(AP1 / BP1)) * (180 / PI)
'10 Clculo de azimuts
Azap1 = Abs((Azab + a1))
Azp1p2 = Abs((Azap1 + - 180))
'Clculo de coordenadas
Np1 = Na + AP1 * Cos(Azap1 * (PI / 180))
Ep1 = Ea + AP1 * Sin(Azap1 * (PI / 180))
Np2 = Np1 + P1P2 * Cos(Azp1p2 * (PI / 180))
Ep2 = Ep1 + P1P2 * Sin(Azp1p2 * (PI / 180))

TextBox17.Text = Str(Np1)
TextBox18.Text = Str(Ep1)
TextBox19.Text = Str(Np2)
TextBox20.Text = Str(Ep2)
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button5.Click
TextBox1.Text = "0"
TextBox2.Text = "0"
TextBox3.Text = "300"
TextBox4.Text = "400"
TextBox5.Text = "94"
TextBox6.Text = "10"
TextBox7.Text = "0"
TextBox8.Text = "55"
TextBox9.Text = "10"
TextBox10.Text = "0"
TextBox11.Text = "58"
TextBox12.Text = "30"
TextBox13.Text = "0"
TextBox14.Text = "98"
TextBox15.Text = "40"
TextBox16.Text = "0"
End Sub

Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles RadioButton3.CheckedChanged
Ea = Val(TextBox2.Text)
Eb = Val(TextBox4.Text)
Na = Val(TextBox1.Text)
Nb = Val(TextBox3.Text)
g = Val(TextBox5.Text)
m = Val(TextBox6.Text)
s = Val(TextBox7.Text)
g1 = Val(TextBox8.Text)
m1 = Val(TextBox9.Text)
s1 = Val(TextBox10.Text)
g2 = Val(TextBox11.Text)
m2 = Val(TextBox12.Text)
s2 = Val(TextBox13.Text)
g3 = Val(TextBox14.Text)
m3 = Val(TextBox15.Text)
s3 = Val(TextBox16.Text)

= ((((s / 60) + m) / 60) + g)


= ((((s1 / 60) + m1) / 60) + g1)
= ((((s2 / 60) + m2) / 60) + g2)
= ((((s3 / 60) + m3) / 60) + g3)
'Comprobar validez de los ngulos
If < 0 Or > 180 Then
MsgBox("El ngulo alpha debe estar entre 0 y 180")
Exit Sub
End If
If < 0 Or > 180 Then
MsgBox("El ngulo beta debe estar entre 0 y 180")
Exit Sub
End If
If < 0 Or > 180 Then
MsgBox("El ngulo gamma debe estar entre 0 y 180")
Exit Sub
End If
If < 0 Or > 180 Then
MsgBox("El ngulo delta debe estar entre 0 y 180")
Exit Sub
End If

'1 Clculo de rumbos y azimuts


Azab = (Abs(Atan((Eb - Ea) / (Nb - Na)))) * (180 / PI)
'2 Clculo de la distancia AB
AB = Abs((Eb - Ea) / (Sin(Azab * (180 / PI))))
AB = Sqrt(((Nb - Na) ^ 2) + ((Eb - Ea) ^ 2))
'3 Clculo de los ngulos y
u = 900 - ( + )
u1 = u / 2
c1 = +
d1 = +
'4
t = Atan(((Sin( * (PI / 180))) * Sin(c1 * (PI / 180))) / (Sin( * (PI / 180)) * Sin(d1
* (PI / 180)))) * (180 / PI)
t1 = 45 + t
v = (Atan(Tan(u1 * (PI / 180)) / (Tan(t1 * (PI / 180))))) * (180 / PI) * 2
'5
a1 = (u + v) / 2 'calculo del angulo
b1 = u - a1 'calculo del angulo
'7 Clculo de ls lados AP1 y BP1
ayb = +
AP1 = (AB * (Sin(b1 * (PI / 180))) / (Sin(ayb * (PI / 180))))
BP1 = (AB * (Sin(a1 * (PI / 180))) / (Sin(ayb * (PI / 180))))
'8 Control de P1 y P2
P1P2 = (AP1 * Sin(d1 * (PI / 180)) / Sin( * (PI / 180)))
P1P2 = (BP1 * Sin(c1 * (PI / 180)) / Sin( * (PI / 180)))
'9 Control de
t = (Atan(AP1 / BP1)) * (180 / PI)
'10 Clculo de azimuts
Azap1 = Abs((Azab - a1 + 360))
Azp1p2 = Abs((Azap1 + + 180))
'Clculo de coordenadas
Np1 = Na + AP1 * Cos(Azap1 * (PI / 180))
Ep1 = Ea + AP1 * Sin(Azap1 * (PI / 180))
Np2 = Np1 + P1P2 * Cos(Azp1p2 * (PI / 180))
Ep2 = Ep1 + P1P2 * Sin(Azp1p2 * (PI / 180))

TextBox17.Text = Str(Np1)
TextBox18.Text = Str(Ep1)
TextBox19.Text = Str(Np2)
TextBox20.Text = Str(Ep2)
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button6.Click
TextBox1.Text = "20000"
TextBox2.Text = "30000"
TextBox3.Text = "28500"
TextBox4.Text = "31230"
TextBox5.Text = "138"
TextBox6.Text = "10"
TextBox7.Text = "15"
TextBox8.Text = "125"
TextBox9.Text = "10"
TextBox10.Text = "20"
TextBox11.Text = "19"
TextBox12.Text = "10"
TextBox13.Text = "15"
TextBox14.Text = "25"
TextBox15.Text = "35"
TextBox16.Text = "40"
End Sub
Sub graficar()
Dim dibu As Graphics = PictureBox1.CreateGraphics()
Dim Ea_d, Na_d, Eb_d, Nb_d, Ep1_d, Np1_d, Ep2_d, Np2_d As Single

dibu.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
dibu.Clear(Color.White)

'Flechas
Dim flecha As New Pen(Brushes.DarkRed, 1)
Dim mycap As CustomLineCap = New AdjustableArrowCap(4, 4)
flecha.CustomEndCap = mycap
flecha.CustomStartCap = mycap

'lineas de eje
dibu.DrawLine(flecha, 0, cenY, 500, cenY)
dibu.DrawLine(flecha, cenX, 0, cenX, 400)

'Nombres de ejes
dibu.DrawString("N", New Font("Arial", 10), Brushes.Black, cenX + 5, 5)
dibu.DrawString("E", New Font("Arial", 10), Brushes.Black, 485, cenY + 5)
dibu.DrawString("O", New Font("Arial", 10), Brushes.Black, 5, cenY + 5)
dibu.DrawString("S", New Font("Arial", 10), Brushes.Black, cenX + 5, 385)

'Calcular puntos
Ea_d = cenX + escala * Ea
Na_d = cenY - escala * Na
Eb_d = cenX + escala * Eb
Nb_d = cenY - escala * Nb

Ep1_d = cenX + escala * Ep1


Np1_d = cenY - escala * Np1
Ep2_d = cenX + escala * Ep2
Np2_d = cenY - escala * Np2

'Graficar los puntos


dibu.DrawEllipse(Pens.Blue, Ea_d - 2, Na_d - 2, 4, 4)
dibu.DrawString("A", New Font("verdana", 8), Brushes.DarkBlue, Ea_d + 2, Na_d + 2)
dibu.DrawEllipse(Pens.Blue, Eb_d - 2, Nb_d - 2, 4, 4)
dibu.DrawString("B", New Font("verdana", 8), Brushes.DarkBlue, Eb_d + 2, Nb_d + 2)
dibu.DrawEllipse(Pens.Blue, Ep1_d - 2, Np1_d - 2, 4, 4)
dibu.DrawString("P1", New Font("verdana", 8), Brushes.DarkBlue, Ep1_d + 2, Np1_d + 2)
dibu.DrawEllipse(Pens.Blue, Ep2_d - 2, Np2_d - 2, 4, 4)
dibu.DrawString("P2", New Font("verdana", 8), Brushes.DarkBlue, Ep2_d + 2, Np2_d + 2)

'Grficar las lineas


Dim lapiz1 As New Pen(Brushes.DarkGray, 1)
lapiz1.DashStyle = Drawing2D.DashStyle.Dash

dibu.DrawLine(lapiz1, Ea_d, Na_d, Ep2_d, Np2_d)


dibu.DrawLine(lapiz1, Ep2_d, Np2_d, Eb_d, Nb_d)
dibu.DrawLine(lapiz1, Ep1_d, Np1_d, Eb_d, Nb_d)
dibu.DrawLine(lapiz1, Ep1_d, Np1_d, Ea_d, Na_d)

dibu.DrawLine(New Pen(Brushes.DarkCyan, 1.5), Ea_d, Na_d, Eb_d, Nb_d)


dibu.DrawLine(New Pen(Brushes.DarkCyan, 1.5), Ep1_d, Np1_d, Ep2_d, Np2_d)
dibu.Dispose()
End Sub

Private Sub RadioButton6_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles RadioButton6.CheckedChanged
graficar()
End Sub

Private Sub btnAlejar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles btnAlejar.Click
If escala > 0 Then
escala = escala - 0.01
End If
graficar()
End Sub

Private Sub btnAcercar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles btnAcercar.Click
escala = escala + 0.01
graficar()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button2.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""
TextBox12.Text = ""
TextBox13.Text = ""
TextBox14.Text = ""
TextBox15.Text = ""
TextBox16.Text = ""
TextBox17.Text = ""
TextBox18.Text = ""
TextBox19.Text = ""
TextBox20.Text = ""
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button1.Click
Me.Close()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button3.Click
cenY = cenY + 10
graficar()
End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button7.Click
cenY = cenY - 10
graficar()
End Sub

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button8.Click
cenX = cenX - 10
graficar()
End Sub

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button9.Click
cenX = cenX + 10
graficar()
End Sub
End Class

- Prueba de control

- Manual de uso
Gua del usuario para el manejo de la Aplicacin de VB, para la solucin del "Problema de los
cuatro puntos"
o En relacin al solucin analtica
Asignacin de valores.- En cuanto a los datos de
entrada, especficamente hablando de las
coordenadas dadas, estas pueden tener un valor
negativo como positivo, ya depender del usuario si
introduce datos de entrada que difieran mucho uno
del otro en cuanto a su magnitud, el programa
procesar los datos sin ningn problema, pero en
cuanto a la grfica, puede que su ubicacin no se note, ya que esta est ligada a su factor escala.
Los ngulos no pueden ser negativos, ni mayores a 180 . Cuya restriccin puede observarse en la
siguiente grfica:

En cuanto a las soluciones, en la pantalla podemos observar que hay tres botones diferentes, que
representan cada uno de los casos del problema de Hansen, los cuales al momento de ya contar
los datos de entrada, el usuario usar el botn adecuado respecto al caso que presenta su
problema, de lo contario el programa dar la solucin con el procedimiento de otros dos casos que
no correspondan.
En caso de que el usuario no pueda identificar a que caso corresponde su problema, presentamos
en el siguiente recuadro, que parmetros utiliza cada caso:

Caso (a) Caso (b) Caso (c)


40 < < 50 40 < < 50
40 < < 50
70 < < 100
70 < < 100
o Funciones bsicas de la solucin analtica
Entre las funciones bsicas del programa encontramos los ejemplos, los cuales son datos
ya establecidos por la aplicacin, los cuales sirven de parmetro sobre qu datos
introducir.
Luego tenemos los botones de borrar y cerra, el primero limpia los datos introducidos, para
poder introducir otros datos sin la necesidad de cerrar el programa, el segundo cierra la
ejecucin del programa.

En relacin a la grfica

o Funciones bsicas

You might also like