Dados dos puntos A
y B
, encuentre el ángulo de línea AO
a línea BO
sobre el punto O
donde O
está el origen ( (0,0)
). Además, el ángulo puede ser positivo o negativo dependiendo de las posiciones de los puntos (ver ejemplos). La entrada será puntos A
y B
, y se puede dar en cualquier forma conveniente. La salida será el ángulo en grados (pero es positivo si AO
se gira en sentido antihorario sobre el origen a obtener BO
y negativo si se gira en sentido horario). Si el ángulo es de 180 grados, puede devolver una salida negativa o positiva. Del mismo modo, el ángulo puede ser la versión positiva o negativa del mismo ángulo ( 90 deg
es igual a -270 deg
). Ejemplos:
Entrada:
A(5,5) B(5,-5)
Salida:-90
(AO
se rota-90
grados para obtenerBO
).Entrada:
A(5,-5) B(5,5)
Salida:90
(AO
se rota90
grados para obtenerBO
).
Este es el código de golf , por lo que gana el código más corto en bytes.
fuente
(0,0)
?AO
yBO
generalmente se llamaría ánguloAOB
.Respuestas:
Pyth, 11 bytes
Demostración
La entrada se da en el formato:
Si se desea que A venga primero, esto se puede cambiar por 1 byte.
Explicación:
fuente
TI-BASIC, 13 bytes
Para calculadoras de la serie TI-83 + / 84 +.
Para usar este programa, ingrese a la lista a
{x1,x2}
través de la variable Ans y{y1,y2}
en el indicador.fuente
ΔList(
, son un byte cada uno. Esto incluyeR►Pθ(
.CJam, 14 bytes
Este es un programa completo que lee la entrada
[[Ax Ay] [Bx By]]
desde STDIN.Pruébelo en línea en el intérprete de CJam .
Cómo funciona
fuente
Minkolang 0.9 , 112 bytes
Yo realmente quiero para implementar funciones trigonométricas como muebles empotrados ahora ... pero esto era divertido! (Advertencia: esto genera la diferencia de ángulo positiva, no la diferencia de ángulo con signo. Dadas mis limitaciones, creo que eso está justificado).
Pruébalo aquí.
Explicación
Publicaré una explicación más completa si alguien lo quiere, pero lo esencial es:
fuente
:D
¿Fue usted el desafío de Hello World en el que notó los comentarios? modo mientras que en el otro.)Mathematica, 22 bytes
Ejemplo:
fuente
{{0,1},{1,0}}
Javascript, 66 bytes
manifestación
fuente
let f=
, y todavía se considera válido como una función anónima.Julia,
1825 bytesEsto supone que "cualquier forma conveniente" ya permite
A
yB
se dará como números complejos. Entonces, la aritmética de números complejos hace todo el trabajo pesado.Editar: fragmento convertido para funcionar. La versión de 18 bytes solo funciona en Julia REPL.
fuente
Python 2.7, 73 bytes
Prueba:
fuente
*
s por todas partesOctava, 43 bytes
De entrada y salida:
fuente
CJam, 15 bytes
Pensé que también entraría en el juego de CJam. Pruébalo en línea . La entrada está en forma de
bx by ax ay
. Desafortunadamente, este es el método más corto para hacer este desafío sin copiar la respuesta de Dennis.fuente
TeaScript, 28 bytes
Realmente debería de implementar funciones trigonométricas ...
Pruébalo en línea entrada es
a.x a.y b.x b.y
Explicación
fuente
Ruby,
64, 58 bytes.Uso
fuente
JavaScript, 49 bytes
La entrada se toma en forma:
[aY, aX], [bY, bX]
(observe el x / y invertido)fuente
Simplex v.0.7 , 13 bytes
Me alegro de haber agregado
mathrelations
: D Desafortunadamente, no puedo tomar información puntual. Entonces, ingreso cada punto como un número separado (Ax, Ay, Bx, By). (Usé esto como un recurso).Puedo guardar un carácter si puedo tomar datos como (Ay, Axe, By, Bx):
fuente
C, 88 bytes
Requiere compilar con GCC para aprovechar
M_PI
su definiciónmath.h
como parte de las constantes matemáticas integradas de GCC . Pruébelo en línea : dado que ideone no usa GCC (aparentemente), se necesitan unos pocos bytes adicionales para que los dígitos suficientes de π sean precisos.fuente
45/atan(1)
lugar de180/3.14159....
(en la demostración en línea).