OBJECTIVO
Rotina genérica para cálculo do ângulo e distância, entre dois pontos dados. As coordenadas dos pontos são atribuídas no programa principal, às variáveis comuns #100 a #103.
O programa devolve na variável global #560 o valor absoluto do ângulo, independentemente dos quadrantes onde se encontram os pontos.
A distância é devolvida na variável global #561 (c – hipotenusa).
Macro chamada no programa para caixas múltiplas para records (“rasgadas”).
Código NC não comentado
O1002(Cal_angulo_dist)
#1=#100
#2=#101
#3=#102
#4=#103
#5=#4-#2
#6=#3-#1
#7=SQR[#5*#5+#6*#6]
#8=#5/#7(sin)
#9=#6/#7(cos)
IF[#9EQ1]GOTO200
IF[#9EQ-1]GOTO210
IF[#8EQ1]GOTO300
IF[#8EQ-1]GOTO310
#10=ATN[#8/#9](angulo)
IF[#10GT0]GOTO120
(Q2_Q4)
IF[#8GT0]GOTO110
#560=#10(Q4)
GOTO400
N110
#560=180+#10(Q2)
GOTO400
N120(Q1_Q3)
IF[#8GT0]GOTO130
#560=180+#10(Q3)
GOTO400
N130(Q1)
#560=#10
GOTO400
N200(horizontal)
#560=0
GOTO400
N210
#560=180
GOTO400
N300(vertical)
#560=90
GOTO400
N310
#560=-90
N400
#561=#7(c)
M99
%