VB o MATLAB escribe fotogrametría intersección hacia adelante-intersección hacia atrás, puede usar Alipay
Encuentro hacia adelante para encontrar el elemento de azimut exterior
Subcomando privado1_Click()Dim?x(4)?As?Double,?y(4)?As?Double
¿Dim?a(8,?6)?¿Como?Doble
¿Dim?Xd( 4)?¿Como?Doble,?Yd(4)?¿Como?Doble,?Zd(4)? ¿Como?Doble
Dim?n?Como?Entero,?i?Como?Entero
¿Dim?Xy(4)?Como?Doble,?Yy(4)?¿Como? ¿Doble,?x_ x(4)?¿Como?Doble,?y_y(4)?¿Como?Doble,?z_z(4)?¿Como?Doble
Dim?Zs0?Como?Doble,?Xs0? ¿Como?Doble,?Ys0?Como?Doble,?ψ?Como?Doble,?ω?Como?Doble ,?κ?Como?Doble,?f?Como?Doble,?dx(6,?1)?Como? Doble
¿Dim?L(8,?1)?As?Doble
Dim?a1?As?Doble,?a2?As?Doble,?a3?As?Doble, ?b1?dim?v?As?Variante
ψ?=?0
ω?=?0
κ?=?0
n?=?0
f?=?153.24
Xy(1)? =?Texto5:?Xy(2)? )? =?Texto9:?Xy(4)? =?Texto11
Yy(1)? =?Texto6:?Yy(2)? :?Yy(4)? =?Texto12
Xd(1)? =?Texto13:?Xd(2)? =?Texto16:?Xd(3)? )? =?Texto22
Yd(1)? =?Texto14:?Yd(2)? =?Texto17:?Texto23?
¿Zd(1)? =?Texto15:?Zd(2)? =?Texto18:?Zd(3)? =?Texto21:?Zd(4)? p>Zs0?=?2000
Xs0?=?(Xd(1)?+?Xd(2)?+?Xd(3)?+?Xd(4))?/?4
¿Ys0?=?(Yd(1)?+?Yd(2)?+?Yd(3)?+?Yd(4))?/?4
Hacer
a1?=?Cos(ψ)?*?Cos(κ)?-?Sin(ψ)?*?Sin(ω)?*?Sin(κ)
a2 ?=?-Cos(ψ)?*?Sin(κ)?-?Sin(ψ)?*?Sin(ω)?*?Cos(κ)
a3?=?-Sin( ψ)?*?Cos(ω)
b1?*?Sin(κ)
b2?*?Cos(κ)
b3?-Sin (ω)
c1?*?Cos(κ)?+?Cos(ψ)?*?*?Sin(κ)
c2?=?-Sin(ψ) ?*?Sin(κ)?+?Cos(ψ)?*?Sin(ω)?*?Cos(κ)
c3?=?Cos(ω)?*?Cos(ψ)
¿Para?i?=?1?A?4 x_x(i)?=?a1
?*?(Xd(i)?-Xs0)?+?b1?*?(Yd(i)?-?Ys0)?+?c1?*?(Zd(i)? y_y(i)? =?a2 ?*?(Xd(i)?-?Xs0)?+?b2?*?(Yd(i)?-?Ys0)?+?c2?*?(Zd(i)?-?Zs0) z_z(i )? =?a3?*?(Xd(i)?-?Xs0)?+?b3?*?(Yd(i)?-?Ys0)?+?c3?*?(Zd(i)?-? Zs0) x(i)?-x_x(i)?/?z_z(i) y(i) =?-f?*?y_y(i)?/?z_z(i) L(2?*?i?- ?1,?1)? =?xy(i)?-?x(i) L(2?*?i,?1)? =?Yy(i)?-?y(i) a(2?* ?i?-?1,?1)?(a1?*?f?+?a3?*?Xy(i))?/?z_z(i) a(2?*?i?-?1,?2 )?(b1?*?f?+?b3?*?Xy(i))?/?z_z(i) a(2?*?i?-?1,?3)?(c1?*?f? +?c3?*?Xy(i))?/?z_z(i) a(2?*?i?-?1,?4)? =?Yy(i)?*?Sin(ω)?*? ¿Sin(ω)?((Xy(i)?/?f)?*?(Xy(i)?*?Cos(κ)?-Yy(i)?*?Sin(κ))?+?f? *?Cos(κ))?*?Cos(ω) a(2?*?i?-?1,?5)?-f?*?Sin(κ)?-?(Xy(i)?/? f)?*?(Xy(i)?*?+?Yy(i)?*?Cos(κ)) a(2?*?i?-?1,?6)? (2?*?i,?1)? =?(a2?*?f?+?a3?*?Yy(i))?/?z_z(i) a(2?*?i,?2)? (b2?*?f?+?b3?*?Yy(i))?/?z_z(i) a(2?*?i,?3)?(c2?*?f?+?c3?*? ¿Yy(i))?/?z_z(i) a(2?*?i,?4)?-Xy(i)?*?Sin(ω)?*?Sin(ω)?((Yy(i) ?/?f)?*?(Xy(i)?*?Cos(κ)?-Yy(i)?*?Sin(κ))?-Yy(i)?*?Cos(ω) a(2 ?*?i,?5)?-f?*?Cos(κ)?-?Yy(i)?/?f?*?(Xy(i)?*?Sin(κ)?+?Yy(i )?*?Cos(κ)) a(2?*?i,?6)?-Xy(i)
Siguiente?i
Llamar?EquationResult(a,? L,?dx) ψ?=?ψ?+?dx(4,?1):?ω?=?ω?+?dx(5,?1):?κ?=?κ?+?dx(6 ,?1) Xs0?1) dx(3,?1) Texto25?=?Xs0:?Text26?=?Ys0:?Text27?=?Zs0 n?=?n?+?1
¿Bucle?Mientras?Abs(dx ( 4,?1)? >?0.00003?O?Abs(dx (5,?1)? >?0.00003?O?Abs(dx(6,?1)?>?0.00003? ¿O?Abs(dx(1,?1))? >?0.001?O?Abs(dx(2,?1))? >?0.001?O?Abs(3,?1))?
MsgBox ?"El número de iteraciones es "? &?n?&?" veces"
End?Sub
Cita hacia adelante para encontrar la coordenada
es del punto a determinar